From 6a029bf07165f9282183e511c576de3f984c4f1f Mon Sep 17 00:00:00 2001 From: mbainter Date: Mon, 16 Feb 2026 20:59:19 -0600 Subject: [PATCH 01/10] Update GitHub API to 2022 spec --- specs/github/api.github.com.json | 322344 +++++++++++++++++++++++----- 1 file changed, 271031 insertions(+), 51313 deletions(-) diff --git a/specs/github/api.github.com.json b/specs/github/api.github.com.json index 5ec536de..6c32dad2 100644 --- a/specs/github/api.github.com.json +++ b/specs/github/api.github.com.json @@ -11,8 +11,9 @@ "termsOfService": "https://docs.github.com/articles/github-terms-of-service", "contact": { "name": "Support", - "url": "https://support.github.com/contact?tags=rest-api" - } + "url": "https://support.github.com/contact?tags=dotcom-rest-api" + }, + "x-github-plan": "api.github.com" }, "tags": [ { @@ -48,8 +49,12 @@ "description": "List emojis available to use on GitHub." }, { - "name": "enterprise-admin", - "description": "Administer a GitHub enterprise." + "name": "dependabot", + "description": "Endpoints to manage Dependabot." + }, + { + "name": "dependency-graph", + "description": "Endpoints to access Dependency Graph features." }, { "name": "gists", @@ -63,10 +68,6 @@ "name": "gitignore", "description": "View gitignore templates" }, - { - "name": "interactions", - "description": "Owner or admin management of users interactions." - }, { "name": "issues", "description": "Interact with GitHub Issues." @@ -77,7 +78,11 @@ }, { "name": "markdown", - "description": "Render Github flavored markdown" + "description": "Render GitHub flavored Markdown" + }, + { + "name": "merge-queue", + "description": "Interact with GitHub Merge Queues." }, { "name": "meta", @@ -88,28 +93,24 @@ "description": "Move projects to or from GitHub." }, { - "name": "oauth-authorizations", - "description": "Manage access of OAuth applications" + "name": "oidc", + "description": "Endpoints to manage GitHub OIDC configuration using the REST API." }, { "name": "orgs", - "description": "Interact with GitHub Orgs." + "description": "Interact with organizations." }, { "name": "packages", "description": "Manage packages for authenticated users and organizations." }, - { - "name": "projects", - "description": "Interact with GitHub Projects." - }, { "name": "pulls", "description": "Interact with GitHub Pull Requests." }, { "name": "rate-limit", - "description": "Check your current rate limit status" + "description": "Check your current rate limit status." }, { "name": "reactions", @@ -119,13 +120,9 @@ "name": "repos", "description": "Interact with GitHub Repos." }, - { - "name": "scim", - "description": "Provisioning of GitHub organization membership for SCIM-enabled providers." - }, { "name": "search", - "description": "Look for stuff on GitHub." + "description": "Search for specific items on GitHub." }, { "name": "secret-scanning", @@ -138,6 +135,66 @@ { "name": "users", "description": "Interact with and view information about users and also current user." + }, + { + "name": "codespaces", + "description": "Endpoints to manage Codespaces using the REST API." + }, + { + "name": "copilot", + "description": "Endpoints to manage Copilot using the REST API." + }, + { + "name": "security-advisories", + "description": "Manage security advisories." + }, + { + "name": "interactions", + "description": "Owner or admin management of users interactions." + }, + { + "name": "classroom", + "description": "Interact with GitHub Classroom." + }, + { + "name": "desktop", + "description": "Desktop specific endpoints." + }, + { + "name": "enterprise-teams", + "description": "Endpoints to manage GitHub Enterprise Teams." + }, + { + "name": "enterprise-team-memberships", + "description": "Endpoints to manage GitHub Enterprise Team memberships." + }, + { + "name": "enterprise-team-organizations", + "description": "Endpoints to manage GitHub Enterprise Team organization assignments." + }, + { + "name": "code-security", + "description": "Endpoints to manage Code security using the REST API." + }, + { + "name": "private-registries", + "description": "Manage private registry configurations." + }, + { + "name": "hosted-compute", + "description": "Manage hosted compute networking resources." + }, + { + "name": "credentials", + "description": "Revoke compromised or leaked GitHub credentials." + }, + { + "name": "campaigns", + "description": "Endpoints to manage campaigns via the REST API." + }, + { + "name": "projects", + "description": "Endpoints to manage Projects using the REST API." } ], "servers": [ @@ -164,175 +221,12 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "current_user_url": { - "type": "string", - "format": "uri-template" - }, - "current_user_authorizations_html_url": { - "type": "string", - "format": "uri-template" - }, - "authorizations_url": { - "type": "string", - "format": "uri-template" - }, - "code_search_url": { - "type": "string", - "format": "uri-template" - }, - "commit_search_url": { - "type": "string", - "format": "uri-template" - }, - "emails_url": { - "type": "string", - "format": "uri-template" - }, - "emojis_url": { - "type": "string", - "format": "uri-template" - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "feeds_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri-template" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "hub_url": { - "type": "string", - "format": "uri-template" - }, - "issue_search_url": { - "type": "string", - "format": "uri-template" - }, - "issues_url": { - "type": "string", - "format": "uri-template" - }, - "keys_url": { - "type": "string", - "format": "uri-template" - }, - "label_search_url": { - "type": "string", - "format": "uri-template" - }, - "notifications_url": { - "type": "string", - "format": "uri-template" - }, - "organization_url": { - "type": "string", - "format": "uri-template" - }, - "organization_repositories_url": { - "type": "string", - "format": "uri-template" - }, - "organization_teams_url": { - "type": "string", - "format": "uri-template" - }, - "public_gists_url": { - "type": "string", - "format": "uri-template" - }, - "rate_limit_url": { - "type": "string", - "format": "uri-template" - }, - "repository_url": { - "type": "string", - "format": "uri-template" - }, - "repository_search_url": { - "type": "string", - "format": "uri-template" - }, - "current_user_repositories_url": { - "type": "string", - "format": "uri-template" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "starred_gists_url": { - "type": "string", - "format": "uri-template" - }, - "topic_search_url": { - "type": "string", - "format": "uri-template" - }, - "user_url": { - "type": "string", - "format": "uri-template" - }, - "user_organizations_url": { - "type": "string", - "format": "uri-template" - }, - "user_repositories_url": { - "type": "string", - "format": "uri-template" - }, - "user_search_url": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "current_user_url", - "current_user_authorizations_html_url", - "authorizations_url", - "code_search_url", - "commit_search_url", - "emails_url", - "emojis_url", - "events_url", - "feeds_url", - "followers_url", - "following_url", - "gists_url", - "hub_url", - "issue_search_url", - "issues_url", - "keys_url", - "label_search_url", - "notifications_url", - "organization_url", - "organization_repositories_url", - "organization_teams_url", - "public_gists_url", - "rate_limit_url", - "repository_url", - "repository_search_url", - "current_user_repositories_url", - "starred_url", - "starred_gists_url", - "user_url", - "user_organizations_url", - "user_repositories_url", - "user_search_url" - ] + "$ref": "#/components/schemas/root" + }, + "examples": { + "default": { + "$ref": "#/components/examples/root" + } } } } @@ -341,32 +235,302 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "meta" + "category": "meta", + "subcategory": "meta" + }, + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/meta/meta#github-api-root" + } + } + }, + "/advisories": { + "get": { + "summary": "List global security advisories", + "description": "Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware.\n\nBy default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see \"[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories).\"", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/list-global-advisories", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/global-advisories#list-global-security-advisories" + }, + "parameters": [ + { + "name": "ghsa_id", + "in": "query", + "description": "If specified, only advisories with this GHSA (GitHub Security Advisory) identifier will be returned.", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "description": "If specified, only advisories of this type will be returned. By default, a request with no other parameters defined will only return reviewed advisories that are not malware.", + "schema": { + "type": "string", + "enum": [ + "reviewed", + "malware", + "unreviewed" + ], + "default": "reviewed" + } + }, + { + "name": "cve_id", + "description": "If specified, only advisories with this CVE (Common Vulnerabilities and Exposures) identifier will be returned.", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ecosystem", + "in": "query", + "description": "If specified, only advisories for these ecosystems will be returned.", + "schema": { + "$ref": "#/components/schemas/security-advisory-ecosystems" + } + }, + { + "name": "severity", + "in": "query", + "description": "If specified, only advisories with these severities will be returned.", + "schema": { + "type": "string", + "enum": [ + "unknown", + "low", + "medium", + "high", + "critical" + ] + } + }, + { + "name": "cwes", + "in": "query", + "description": "If specified, only advisories with these Common Weakness Enumerations (CWEs) will be returned.\n\nExample: `cwes=79,284,22` or `cwes[]=79&cwes[]=284&cwes[]=22`", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + }, + { + "name": "is_withdrawn", + "in": "query", + "description": "Whether to only return advisories that have been withdrawn.", + "schema": { + "type": "boolean" + } + }, + { + "name": "affects", + "in": "query", + "description": "If specified, only return advisories that affect any of `package` or `package@version`. A maximum of 1000 packages can be specified.\nIf the query parameter causes the URL to exceed the maximum URL length supported by your client, you must specify fewer packages.\n\nExample: `affects=package1,package2@1.0.0,package3@2.0.0` or `affects[]=package1&affects[]=package2@1.0.0`", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 1000, + "items": { + "type": "string" + } + } + ] + } + }, + { + "name": "published", + "in": "query", + "description": "If specified, only return advisories that were published on a date or date range.\n\nFor more information on the syntax of the date range, see \"[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).\"", + "schema": { + "type": "string" + } + }, + { + "name": "updated", + "in": "query", + "description": "If specified, only return advisories that were updated on a date or date range.\n\nFor more information on the syntax of the date range, see \"[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).\"", + "schema": { + "type": "string" + } + }, + { + "name": "modified", + "description": "If specified, only show advisories that were updated or published on a date or date range.\n\nFor more information on the syntax of the date range, see \"[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).\"", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "epss_percentage", + "in": "query", + "description": "If specified, only return advisories that have an EPSS percentage score that matches the provided value.\nThe EPSS percentage represents the likelihood of a CVE being exploited.", + "schema": { + "type": "string" + } + }, + { + "name": "epss_percentile", + "in": "query", + "description": "If specified, only return advisories that have an EPSS percentile score that matches the provided value.\nThe EPSS percentile represents the relative rank of the CVE's likelihood of being exploited compared to other CVEs.", + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } + }, + { + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "updated", + "published", + "epss_percentage", + "epss_percentile" + ], + "default": "published" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/global-advisory" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/global-advisory-items" + } + } + } + } + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "global-advisories" + } + } + }, + "/advisories/{ghsa_id}": { + "get": { + "summary": "Get a global security advisory", + "description": "Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/get-global-advisory", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/overview/resources-in-the-rest-api#root-endpoint" + "url": "https://docs.github.com/rest/security-advisories/global-advisories#get-a-global-security-advisory" + }, + "parameters": [ + { + "$ref": "#/components/parameters/ghsa_id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/global-advisory" + }, + "examples": { + "default": { + "$ref": "#/components/examples/global-advisory" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "global-advisories" } } }, "/app": { "get": { "summary": "Get the authenticated app", - "description": "Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the \"[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "description": "Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the \"[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/get-authenticated", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-the-authenticated-app" + "url": "https://docs.github.com/rest/apps/apps#get-the-authenticated-app" }, - "parameters": [ - - ], + "parameters": [], "responses": { "200": { "description": "Response", @@ -387,11 +551,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } } }, @@ -405,7 +566,7 @@ "operationId": "apps/create-from-manifest", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#create-a-github-app-from-a-manifest" + "url": "https://docs.github.com/rest/apps/apps#create-a-github-app-from-a-manifest" }, "parameters": [ { @@ -417,16 +578,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false - } - } - } - }, "responses": { "201": { "description": "Response", @@ -482,11 +633,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } } }, @@ -500,7 +648,7 @@ "operationId": "apps/get-webhook-config-for-app", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-a-webhook-configuration-for-an-app" + "url": "https://docs.github.com/rest/apps/webhooks#get-a-webhook-configuration-for-an-app" }, "responses": { "200": { @@ -522,9 +670,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "webhooks" } @@ -538,9 +683,10 @@ "operationId": "apps/update-webhook-config-for-app", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#update-a-webhook-configuration-for-an-app" + "url": "https://docs.github.com/rest/apps/webhooks#update-a-webhook-configuration-for-an-app" }, "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -558,12 +704,16 @@ "insecure_ssl": { "$ref": "#/components/schemas/webhook-config-insecure-ssl" } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "value": { + "content_type": "json", + "insecure_ssl": "0", + "secret": "********", + "url": "https://example.com/webhook" + } } } } @@ -589,9 +739,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "webhooks" } @@ -607,7 +754,7 @@ "operationId": "apps/list-webhook-deliveries", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-deliveries-for-an-app-webhook" + "url": "https://docs.github.com/rest/apps/webhooks#list-deliveries-for-an-app-webhook" }, "parameters": [ { @@ -646,9 +793,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "webhooks" } @@ -664,7 +808,7 @@ "operationId": "apps/get-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-a-delivery-for-an-app-webhook" + "url": "https://docs.github.com/rest/apps/webhooks#get-a-delivery-for-an-app-webhook" }, "parameters": [ { @@ -697,9 +841,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "webhooks" } @@ -715,7 +856,7 @@ "operationId": "apps/redeliver-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#redeliver-a-delivery-for-an-app-webhook" + "url": "https://docs.github.com/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook" }, "parameters": [ { @@ -736,25 +877,76 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "webhooks" } } }, + "/app/installation-requests": { + "get": { + "summary": "List installation requests for the authenticated app", + "description": "Lists all the pending installation requests for the authenticated GitHub App.", + "tags": [ + "apps" + ], + "operationId": "apps/list-installation-requests-for-authenticated-app", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/apps#list-installation-requests-for-the-authenticated-app" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "List of integration installation requests", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/integration-installation-request" + } + }, + "examples": { + "exampleKey1": { + "$ref": "#/components/examples/integration-installation-request-paginated" + } + } + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "apps", + "subcategory": "apps" + } + } + }, "/app/installations": { "get": { "summary": "List installations for the authenticated app", - "description": "You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.\n\nThe permissions the installation has are included under the `permissions` key.", + "description": "The permissions the installation has are included under the `permissions` key.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/list-installations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app" + "url": "https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app" }, "parameters": [ { @@ -803,25 +995,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } } }, "/app/installations/{installation_id}": { "get": { "summary": "Get an installation for the authenticated app", - "description": "Enables an authenticated GitHub App to find an installation's information using the installation id. The installation's account type (`target_type`) will be either an organization or a user account, depending which account the repository belongs to.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "description": "Enables an authenticated GitHub App to find an installation's information using the installation id.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/get-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-an-installation-for-the-authenticated-app" + "url": "https://docs.github.com/rest/apps/apps#get-an-installation-for-the-authenticated-app" }, "parameters": [ { @@ -846,31 +1035,25 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } }, "delete": { "summary": "Delete an installation for the authenticated app", - "description": "Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the \"[Suspend an app installation](https://docs.github.com/rest/reference/apps/#suspend-an-app-installation)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "description": "Uninstalls a GitHub App on a user, organization, or enterprise account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the \"[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/delete-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#delete-an-installation-for-the-authenticated-app" + "url": "https://docs.github.com/rest/apps/apps#delete-an-installation-for-the-authenticated-app" }, "parameters": [ { @@ -888,25 +1071,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } } }, "/app/installations/{installation_id}/access_tokens": { "post": { "summary": "Create an installation access token for an app", - "description": "Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "description": "Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.\n\nOptionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.\n\nOptionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/create-installation-access-token", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps/#create-an-installation-access-token-for-an-app" + "url": "https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app" }, "parameters": [ { @@ -914,6 +1094,7 @@ } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { @@ -941,6 +1122,19 @@ "$ref": "#/components/schemas/app-permissions" } } + }, + "examples": { + "default": { + "value": { + "repositories": [ + "Hello-World" + ], + "permissions": { + "issues": "write", + "contents": "read" + } + } + } } } } @@ -964,9 +1158,6 @@ "403": { "$ref": "#/components/responses/forbidden" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, "401": { "$ref": "#/components/responses/requires_authentication" }, @@ -980,25 +1171,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } } }, "/app/installations/{installation_id}/suspended": { "put": { "summary": "Suspend an app installation", - "description": "Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "description": "Suspends a GitHub App on a user, organization, or enterprise account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/suspend-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#suspend-an-app-installation" + "url": "https://docs.github.com/rest/apps/apps#suspend-an-app-installation" }, "parameters": [ { @@ -1016,11 +1204,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } }, "delete": { @@ -1032,7 +1217,7 @@ "operationId": "apps/unsuspend-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#unsuspend-an-app-installation" + "url": "https://docs.github.com/rest/apps/apps#unsuspend-an-app-installation" }, "parameters": [ { @@ -1050,205 +1235,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", - "subcategory": null + "subcategory": "apps" } } }, - "/applications/grants": { - "get": { - "summary": "List your grants", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\nYou can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the [list your authorizations](https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations) API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). The `scopes` returned are the union of scopes authorized for the application. For example, if an application has one token with `repo` scope and another token with `user` scope, the grant will return `[\"repo\", \"user\"]`.", - "tags": [ - "oauth-authorizations" - ], - "operationId": "oauth-authorizations/list-grants", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#list-your-grants" - }, - "parameters": [ - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "name": "client_id", - "in": "query", - "required": false, - "description": "The client ID of your GitHub app.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/application-grant" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/application-grant-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true - } - }, - "/applications/grants/{grant_id}": { - "get": { - "summary": "Get a single grant", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", - "tags": [ - "oauth-authorizations" - ], - "operationId": "oauth-authorizations/get-grant", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-grant" - }, - "parameters": [ - { - "$ref": "#/components/parameters/grant-id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/application-grant" - }, - "examples": { - "default": { - "$ref": "#/components/examples/application-grant" - } - } - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true - }, - "delete": { - "summary": "Delete a grant", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\nDeleting an OAuth application's grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized).", - "tags": [ - "oauth-authorizations" - ], - "operationId": "oauth-authorizations/delete-grant", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#delete-a-grant" - }, - "parameters": [ - { - "$ref": "#/components/parameters/grant-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true - } - }, "/applications/{client_id}/grant": { "delete": { "summary": "Delete an app authorization", - "description": "OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted.\nDeleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized).", + "description": "OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted.\nDeleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized).", "operationId": "apps/delete-authorization", "tags": [ "apps" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#delete-an-app-authorization" + "url": "https://docs.github.com/rest/apps/oauth-applications#delete-an-app-authorization" }, "parameters": [ { @@ -1256,6 +1258,7 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -1265,10 +1268,17 @@ "type": "string", "description": "The OAuth access token used to authenticate to the GitHub API." } - } + }, + "required": [ + "access_token" + ] }, - "example": { - "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + "examples": { + "default": { + "value": { + "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + } + } } } } @@ -1284,64 +1294,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "oauth-applications" } } }, - "/applications/{client_id}/grants/{access_token}": { - "delete": { - "summary": "Revoke a grant for an application", - "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid token as `:access_token` and the grant for the token's owner will be deleted.\n\nDeleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the Applications settings page under \"Authorized OAuth Apps\" on GitHub](https://github.com/settings/applications#authorized).", - "tags": [ - "apps" - ], - "operationId": "apps/revoke-grant-for-application", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#revoke-a-grant-for-an-application" - }, - "parameters": [ - { - "$ref": "#/components/parameters/client-id" - }, - { - "$ref": "#/components/parameters/access-token" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2021-05-05", - "deprecationDate": "2020-02-14", - "category": "apps", - "subcategory": "oauth-applications" - }, - "deprecated": true - } - }, "/applications/{client_id}/token": { "post": { "summary": "Check a token", - "description": "OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`.", + "description": "OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. Invalid tokens will return `404 NOT FOUND`.", "tags": [ "apps" ], "operationId": "apps/check-token", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#check-a-token" + "url": "https://docs.github.com/rest/apps/oauth-applications#check-a-token" }, "parameters": [ { @@ -1349,12 +1317,13 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "properties": { "access_token": { - "description": "The access_token of the OAuth application.", + "description": "The access_token of the OAuth or GitHub application.", "type": "string" } }, @@ -1362,6 +1331,13 @@ "access_token" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + } + } } } } @@ -1392,23 +1368,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "oauth-applications" } }, "patch": { "summary": "Reset a token", - "description": "OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the \"token\" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`.", + "description": "OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the \"token\" property in the response because changes take effect immediately. Invalid tokens will return `404 NOT FOUND`.", "tags": [ "apps" ], "operationId": "apps/reset-token", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#reset-a-token" + "url": "https://docs.github.com/rest/apps/oauth-applications#reset-a-token" }, "parameters": [ { @@ -1416,12 +1389,13 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "properties": { "access_token": { - "description": "The access_token of the OAuth application.", + "description": "The access_token of the OAuth or GitHub application.", "type": "string" } }, @@ -1429,6 +1403,13 @@ "access_token" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + } + } } } } @@ -1456,23 +1437,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "oauth-applications" } }, "delete": { "summary": "Delete an app token", - "description": "OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password.", + "description": "OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization.", "tags": [ "apps" ], "operationId": "apps/delete-token", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#delete-an-app-token" + "url": "https://docs.github.com/rest/apps/oauth-applications#delete-an-app-token" }, "parameters": [ { @@ -1480,6 +1458,7 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -1494,8 +1473,12 @@ "access_token" ] }, - "example": { - "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + "examples": { + "default": { + "value": { + "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + } + } } } } @@ -1511,9 +1494,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "oauth-applications" } @@ -1522,14 +1502,14 @@ "/applications/{client_id}/token/scoped": { "post": { "summary": "Create a scoped access token", - "description": "Use a non-scoped user-to-server OAuth access token to create a repository scoped and/or permission scoped user-to-server OAuth access token. You can specify which repositories the token can access and which permissions are granted to the token. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`.", + "description": "Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify\nwhich repositories the token can access and which permissions are granted to the\ntoken.\n\nInvalid tokens will return `404 NOT FOUND`.", "tags": [ "apps" ], "operationId": "apps/scope-token", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#create-a-scoped-access-token" + "url": "https://docs.github.com/rest/apps/apps#create-a-scoped-access-token" }, "parameters": [ { @@ -1537,6 +1517,7 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -1544,21 +1525,21 @@ "properties": { "access_token": { "type": "string", - "description": "The OAuth access token used to authenticate to the GitHub API.", + "description": "The access token used to authenticate to the GitHub API.", "example": "e72e16c7e42f292c6912e7710c838347ae178b4a" }, "target": { - "description": "The name of the user or organization to scope the user-to-server access token to. **Required** unless `target_id` is specified.", + "description": "The name of the user or organization to scope the user access token to. **Required** unless `target_id` is specified.", "type": "string", "example": "octocat" }, "target_id": { - "description": "The ID of the user or organization to scope the user-to-server access token to. **Required** unless `target` is specified.", + "description": "The ID of the user or organization to scope the user access token to. **Required** unless `target` is specified.", "example": 1, "type": "integer" }, "repositories": { - "description": "The list of repository names to scope the user-to-server access token to. `repositories` may not be specified if `repository_ids` is specified.", + "description": "The list of repository names to scope the user access token to. `repositories` may not be specified if `repository_ids` is specified.", "type": "array", "items": { "type": "string", @@ -1566,7 +1547,7 @@ } }, "repository_ids": { - "description": "The list of repository IDs to scope the user-to-server access token to. `repository_ids` may not be specified if `repositories` is specified.", + "description": "The list of repository IDs to scope the user access token to. `repository_ids` may not be specified if `repositories` is specified.", "example": [ 1 ], @@ -1582,6 +1563,19 @@ "required": [ "access_token" ] + }, + "examples": { + "default": { + "value": { + "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a", + "target": "octocat", + "permissions": { + "metadata": "read", + "issues": "write", + "contents": "read" + } + } + } } } } @@ -1618,32 +1612,26 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", - "subcategory": "oauth-applications" + "subcategory": "apps" } } }, - "/applications/{client_id}/tokens/{access_token}": { + "/apps/{app_slug}": { "get": { - "summary": "Check an authorization", - "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`.", + "summary": "Get an app", + "description": "> [!NOTE]\n> The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`).", "tags": [ "apps" ], - "operationId": "apps/check-authorization", + "operationId": "apps/get-by-slug", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#check-an-authorization" + "url": "https://docs.github.com/rest/apps/apps#get-an-app" }, "parameters": [ { - "$ref": "#/components/parameters/client-id" - }, - { - "$ref": "#/components/parameters/access-token" + "$ref": "#/components/parameters/app-slug" } ], "responses": { @@ -1652,140 +1640,46 @@ "content": { "application/json": { "schema": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/authorization" - } - ] + "$ref": "#/components/schemas/integration" }, "examples": { "default": { - "$ref": "#/components/examples/authorization-with-user" + "$ref": "#/components/examples/integration" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2021-05-05", - "deprecationDate": "2020-02-14", - "category": "apps", - "subcategory": "oauth-applications" - }, - "deprecated": true - }, - "post": { - "summary": "Reset an authorization", - "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the \"token\" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`.", - "tags": [ - "apps" - ], - "operationId": "apps/reset-authorization", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#reset-an-authorization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/client-id" - }, - { - "$ref": "#/components/parameters/access-token" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/authorization" - }, - "examples": { - "default": { - "$ref": "#/components/examples/authorization-with-user" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2021-05-05", - "deprecationDate": "2020-02-14", - "category": "apps", - "subcategory": "oauth-applications" - }, - "deprecated": true - }, - "delete": { - "summary": "Revoke an authorization for an application", - "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password.", - "tags": [ - "apps" - ], - "operationId": "apps/revoke-authorization-for-application", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#revoke-an-authorization-for-an-application" - }, - "parameters": [ - { - "$ref": "#/components/parameters/client-id" - }, - { - "$ref": "#/components/parameters/access-token" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2021-05-05", - "deprecationDate": "2020-02-14", + "enabledForGitHubApps": true, "category": "apps", - "subcategory": "oauth-applications" - }, - "deprecated": true + "subcategory": "apps" + } } }, - "/apps/{app_slug}": { + "/assignments/{assignment_id}": { "get": { - "summary": "Get an app", - "description": "**Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`).\n\nIf the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "summary": "Get an assignment", + "description": "Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment.", "tags": [ - "apps" + "classroom" ], - "operationId": "apps/get-by-slug", + "operationId": "classroom/get-an-assignment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps/#get-an-app" + "url": "https://docs.github.com/rest/classroom/classroom#get-an-assignment" }, "parameters": [ { - "$ref": "#/components/parameters/app-slug" + "$ref": "#/components/parameters/assignment-id" } ], "responses": { @@ -1794,64 +1688,48 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/integration" + "$ref": "#/components/schemas/classroom-assignment" }, "examples": { "default": { - "$ref": "#/components/examples/integration" + "$ref": "#/components/examples/classroom-assignment" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "apps", - "subcategory": null + "category": "classroom", + "subcategory": "classroom" } } }, - "/authorizations": { + "/assignments/{assignment_id}/accepted_assignments": { "get": { - "summary": "List your authorizations", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "summary": "List accepted assignments for an assignment", + "description": "Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment.", "tags": [ - "oauth-authorizations" + "classroom" ], - "operationId": "oauth-authorizations/list-authorizations", + "operationId": "classroom/list-accepted-assignments-for-an-assignment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations" + "url": "https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/assignment-id" }, { "$ref": "#/components/parameters/page" }, { - "name": "client_id", - "in": "query", - "required": false, - "description": "The client ID of your GitHub app.", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -1862,442 +1740,134 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/authorization" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/authorization-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true - }, - "post": { - "summary": "Create a new authorization", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\n**Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api).\n\nCreates OAuth tokens using [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication). If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"\n\nTo create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app's client ID and secret, found on your OAuth application's settings page. If your OAuth application intends to create multiple tokens for one user, use `fingerprint` to differentiate between them.\n\nYou can also create tokens on GitHub from the [personal access tokens settings](https://github.com/settings/tokens) page. Read more about these tokens in [the GitHub Help documentation](https://help.github.com/articles/creating-an-access-token-for-command-line-use).\n\nOrganizations that enforce SAML SSO require personal access tokens to be allowed. Read more about allowing tokens in [the GitHub Help documentation](https://help.github.com/articles/about-identity-and-access-management-with-saml-single-sign-on).", - "tags": [ - "oauth-authorizations" - ], - "operationId": "oauth-authorizations/create-authorization", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization" - }, - "parameters": [ - - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "description": "A list of scopes that this authorization is in.", - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "public_repo", - "user" - ], - "nullable": true - }, - "note": { - "description": "A note to remind you what the OAuth token is for.", - "type": "string", - "example": "Update all gems" - }, - "note_url": { - "description": "A URL to remind you what app the OAuth token is for.", - "type": "string" - }, - "client_id": { - "description": "The OAuth app client key for which to create the token.", - "maxLength": 20, - "type": "string" - }, - "client_secret": { - "description": "The OAuth app client secret for which to create the token.", - "maxLength": 40, - "type": "string" - }, - "fingerprint": { - "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", - "type": "string" + "$ref": "#/components/schemas/classroom-accepted-assignment" } - } - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/authorization" }, "examples": { "default": { - "$ref": "#/components/examples/authorization" + "$ref": "#/components/examples/classroom-accepted-assignment" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/authorizations/1", - "schema": { - "type": "string" - } - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true + "enabledForGitHubApps": true, + "category": "classroom", + "subcategory": "classroom" + } } }, - "/authorizations/clients/{client_id}": { - "put": { - "summary": "Get-or-create an authorization for a specific app", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\n**Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api).\n\nCreates a new authorization for the specified OAuth application, only if an authorization for that application doesn't already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one.\n\nIf you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"\n\n**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "/assignments/{assignment_id}/grades": { + "get": { + "summary": "Get assignment grades", + "description": "Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment.", "tags": [ - "oauth-authorizations" + "classroom" ], - "operationId": "oauth-authorizations/get-or-create-authorization-for-app", + "operationId": "classroom/get-assignment-grades", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app" + "url": "https://docs.github.com/rest/classroom/classroom#get-assignment-grades" }, "parameters": [ { - "$ref": "#/components/parameters/client-id" + "$ref": "#/components/parameters/assignment-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "client_secret": { - "description": "The OAuth app client secret for which to create the token.", - "maxLength": 40, - "type": "string" - }, - "scopes": { - "description": "A list of scopes that this authorization is in.", - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "public_repo", - "user" - ], - "nullable": true - }, - "note": { - "description": "A note to remind you what the OAuth token is for.", - "type": "string", - "example": "Update all gems" - }, - "note_url": { - "description": "A URL to remind you what app the OAuth token is for.", - "type": "string" - }, - "fingerprint": { - "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", - "type": "string" - } - }, - "required": [ - "client_secret" - ], - "type": "object" - } - } - } - }, "responses": { "200": { - "description": "if returning an existing token", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authorization" - }, - "examples": { - "response-if-returning-an-existing-token": { - "$ref": "#/components/examples/authorization-response-if-returning-an-existing-token-2" + "type": "array", + "items": { + "$ref": "#/components/schemas/classroom-assignment-grade" } - } - } - }, - "headers": { - "Location": { - "example": "https://api.github.com/authorizations/1", - "schema": { - "type": "string" - } - } - } - }, - "201": { - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/authorization" }, "examples": { "default": { - "$ref": "#/components/examples/authorization" + "$ref": "#/components/examples/classroom-assignment-grades" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/authorizations/1", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true + "enabledForGitHubApps": true, + "category": "classroom", + "subcategory": "classroom" + } } }, - "/authorizations/clients/{client_id}/{fingerprint}": { - "put": { - "summary": "Get-or-create an authorization for a specific app and fingerprint", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\n**Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api).\n\nThis method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. `fingerprint` is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one.\n\nIf you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"", + "/classrooms": { + "get": { + "summary": "List classrooms", + "description": "Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms.", "tags": [ - "oauth-authorizations" + "classroom" ], - "operationId": "oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint", + "operationId": "classroom/list-classrooms", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app-and-fingerprint" + "url": "https://docs.github.com/rest/classroom/classroom#list-classrooms" }, "parameters": [ { - "$ref": "#/components/parameters/client-id" + "$ref": "#/components/parameters/page" }, { - "name": "fingerprint", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "client_secret": { - "description": "The OAuth app client secret for which to create the token.", - "maxLength": 40, - "type": "string" - }, - "scopes": { - "description": "A list of scopes that this authorization is in.", - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "public_repo", - "user" - ], - "nullable": true - }, - "note": { - "description": "A note to remind you what the OAuth token is for.", - "type": "string", - "example": "Update all gems" - }, - "note_url": { - "description": "A URL to remind you what app the OAuth token is for.", - "type": "string" - } - }, - "required": [ - "client_secret" - ], - "type": "object" - } - } - } - }, "responses": { "200": { - "description": "if returning an existing token", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authorization" - }, - "examples": { - "response-if-returning-an-existing-token": { - "$ref": "#/components/examples/authorization-response-if-returning-an-existing-token" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-classroom" } - } - } - }, - "headers": { - "Location": { - "example": "https://api.github.com/authorizations/1", - "schema": { - "type": "string" - } - } - } - }, - "201": { - "description": "Response if returning a new token", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/authorization" }, "examples": { "default": { - "$ref": "#/components/examples/authorization-3" + "$ref": "#/components/examples/simple-classroom" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/authorizations/1", - "schema": { - "type": "string" - } - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true + "enabledForGitHubApps": true, + "category": "classroom", + "subcategory": "classroom" + } } }, - "/authorizations/{authorization_id}": { + "/classrooms/{classroom_id}": { "get": { - "summary": "Get a single authorization", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "summary": "Get a classroom", + "description": "Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom.", "tags": [ - "oauth-authorizations" + "classroom" ], - "operationId": "oauth-authorizations/get-authorization", + "operationId": "classroom/get-a-classroom", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-authorization" + "url": "https://docs.github.com/rest/classroom/classroom#get-a-classroom" }, "parameters": [ { - "$ref": "#/components/parameters/authorization-id" + "$ref": "#/components/parameters/classroom-id" } ], "responses": { @@ -2306,197 +1876,90 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authorization" + "$ref": "#/components/schemas/classroom" }, "examples": { "default": { - "$ref": "#/components/examples/authorization-2" + "$ref": "#/components/examples/classroom" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true - }, - "patch": { - "summary": "Update an existing authorization", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\nIf you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"\n\nYou can only send one of these scope keys at a time.", + "enabledForGitHubApps": true, + "category": "classroom", + "subcategory": "classroom" + } + } + }, + "/classrooms/{classroom_id}/assignments": { + "get": { + "summary": "List assignments for a classroom", + "description": "Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom.", "tags": [ - "oauth-authorizations" + "classroom" ], - "operationId": "oauth-authorizations/update-authorization", + "operationId": "classroom/list-assignments-for-a-classroom", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#update-an-existing-authorization" + "url": "https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom" }, "parameters": [ { - "$ref": "#/components/parameters/authorization-id" + "$ref": "#/components/parameters/classroom-id" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "description": "A list of scopes that this authorization is in.", - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "public_repo", - "user" - ], - "nullable": true - }, - "add_scopes": { - "description": "A list of scopes to add to this authorization.", - "type": "array", - "items": { - "type": "string" - } - }, - "remove_scopes": { - "description": "A list of scopes to remove from this authorization.", - "type": "array", - "items": { - "type": "string" - } - }, - "note": { - "description": "A note to remind you what the OAuth token is for.", - "type": "string", - "example": "Update all gems" - }, - "note_url": { - "description": "A URL to remind you what app the OAuth token is for.", - "type": "string" - }, - "fingerprint": { - "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", - "type": "string" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authorization" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-classroom-assignment" + } }, "examples": { "default": { - "$ref": "#/components/examples/authorization-2" + "$ref": "#/components/examples/simple-classroom-assignment" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true - }, - "delete": { - "summary": "Delete an authorization", - "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", - "tags": [ - "oauth-authorizations" - ], - "operationId": "oauth-authorizations/delete-authorization", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/oauth-authorizations#delete-an-authorization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/authorization-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2020-11-13", - "deprecationDate": "2020-02-14", - "category": "oauth-authorizations", - "subcategory": null - }, - "deprecated": true + "enabledForGitHubApps": true, + "category": "classroom", + "subcategory": "classroom" + } } }, "/codes_of_conduct": { "get": { "summary": "Get all codes of conduct", - "description": "", + "description": "Returns array of all GitHub's codes of conduct.", "tags": [ "codes-of-conduct" ], "operationId": "codes-of-conduct/get-all-codes-of-conduct", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/codes-of-conduct#get-all-codes-of-conduct" + "url": "https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-all-codes-of-conduct" }, - "parameters": [ - - ], + "parameters": [], "responses": { "200": { "description": "Response", @@ -2524,21 +1987,21 @@ "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "codes-of-conduct", - "subcategory": null + "subcategory": "codes-of-conduct" } } }, "/codes_of_conduct/{key}": { "get": { "summary": "Get a code of conduct", - "description": "", + "description": "Returns information about the specified GitHub code of conduct.", "tags": [ "codes-of-conduct" ], "operationId": "codes-of-conduct/get-conduct-code", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/codes-of-conduct#get-a-code-of-conduct" + "url": "https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-a-code-of-conduct" }, "parameters": [ { @@ -2577,175 +2040,134 @@ "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "codes-of-conduct", - "subcategory": null + "subcategory": "codes-of-conduct" } } }, - "/emojis": { - "get": { - "summary": "Get emojis", - "description": "Lists all the emojis available to use on GitHub.", - "operationId": "emojis/get", + "/credentials/revoke": { + "post": { + "summary": "Revoke a list of credentials", + "description": "Submit a list of credentials to be revoked. This endpoint is intended to revoke credentials the caller does not own and may have found exposed on GitHub.com or elsewhere. It can also be used for credentials associated with an old user account that you no longer have access to. Credential owners will be notified of the revocation.\n\nThis endpoint currently accepts the following credential types:\n- Personal access tokens (classic)\n- Fine-grained personal access tokens\n\nRevoked credentials may impact users on GitHub Free, Pro, & Team and GitHub Enterprise Cloud, and GitHub Enterprise Cloud with Enterprise Managed Users.\nGitHub cannot reactivate any credentials that have been revoked; new credentials will need to be generated.\n\nTo prevent abuse, this API is limited to only 60 unauthenticated requests per hour and a max of 1000 tokens per API request.\n\n> [!NOTE]\n> Any authenticated requests will return a 403.", "tags": [ - "emojis" + "credentials" ], + "operationId": "credentials/revoke", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/emojis#get-emojis" + "url": "https://docs.github.com/rest/credentials/revoke#revoke-a-list-of-credentials" }, - "parameters": [ - - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { - "type": "string" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "description": "A list of credentials to be revoked, up to 1000 per request.", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 1000 + } + }, + "required": [ + "credentials" + ] + }, + "examples": { + "default": { + "value": { + "credentials": [ + "ghp_1234567890abcdef1234567890abcdef12345678", + "ghp_abcdef1234567890abcdef1234567890abcdef12" + ] } } } - }, - "description": "Response" + } + } + }, + "responses": { + "202": { + "$ref": "#/components/responses/accepted" }, - "304": { - "$ref": "#/components/responses/not_modified" + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "emojis", - "subcategory": null + "enabledForGitHubApps": false, + "category": "credentials", + "subcategory": "revoke" } } }, - "/enterprises/{enterprise}/actions/permissions": { + "/emojis": { "get": { - "summary": "Get GitHub Actions permissions for an enterprise", - "description": "Gets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/get-github-actions-permissions-enterprise", + "summary": "Get emojis", + "description": "Lists all the emojis available to use on GitHub.", + "operationId": "emojis/get", "tags": [ - "enterprise-admin" + "emojis" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#get-github-actions-permissions-for-an-enterprise" + "url": "https://docs.github.com/rest/emojis/emojis#get-emojis" }, - "parameters": [ - { - "$ref": "#/components/parameters/enterprise" - } - ], + "parameters": [], "responses": { "200": { - "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-enterprise-permissions" + "type": "object", + "additionalProperties": { + "type": "string" + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-enterprise-permissions" + "$ref": "#/components/examples/emojis-get" } } } - } - } - }, - "x-github": { - "enabledForGitHubApps": false, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" - } - }, - "put": { - "summary": "Set GitHub Actions permissions for an enterprise", - "description": "Sets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/set-github-actions-permissions-enterprise", - "tags": [ - "enterprise-admin" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#set-github-actions-permissions-for-an-enterprise" - }, - "parameters": [ - { - "$ref": "#/components/parameters/enterprise" - } - ], - "responses": { - "204": { + }, "description": "Response" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "enabled_organizations": { - "$ref": "#/components/schemas/enabled-organizations" - }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" - } - }, - "required": [ - "enabled_organizations" - ] - }, - "example": { - "enabled_organizations": "all", - "allowed_actions": "selected" - } - } + }, + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "emojis", + "subcategory": "emojis" } } }, - "/enterprises/{enterprise}/actions/permissions/organizations": { + "/enterprises/{enterprise}/actions/cache/retention-limit": { "get": { - "summary": "List selected organizations enabled for GitHub Actions in an enterprise", - "description": "Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/list-selected-organizations-enabled-github-actions-enterprise", + "summary": "Get GitHub Actions cache retention limit for an enterprise", + "description": "Gets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this\nenterprise may not set a higher cache retention limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "actions" ], + "operationId": "actions/get-actions-cache-retention-limit-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-selected-organizations-enabled-for-github-actions-in-an-enterprise" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -2754,183 +2176,94 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "total_count": { - "type": "number" - }, - "organizations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-simple" - } - } - }, - "required": [ - "total_count", - "organizations" - ] + "$ref": "#/components/schemas/actions-cache-retention-limit-for-enterprise" }, "examples": { "default": { - "$ref": "#/components/examples/organization-targets" + "$ref": "#/components/examples/actions-cache-retention-limit" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" } }, "put": { - "summary": "Set selected organizations enabled for GitHub Actions in an enterprise", - "description": "Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/set-selected-organizations-enabled-github-actions-enterprise", + "summary": "Set GitHub Actions cache retention limit for an enterprise", + "description": "Sets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this\nenterprise may not set a higher cache retention limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "actions" ], + "operationId": "actions/set-actions-cache-retention-limit-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#set-selected-organizations-enabled-for-github-actions-in-an-enterprise" + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" } ], - "responses": { - "204": { - "description": "Response" - } - }, "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "selected_organization_ids": { - "description": "List of organization IDs to enable for GitHub Actions.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the organization." - } - } - }, - "required": [ - "selected_organization_ids" - ] + "$ref": "#/components/schemas/actions-cache-retention-limit-for-enterprise" }, - "example": { - "selected_organization_ids": [ - 32, - 91 - ] + "examples": { + "selected_actions": { + "$ref": "#/components/examples/actions-cache-retention-limit" + } } } } }, - "x-github": { - "enabledForGitHubApps": false, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" - } - } - }, - "/enterprises/{enterprise}/actions/permissions/organizations/{org_id}": { - "put": { - "summary": "Enable a selected organization for GitHub Actions in an enterprise", - "description": "Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/enable-selected-organization-github-actions-enterprise", - "tags": [ - "enterprise-admin" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#enable-a-selected-organization-for-github-actions-in-an-enterprise" - }, - "parameters": [ - { - "$ref": "#/components/parameters/enterprise" - }, - { - "$ref": "#/components/parameters/org-id" - } - ], "responses": { "204": { "description": "Response" - } - }, - "x-github": { - "enabledForGitHubApps": false, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" - } - }, - "delete": { - "summary": "Disable a selected organization for GitHub Actions in an enterprise", - "description": "Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/disable-selected-organization-github-actions-enterprise", - "tags": [ - "enterprise-admin" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#disable-a-selected-organization-for-github-actions-in-an-enterprise" - }, - "parameters": [ - { - "$ref": "#/components/parameters/enterprise" }, - { - "$ref": "#/components/parameters/org-id" - } - ], - "responses": { - "204": { - "description": "Response" + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" } } }, - "/enterprises/{enterprise}/actions/permissions/selected-actions": { + "/enterprises/{enterprise}/actions/cache/storage-limit": { "get": { - "summary": "Get allowed actions for an enterprise", - "description": "Gets the selected actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/get-allowed-actions-enterprise", + "summary": "Get GitHub Actions cache storage limit for an enterprise", + "description": "Gets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this\nenterprise may not set a higher cache storage limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "actions" ], + "operationId": "actions/get-actions-cache-storage-limit-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#get-allowed-actions-for-an-enterprise" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-an-enterprise" }, "parameters": [ { @@ -2943,94 +2276,114 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/selected-actions" + "$ref": "#/components/schemas/actions-cache-storage-limit-for-enterprise" }, "examples": { "default": { - "$ref": "#/components/examples/selected-actions" + "$ref": "#/components/examples/actions-cache-storage-limit" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" } }, "put": { - "summary": "Set allowed actions for an enterprise", - "description": "Sets the actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/set-allowed-actions-enterprise", + "summary": "Set GitHub Actions cache storage limit for an enterprise", + "description": "Sets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this\nenterprise may not set a higher cache storage limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "actions" ], + "operationId": "actions/set-actions-cache-storage-limit-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#set-allowed-actions-for-an-enterprise" + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" } ], - "responses": { - "204": { - "description": "Response" - } - }, "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/selected-actions" + "$ref": "#/components/schemas/actions-cache-storage-limit-for-enterprise" }, "examples": { "selected_actions": { - "$ref": "#/components/examples/selected-actions" + "$ref": "#/components/examples/actions-cache-storage-limit" } } } } }, + "responses": { + "204": { + "description": "Response" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" } } }, - "/enterprises/{enterprise}/actions/runner-groups": { + "/enterprises/{enterprise}/code-security/configurations": { "get": { - "summary": "List self-hosted runner groups for an enterprise", - "description": "Lists all self-hosted runner groups for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/list-self-hosted-runner-groups-for-enterprise", + "summary": "Get code security configurations for an enterprise", + "description": "Lists all code security configurations available in an enterprise.\n\nThe authenticated user must be an administrator of the enterprise in order to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/get-configurations-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#get-code-security-configurations-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/per-page" + "name": "per_page", + "in": "query", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "required": false, + "schema": { + "type": "integer", + "default": 30 + } }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" } ], "responses": { @@ -3039,52 +2392,43 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "total_count": { - "type": "number" - }, - "runner_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner-groups-enterprise" - } - } - }, - "required": [ - "total_count", - "runner_groups" - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/code-security-configuration" + } }, "examples": { "default": { - "$ref": "#/components/examples/runner-groups-enterprise" + "$ref": "#/components/examples/enterprise-code-security-configuration-list" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "code-security", + "subcategory": "configurations" } }, "post": { - "summary": "Create a self-hosted runner group for an enterprise", - "description": "Creates a new self-hosted runner group for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/create-self-hosted-runner-group-for-enterprise", + "summary": "Create a code security configuration for an enterprise", + "description": "Creates a code security configuration in an enterprise.\n\nThe authenticated user must be an administrator of the enterprise in order to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/create-configuration-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#create-self-hosted-runner-group-for-an-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#create-a-code-security-configuration-for-an-enterprise" }, "parameters": [ { @@ -3092,105 +2436,278 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "name": { - "description": "Name of the runner group.", - "type": "string" + "type": "string", + "description": "The name of the code security configuration. Must be unique within the enterprise." }, - "visibility": { - "description": "Visibility of a runner group. You can select all organizations or select individual organization. Can be one of: `all` or `selected`", + "description": { "type": "string", + "description": "A description of the code security configuration", + "maxLength": 255 + }, + "advanced_security": { + "type": "string", + "description": "The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features.\n\n> [!WARNING]\n> `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features.\n", "enum": [ - "selected", - "all" + "enabled", + "disabled", + "code_security", + "secret_protection" + ], + "default": "disabled" + }, + "code_security": { + "type": "string", + "description": "The enablement status of GitHub Code Security features.", + "enum": [ + "enabled", + "disabled", + "not_set" ] }, - "selected_organization_ids": { - "description": "List of organization IDs that can access the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the organization." - } + "dependency_graph": { + "type": "string", + "description": "The enablement status of Dependency Graph", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "enabled" }, - "runners": { - "description": "List of runner IDs to add to the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the runner." + "dependency_graph_autosubmit_action": { + "type": "string", + "description": "The enablement status of Automatic dependency submission", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "dependency_graph_autosubmit_action_options": { + "type": "object", + "description": "Feature options for Automatic dependency submission", + "properties": { + "labeled_runners": { + "type": "boolean", + "description": "Whether to use runners labeled with 'dependency-submission' or standard GitHub runners.", + "default": false + } } + }, + "dependabot_alerts": { + "type": "string", + "description": "The enablement status of Dependabot alerts", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "dependabot_security_updates": { + "type": "string", + "description": "The enablement status of Dependabot security updates", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "code_scanning_options": { + "$ref": "#/components/schemas/code-scanning-options" + }, + "code_scanning_default_setup": { + "type": "string", + "description": "The enablement status of code scanning default setup", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "code_scanning_default_setup_options": { + "$ref": "#/components/schemas/code-scanning-default-setup-options" + }, + "code_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of code scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_protection": { + "type": "string", + "description": "The enablement status of GitHub Secret Protection features.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning": { + "type": "string", + "description": "The enablement status of secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_push_protection": { + "type": "string", + "description": "The enablement status of secret scanning push protection", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_validity_checks": { + "type": "string", + "description": "The enablement status of secret scanning validity checks", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_non_provider_patterns": { + "type": "string", + "description": "The enablement status of secret scanning non provider patterns", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_generic_secrets": { + "type": "string", + "description": "The enablement status of Copilot secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of secret scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "private_vulnerability_reporting": { + "type": "string", + "description": "The enablement status of private vulnerability reporting", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "enforcement": { + "type": "string", + "description": "The enforcement status for a security configuration", + "enum": [ + "enforced", + "unenforced" + ], + "default": "enforced" } }, "required": [ - "name" + "name", + "description" ] }, - "example": { - "name": "Expensive hardware runners", - "visibility": "selected", - "selected_organization_ids": [ - 32, - 91 - ], - "runners": [ - 9, - 2 - ] + "examples": { + "default": { + "summary": "Example for a code security configuration", + "value": { + "name": "High rish settings", + "description": "This is a code security configuration for octo-enterprise", + "advanced_security": "enabled", + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "secret_scanning": "enabled" + } + } } } } }, "responses": { "201": { - "description": "Response", + "description": "Successfully created code security configuration", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner-groups-enterprise" + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/runner-group-enterprise" + "$ref": "#/components/examples/enterprise-code-security-configuration" } } } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "code-security", + "subcategory": "configurations" } } }, - "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": { + "/enterprises/{enterprise}/code-security/configurations/defaults": { "get": { - "summary": "Get a self-hosted runner group for an enterprise", - "description": "Gets a specific self-hosted runner group for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/get-self-hosted-runner-group-for-enterprise", + "summary": "Get default code security configurations for an enterprise", + "description": "Lists the default code security configurations for an enterprise.\n\nThe authenticated user must be an administrator of the enterprise in order to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/get-default-configurations-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#get-a-self-hosted-runner-group-for-an-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#get-default-code-security-configurations-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" - }, - { - "$ref": "#/components/parameters/runner-group-id" } ], "responses": { @@ -3199,11 +2716,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner-groups-enterprise" + "$ref": "#/components/schemas/code-security-default-configurations" }, "examples": { "default": { - "$ref": "#/components/examples/runner-group-enterprise" + "$ref": "#/components/examples/code-security-default-configurations" } } } @@ -3211,349 +2728,741 @@ } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "code-security", + "subcategory": "configurations" } - }, - "patch": { - "summary": "Update a self-hosted runner group for an enterprise", - "description": "Updates the `name` and `visibility` of a self-hosted runner group in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/update-self-hosted-runner-group-for-enterprise", + } + }, + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}": { + "get": { + "summary": "Retrieve a code security configuration of an enterprise", + "description": "Gets a code security configuration available in an enterprise.\n\nThe authenticated user must be an administrator of the enterprise in order to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/get-single-configuration-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#update-a-self-hosted-runner-group-for-an-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#retrieve-a-code-security-configuration-of-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/configuration-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the runner group.", - "type": "string" - }, - "visibility": { - "description": "Visibility of a runner group. You can select all organizations or select individual organizations. Can be one of: `all` or `selected`", - "type": "string", - "enum": [ - "selected", - "all" - ], - "default": "all" - } - } - }, - "example": { - "name": "Expensive hardware runners", - "visibility": "selected" - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner-groups-enterprise" + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/runner-group-update-enterprise" + "$ref": "#/components/examples/enterprise-code-security-configuration" } } } } - } - }, - "x-github": { - "enabledForGitHubApps": false, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" - } - }, - "delete": { - "summary": "Delete a self-hosted runner group from an enterprise", - "description": "Deletes a self-hosted runner group for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/delete-self-hosted-runner-group-from-enterprise", - "tags": [ - "enterprise-admin" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-a-self-hosted-runner-group-from-an-enterprise" - }, - "parameters": [ - { - "$ref": "#/components/parameters/enterprise" }, - { - "$ref": "#/components/parameters/runner-group-id" - } - ], - "responses": { - "204": { - "description": "Response" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "code-security", + "subcategory": "configurations" } - } - }, - "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": { - "get": { - "summary": "List organization access to a self-hosted runner group in an enterprise", - "description": "Lists the organizations with access to a self-hosted runner group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/list-org-access-to-self-hosted-runner-group-in-enterprise", + }, + "patch": { + "summary": "Update a custom code security configuration for an enterprise", + "description": "Updates a code security configuration in an enterprise.\n\nThe authenticated user must be an administrator of the enterprise in order to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/update-enterprise-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-organization-access-to-a-self-hosted-runner-group-in-a-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#update-a-custom-code-security-configuration-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/configuration-id" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "total_count": { - "type": "number" - }, - "organizations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-simple" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the code security configuration. Must be unique across the enterprise." + }, + "description": { + "type": "string", + "description": "A description of the code security configuration", + "maxLength": 255 + }, + "advanced_security": { + "type": "string", + "description": "The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features.\n\n> [!WARNING]\n> `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features.\n", + "enum": [ + "enabled", + "disabled", + "code_security", + "secret_protection" + ] + }, + "code_security": { + "type": "string", + "description": "The enablement status of GitHub Code Security features.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph": { + "type": "string", + "description": "The enablement status of Dependency Graph", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph_autosubmit_action": { + "type": "string", + "description": "The enablement status of Automatic dependency submission", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph_autosubmit_action_options": { + "type": "object", + "description": "Feature options for Automatic dependency submission", + "properties": { + "labeled_runners": { + "type": "boolean", + "description": "Whether to use runners labeled with 'dependency-submission' or standard GitHub runners." } } }, - "required": [ - "total_count", - "organizations" - ] + "dependabot_alerts": { + "type": "string", + "description": "The enablement status of Dependabot alerts", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependabot_security_updates": { + "type": "string", + "description": "The enablement status of Dependabot security updates", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "code_scanning_default_setup": { + "type": "string", + "description": "The enablement status of code scanning default setup", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "code_scanning_default_setup_options": { + "$ref": "#/components/schemas/code-scanning-default-setup-options" + }, + "code_scanning_options": { + "$ref": "#/components/schemas/code-scanning-options" + }, + "code_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of code scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_protection": { + "type": "string", + "description": "The enablement status of GitHub Secret Protection features.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning": { + "type": "string", + "description": "The enablement status of secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_push_protection": { + "type": "string", + "description": "The enablement status of secret scanning push protection", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_validity_checks": { + "type": "string", + "description": "The enablement status of secret scanning validity checks", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_non_provider_patterns": { + "type": "string", + "description": "The enablement status of secret scanning non-provider patterns", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_generic_secrets": { + "type": "string", + "description": "The enablement status of Copilot secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of secret scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "private_vulnerability_reporting": { + "type": "string", + "description": "The enablement status of private vulnerability reporting", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "enforcement": { + "type": "string", + "description": "The enforcement status for a security configuration", + "enum": [ + "enforced", + "unenforced" + ] + } + } + }, + "examples": { + "default": { + "summary": "Example for updating a code security configuration", + "value": { + "name": "octo-enterprise recommended settings v2", + "secret_scanning": "disabled", + "code_scanning_default_setup": "enabled" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/organization-targets" + "$ref": "#/components/examples/enterprise-code-security-configuration" } } } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "code-security", + "subcategory": "configurations" } }, - "put": { - "summary": "Set organization access for a self-hosted runner group in an enterprise", - "description": "Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/set-org-access-to-self-hosted-runner-group-in-enterprise", + "delete": { + "summary": "Delete a code security configuration for an enterprise", + "description": "Deletes a code security configuration from an enterprise.\nRepositories attached to the configuration will retain their settings but will no longer be associated with\nthe configuration.\n\nThe authenticated user must be an administrator for the enterprise to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/delete-configuration-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#set-organization-access-to-a-self-hosted-runner-group-in-an-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#delete-a-code-security-configuration-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/configuration-id" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "code-security", + "subcategory": "configurations" + } + } + }, + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach": { + "post": { + "summary": "Attach an enterprise configuration to repositories", + "description": "Attaches an enterprise code security configuration to repositories. If the repositories specified are already attached to a configuration, they will be re-attached to the provided configuration.\n\nIf insufficient GHAS licenses are available to attach the configuration to a repository, only free features will be enabled.\n\nThe authenticated user must be an administrator for the enterprise to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", + "tags": [ + "code-security" + ], + "operationId": "code-security/attach-enterprise-configuration", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/code-security/configurations#attach-an-enterprise-configuration-to-repositories" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/configuration-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "selected_organization_ids": { - "description": "List of organization IDs that can access the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the organization." - } + "scope": { + "type": "string", + "description": "The type of repositories to attach the configuration to.", + "enum": [ + "all", + "all_without_configurations" + ] } }, "required": [ - "selected_organization_ids" + "scope" ] }, - "example": { - "selected_organization_ids": [ - 32, - 91 - ] + "examples": { + "default": { + "summary": "Example for attaching a configuration to some repositories", + "value": { + "scope": "all" + } + } } } } }, "responses": { - "204": { - "description": "Response" + "202": { + "$ref": "#/components/responses/accepted" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "code-security", + "subcategory": "configurations" } } }, - "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": { + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults": { "put": { - "summary": "Add organization access to a self-hosted runner group in an enterprise", - "description": "Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/add-org-access-to-self-hosted-runner-group-in-enterprise", + "summary": "Set a code security configuration as a default for an enterprise", + "description": "Sets a code security configuration as a default to be applied to new repositories in your enterprise.\n\nThis configuration will be applied by default to the matching repository type when created, but only for organizations within the enterprise that do not already have a default code security configuration set.\n\nThe authenticated user must be an administrator for the enterprise to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/set-configuration-as-default-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#add-organization-access-to-a-self-hosted-runner-group-in-an-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" - }, - { - "$ref": "#/components/parameters/org-id" + "$ref": "#/components/parameters/configuration-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_for_new_repos": { + "type": "string", + "description": "Specify which types of repository this security configuration should be applied to by default.", + "enum": [ + "all", + "none", + "private_and_internal", + "public" + ] + } + } + }, + "examples": { + "default": { + "summary": "Set this configuration to be enabled by default on all new repositories.", + "value": { + "default_for_new_repos": "all" + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Default successfully changed.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_for_new_repos": { + "type": "string", + "description": "Specifies which types of repository this security configuration is applied to by default.", + "enum": [ + "all", + "none", + "private_and_internal", + "public" + ] + }, + "configuration": { + "$ref": "#/components/schemas/code-security-configuration" + } + } + }, + "examples": { + "default": { + "value": { + "default_for_new_repos": "all", + "configuration": { + "$ref": "#/components/examples/code-security-configuration" + } + } + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": true, + "category": "code-security", + "subcategory": "configurations" } - }, - "delete": { - "summary": "Remove organization access to a self-hosted runner group in an enterprise", - "description": "Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/remove-org-access-to-self-hosted-runner-group-in-enterprise", + } + }, + "/enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories": { + "get": { + "summary": "Get repositories associated with an enterprise code security configuration", + "description": "Lists the repositories associated with an enterprise code security configuration in an organization.\n\nThe authenticated user must be an administrator of the enterprise in order to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "code-security" ], + "operationId": "code-security/get-repositories-for-enterprise-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#remove-organization-access-to-a-self-hosted-runner-group-in-an-enterprise" + "url": "https://docs.github.com/rest/code-security/configurations#get-repositories-associated-with-an-enterprise-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/configuration-id" + }, + { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 30 + } }, { - "$ref": "#/components/parameters/org-id" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "name": "status", + "description": "A comma-separated list of statuses. If specified, only repositories with these attachment statuses will be returned.\n\nCan be: `all`, `attached`, `attaching`, `removed`, `enforced`, `failed`, `updating`, `removed_by_enterprise`", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all" + } } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-security-configuration-repositories" + } + }, + "examples": { + "default": { + "summary": "Example of code security configuration repositories", + "value": [ + { + "status": "attached", + "repository": { + "$ref": "#/components/examples/simple-repository" + } + } + ] + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "code-security", + "subcategory": "configurations" } } }, - "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": { + "/enterprises/{enterprise}/dependabot/alerts": { "get": { - "summary": "List self-hosted runners in a group for an enterprise", - "description": "Lists the self-hosted runners that are in a specific enterprise group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/list-self-hosted-runners-in-group-for-enterprise", + "summary": "List Dependabot alerts for an enterprise", + "description": "Lists Dependabot alerts for repositories that are owned by the specified enterprise.\n\nThe authenticated user must be a member of the enterprise to use this endpoint.\n\nAlerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "dependabot" ], + "operationId": "dependabot/list-alerts-for-enterprise", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-in-a-group-for-an-enterprise" + "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-enterprise" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/dependabot-alert-comma-separated-states" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-severities" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-ecosystems" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-packages" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-epss" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-has" + }, + { + "$ref": "#/components/parameters/dependabot-alert-scope" + }, + { + "$ref": "#/components/parameters/dependabot-alert-sort" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/dependabot-alert-with-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/dependabot-alerts-for-organization" + } + } + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "dependabot", + "subcategory": "alerts" + } + } + }, + "/enterprises/{enterprise}/teams": { + "get": { + "summary": "List enterprise teams", + "description": "List all teams in the enterprise for the authenticated user", + "tags": [ + "enterprise-teams" + ], + "operationId": "enterprise-teams/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-teams#list-enterprise-teams" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" }, { "$ref": "#/components/parameters/per-page" @@ -3568,26 +3477,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "total_count": { - "type": "number" - }, - "runners": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner" - } - } - }, - "required": [ - "total_count", - "runners" - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/enterprise-team" + } }, "examples": { "default": { - "$ref": "#/components/examples/runner-paginated" + "$ref": "#/components/examples/enterprise-teams-items" } } } @@ -3597,255 +3494,371 @@ "$ref": "#/components/headers/link" } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-teams" } }, - "put": { - "summary": "Set self-hosted runners in a group for an enterprise", - "description": "Replaces the list of self-hosted runners that are part of an enterprise runner group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/set-self-hosted-runners-in-group-for-enterprise", + "post": { + "summary": "Create an enterprise team", + "description": "To create an enterprise team, the authenticated user must be an owner of the enterprise.", "tags": [ - "enterprise-admin" + "enterprise-teams" ], + "operationId": "enterprise-teams/create", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#set-self-hosted-runners-in-a-group-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-teams#create-an-enterprise-team" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" - }, - { - "$ref": "#/components/parameters/runner-group-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "runners": { - "description": "List of runner IDs to add to the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the runner." - } + "name": { + "type": "string", + "description": "The name of the team." + }, + "description": { + "nullable": true, + "type": "string", + "description": "A description of the team." + }, + "sync_to_organizations": { + "type": "string", + "description": "Retired: this field is no longer supported.\nWhether the enterprise team should be reflected in each organization.\nThis value cannot be set.\n", + "enum": [ + "all", + "disabled" + ], + "default": "disabled" + }, + "organization_selection_type": { + "type": "string", + "description": "Specifies which organizations in the enterprise should have access to this team. Can be one of `disabled`, `selected`, or `all`.\n`disabled`: The team is not assigned to any organizations. This is the default when you create a new team.\n`selected`: The team is assigned to specific organizations. You can then use the [add organization assignments API](https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-organization-assignments) endpoint.\n`all`: The team is assigned to all current and future organizations in the enterprise.\n", + "enum": [ + "disabled", + "selected", + "all" + ], + "default": "disabled" + }, + "group_id": { + "nullable": true, + "type": "string", + "description": "The ID of the IdP group to assign team membership with. You can get this value from the [REST API endpoints for SCIM](https://docs.github.com/rest/scim#list-provisioned-scim-groups-for-an-enterprise)." } }, "required": [ - "runners" + "name" ] }, - "example": { - "runners": [ - 9, - 2 - ] + "examples": { + "default": { + "value": { + "name": "Justice League", + "description": "A great team.", + "group_id": "62ab9291-fae2-468e-974b-7e45096d5021" + } + } } } } }, "responses": { - "204": { - "description": "Response" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/enterprise-team" + }, + "examples": { + "default": { + "$ref": "#/components/examples/enterprise-teams-item" + } + } + } + } } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-teams" } } }, - "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { - "put": { - "summary": "Add a self-hosted runner to a group for an enterprise", - "description": "Adds a self-hosted runner to a runner group configured in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise`\nscope to use this endpoint.", - "operationId": "enterprise-admin/add-self-hosted-runner-to-group-for-enterprise", + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships": { + "get": { + "summary": "List members in an enterprise team", + "description": "Lists all team members in an enterprise team.", "tags": [ - "enterprise-admin" + "enterprise-team-memberships" ], + "operationId": "enterprise-team-memberships/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#add-a-self-hosted-runner-to-a-group-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-members#list-members-in-an-enterprise-team" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/enterprise-team" }, { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-members" } - }, - "delete": { - "summary": "Remove a self-hosted runner from a group for an enterprise", - "description": "Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/remove-self-hosted-runner-from-group-for-enterprise", + } + }, + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships/add": { + "post": { + "summary": "Bulk add team members", + "description": "Add multiple team members to an enterprise team.", "tags": [ - "enterprise-admin" + "enterprise-team-memberships" ], + "operationId": "enterprise-team-memberships/bulk-add", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#remove-a-self-hosted-runner-from-a-group-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-members#bulk-add-team-members" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-group-id" - }, - { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/enterprise-team" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "usernames" + ], + "properties": { + "usernames": { + "type": "array", + "description": "The GitHub user handles to add to the team.", + "items": { + "type": "string", + "description": "The handle for the GitHub user account." + } + } + } + }, + "examples": { + "default": { + "value": { + "usernames": [ + "monalisa", + "octocat" + ] + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Successfully added team members.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-members" } } }, - "/enterprises/{enterprise}/actions/runners": { - "get": { - "summary": "List self-hosted runners for an enterprise", - "description": "Lists all self-hosted runners configured for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/list-self-hosted-runners-for-enterprise", + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove": { + "post": { + "summary": "Bulk remove team members", + "description": "Remove multiple team members from an enterprise team.", "tags": [ - "enterprise-admin" + "enterprise-team-memberships" ], + "operationId": "enterprise-team-memberships/bulk-remove", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-members#bulk-remove-team-members" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/enterprise-team" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "usernames" + ], + "properties": { + "usernames": { + "type": "array", + "description": "The GitHub user handles to be removed from the team.", + "items": { + "type": "string", + "description": "The handle for the GitHub user account." + } + } + } + }, + "examples": { + "default": { + "value": { + "usernames": [ + "monalisa", + "octocat" + ] + } + } + } + } + } + }, "responses": { "200": { - "description": "Response", + "description": "Successfully removed team members.", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "total_count": { - "type": "number" - }, - "runners": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/runner-paginated" + "$ref": "#/components/examples/simple-user-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-members" } } }, - "/enterprises/{enterprise}/actions/runners/downloads": { + "/enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}": { "get": { - "summary": "List runner applications for an enterprise", - "description": "Lists binaries for the runner application that you can download and run.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/list-runner-applications-for-enterprise", + "summary": "Get enterprise team membership", + "description": "Returns whether the user is a member of the enterprise team.", "tags": [ - "enterprise-admin" + "enterprise-team-memberships" ], + "operationId": "enterprise-team-memberships/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-runner-applications-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-members#get-enterprise-team-membership" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/enterprise-team" + }, + { + "$ref": "#/components/parameters/username" } ], "responses": { "200": { - "description": "Response", + "description": "User is a member of the enterprise team.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner-application" - } + "$ref": "#/components/schemas/simple-user" }, "examples": { - "default": { - "$ref": "#/components/examples/runner-application-items" + "exampleKey1": { + "$ref": "#/components/examples/simple-user" } } } @@ -3853,44 +3866,45 @@ } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-members" } - } - }, - "/enterprises/{enterprise}/actions/runners/registration-token": { - "post": { - "summary": "Create a registration token for an enterprise", - "description": "Returns a token that you can pass to the `config` script. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.\n\n#### Example using registration token\n\nConfigure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint.\n\n```\n./config.sh --url https://github.com/enterprises/octo-enterprise --token TOKEN\n```", - "operationId": "enterprise-admin/create-registration-token-for-enterprise", + }, + "put": { + "summary": "Add team member", + "description": "Add a team member to an enterprise team.", "tags": [ - "enterprise-admin" + "enterprise-team-memberships" ], + "operationId": "enterprise-team-memberships/add", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#create-a-registration-token-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-members#add-team-member" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/enterprise-team" + }, + { + "$ref": "#/components/parameters/username" } ], "responses": { "201": { - "description": "Response", + "description": "Successfully added team member", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authentication-token" + "$ref": "#/components/schemas/simple-user" }, "examples": { - "default": { - "$ref": "#/components/examples/authentication-token" + "exampleKey1": { + "$ref": "#/components/examples/simple-user" } } } @@ -3898,44 +3912,90 @@ } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-members" + } + }, + "delete": { + "summary": "Remove team membership", + "description": "Remove membership of a specific user from a particular team in an enterprise.", + "tags": [ + "enterprise-team-memberships" + ], + "operationId": "enterprise-team-memberships/remove", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-members#remove-team-membership" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/enterprise-team" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-members" } } }, - "/enterprises/{enterprise}/actions/runners/remove-token": { - "post": { - "summary": "Create a remove token for an enterprise", - "description": "Returns a token that you can pass to the `config` script to remove a self-hosted runner from an enterprise. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.\n\n#### Example using remove token\n\nTo remove your self-hosted runner from an enterprise, replace `TOKEN` with the remove token provided by this\nendpoint.\n\n```\n./config.sh remove --token TOKEN\n```", - "operationId": "enterprise-admin/create-remove-token-for-enterprise", + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations": { + "get": { + "summary": "Get organization assignments", + "description": "Get all organizations assigned to an enterprise team", "tags": [ - "enterprise-admin" + "enterprise-team-organizations" ], + "operationId": "enterprise-team-organizations/get-assignments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#create-a-remove-token-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#get-organization-assignments" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/enterprise-team" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "201": { - "description": "Response", + "200": { + "description": "An array of organizations the team is assigned to", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authentication-token" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } }, "examples": { "default": { - "$ref": "#/components/examples/authentication-token-2" + "$ref": "#/components/examples/organization-simple" } } } @@ -3943,47 +4003,79 @@ } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-organizations" } } }, - "/enterprises/{enterprise}/actions/runners/{runner_id}": { - "get": { - "summary": "Get a self-hosted runner for an enterprise", - "description": "Gets a specific self-hosted runner configured in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/get-self-hosted-runner-for-enterprise", + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations/add": { + "post": { + "summary": "Add organization assignments", + "description": "Assign an enterprise team to multiple organizations.", "tags": [ - "enterprise-admin" + "enterprise-team-organizations" ], + "operationId": "enterprise-team-organizations/bulk-add", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#get-a-self-hosted-runner-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-organization-assignments" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/enterprise-team" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "organization_slugs" + ], + "properties": { + "organization_slugs": { + "type": "array", + "description": "Organization slug to assign the team to.", + "items": { + "type": "string", + "description": "Organization slug to assign the team to" + } + } + } + }, + "examples": { + "default": { + "value": { + "organization_slugs": [ + "github" + ] + } + } + } + } + } + }, "responses": { "200": { - "description": "Response", + "description": "Successfully assigned the enterprise team to organizations.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } }, "examples": { "default": { - "$ref": "#/components/examples/runner" + "$ref": "#/components/examples/organization-simple-items" } } } @@ -3991,147 +4083,161 @@ } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-organizations" } - }, - "delete": { - "summary": "Delete a self-hosted runner from an enterprise", - "description": "Forces the removal of a self-hosted runner from an enterprise. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", - "operationId": "enterprise-admin/delete-self-hosted-runner-from-enterprise", + } + }, + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove": { + "post": { + "summary": "Remove organization assignments", + "description": "Unassign an enterprise team from multiple organizations.", "tags": [ - "enterprise-admin" + "enterprise-team-organizations" ], + "operationId": "enterprise-team-organizations/bulk-remove", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-self-hosted-runner-from-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#remove-organization-assignments" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/enterprise-team" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "organization_slugs" + ], + "properties": { + "organization_slugs": { + "type": "array", + "description": "Organization slug to unassign the team from.", + "items": { + "type": "string", + "description": "Organization slug to unassign the team from" + } + } + } + }, + "examples": { + "default": { + "value": { + "organization_slugs": [ + "github" + ] + } + } + } + } + } + }, "responses": { "204": { - "description": "Response" + "description": "Successfully unassigned the enterprise team from organizations." } }, "x-github": { - "enabledForGitHubApps": false, "githubCloudOnly": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "actions" + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-organizations" } } }, - "/enterprises/{enterprise}/audit-log": { + "/enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}": { "get": { - "summary": "Get the audit log for an enterprise", - "operationId": "enterprise-admin/get-audit-log", - "description": "Gets the audit log for an enterprise. To use this endpoint, you must be an enterprise admin, and you must use an access token with the `admin:enterprise` scope.", + "summary": "Get organization assignment", + "description": "Check if an enterprise team is assigned to an organization", "tags": [ - "enterprise-admin" + "enterprise-team-organizations" ], + "operationId": "enterprise-team-organizations/get-assignment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#get-organization-assignment" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" }, { - "$ref": "#/components/parameters/audit-log-phrase" - }, - { - "$ref": "#/components/parameters/audit-log-include" - }, - { - "$ref": "#/components/parameters/audit-log-after" - }, - { - "$ref": "#/components/parameters/audit-log-before" - }, - { - "$ref": "#/components/parameters/audit-log-order" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/enterprise-team" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" } ], "responses": { "200": { - "description": "Response", + "description": "The team is assigned to the organization", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/audit-log-event" - } + "$ref": "#/components/schemas/organization-simple" }, "examples": { "default": { - "$ref": "#/components/examples/audit-log" + "$ref": "#/components/examples/organization-simple" } } } } + }, + "404": { + "description": "The team is not assigned to the organization" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "audit-log" + "category": "enterprise-teams", + "subcategory": "enterprise-team-organizations" } - } - }, - "/enterprises/{enterprise}/settings/billing/actions": { - "get": { - "summary": "Get GitHub Actions billing for an enterprise", - "description": "Gets the summary of the free and paid GitHub Actions minutes used.\n\nPaid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nThe authenticated user must be an enterprise admin.", - "operationId": "billing/get-github-actions-billing-ghe", + }, + "put": { + "summary": "Add an organization assignment", + "description": "Assign an enterprise team to an organization.", "tags": [ - "billing" + "enterprise-team-organizations" ], + "operationId": "enterprise-team-organizations/add", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-github-actions-billing-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-an-organization-assignment" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/enterprise-team" + }, + { + "$ref": "#/components/parameters/org" } ], "responses": { - "200": { - "description": "Response", + "201": { + "description": "Successfully assigned the enterprise team to the organization.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-billing-usage" + "$ref": "#/components/schemas/organization-simple" }, "examples": { "default": { - "$ref": "#/components/examples/actions-billing-usage" + "$ref": "#/components/examples/organization-simple" } } } @@ -4139,31 +4245,65 @@ } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "billing" + "category": "enterprise-teams", + "subcategory": "enterprise-team-organizations" + } + }, + "delete": { + "summary": "Delete an organization assignment", + "description": "Unassign an enterprise team from an organization.", + "tags": [ + "enterprise-team-organizations" + ], + "operationId": "enterprise-team-organizations/delete", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#delete-an-organization-assignment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/enterprise-team" + }, + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "204": { + "description": "Successfully unassigned the enterprise team from the organization." + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-team-organizations" } } }, - "/enterprises/{enterprise}/settings/billing/packages": { + "/enterprises/{enterprise}/teams/{team_slug}": { "get": { - "summary": "Get GitHub Packages billing for an enterprise", - "description": "Gets the free and paid storage used for GitHub Packages in gigabytes.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nThe authenticated user must be an enterprise admin.", - "operationId": "billing/get-github-packages-billing-ghe", + "summary": "Get an enterprise team", + "description": "Gets a team using the team's slug. To create the slug, GitHub replaces special characters in the name string, changes all words to lowercase, and replaces spaces with a `-` separator and adds the \"ent:\" prefix. For example, \"My TEam Näme\" would become `ent:my-team-name`.", "tags": [ - "billing" + "enterprise-teams" ], + "operationId": "enterprise-teams/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-github-packages-billing-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-teams#get-an-enterprise-team" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/team-slug" } ], "responses": { @@ -4172,88 +4312,188 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/packages-billing-usage" + "$ref": "#/components/schemas/enterprise-team" }, "examples": { "default": { - "$ref": "#/components/examples/packages-billing-usage" + "$ref": "#/components/examples/enterprise-teams-item" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "billing" + "category": "enterprise-teams", + "subcategory": "enterprise-teams" } - } - }, - "/enterprises/{enterprise}/settings/billing/shared-storage": { - "get": { - "summary": "Get shared storage billing for an enterprise", - "description": "Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nThe authenticated user must be an enterprise admin.", - "operationId": "billing/get-shared-storage-billing-ghe", + }, + "patch": { + "summary": "Update an enterprise team", + "description": "To edit a team, the authenticated user must be an enterprise owner.", "tags": [ - "billing" + "enterprise-teams" ], + "operationId": "enterprise-teams/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-shared-storage-billing-for-an-enterprise" + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-teams#update-an-enterprise-team" }, "parameters": [ { "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/team-slug" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string", + "description": "A new name for the team." + }, + "description": { + "nullable": true, + "type": "string", + "description": "A new description for the team." + }, + "sync_to_organizations": { + "type": "string", + "description": "Retired: this field is no longer supported.\nWhether the enterprise team should be reflected in each organization.\nThis value cannot be changed.\n", + "enum": [ + "all", + "disabled" + ], + "default": "disabled" + }, + "organization_selection_type": { + "type": "string", + "description": "Specifies which organizations in the enterprise should have access to this team. Can be one of `disabled`, `selected`, or `all`.\n`disabled`: The team is not assigned to any organizations. This is the default when you create a new team.\n`selected`: The team is assigned to specific organizations. You can then use the [add organization assignments API](https://docs.github.com/rest/enterprise-teams/enterprise-team-organizations#add-organization-assignments).\n`all`: The team is assigned to all current and future organizations in the enterprise.\n", + "enum": [ + "disabled", + "selected", + "all" + ], + "default": "disabled" + }, + "group_id": { + "nullable": true, + "type": "string", + "description": "The ID of the IdP group to assign team membership with. The new IdP group will replace the existing one, or replace existing direct members if the team isn't currently linked to an IdP group." + } + } + }, + "examples": { + "default": { + "value": { + "name": "Justice League", + "description": "A great team.", + "group_id": "62ab9291-fae2-468e-974b-7e45096d5021" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/combined-billing-usage" + "$ref": "#/components/schemas/enterprise-team" }, "examples": { "default": { - "$ref": "#/components/examples/combined-billing-usage" + "$ref": "#/components/examples/enterprise-teams-item" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "billing" + "category": "enterprise-teams", + "subcategory": "enterprise-teams" + } + }, + "delete": { + "summary": "Delete an enterprise team", + "description": "To delete an enterprise team, the authenticated user must be an enterprise owner.\n\nIf you are an enterprise owner, deleting an enterprise team will delete all of its IdP mappings as well.", + "tags": [ + "enterprise-teams" + ], + "operationId": "enterprise-teams/delete", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/enterprise-teams/enterprise-teams#delete-an-enterprise-team" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/team-slug" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "enterprise-teams", + "subcategory": "enterprise-teams" } } }, "/events": { "get": { "summary": "List public events", - "description": "We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago.", + "description": "> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", "tags": [ "activity" ], "operationId": "activity/list-public-events", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-public-events" + "url": "https://docs.github.com/rest/activity/events#list-public-events" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/public-events-per-page" }, { "$ref": "#/components/parameters/page" @@ -4269,6 +4509,11 @@ "items": { "$ref": "#/components/schemas/event" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/public-events-items" + } } } } @@ -4286,9 +4531,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "activity", "subcategory": "events" } @@ -4297,18 +4539,16 @@ "/feeds": { "get": { "summary": "Get feeds", - "description": "GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user:\n\n* **Timeline**: The GitHub global public timeline\n* **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia)\n* **Current user public**: The public timeline for the authenticated user\n* **Current user**: The private timeline for the authenticated user\n* **Current user actor**: The private timeline for activity created by the authenticated user\n* **Current user organizations**: The private timeline for the organizations the authenticated user is a member of.\n* **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub.\n\n**Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens.", + "description": "Lists the feeds available to the authenticated user. The response provides a URL for each feed. You can then get a specific feed by sending a request to one of the feed URLs.\n\n* **Timeline**: The GitHub global public timeline\n* **User**: The public timeline for any user, using `uri_template`. For more information, see \"[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia).\"\n* **Current user public**: The public timeline for the authenticated user\n* **Current user**: The private timeline for the authenticated user\n* **Current user actor**: The private timeline for activity created by the authenticated user\n* **Current user organizations**: The private timeline for the organizations the authenticated user is a member of.\n* **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub.\n\nBy default, timeline resources are returned in JSON. You can specify the `application/atom+xml` type in the `Accept` header to return timeline resources in Atom format. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n> [!NOTE]\n> Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) since current feed URIs use the older, non revocable auth tokens.", "tags": [ "activity" ], "operationId": "activity/get-feeds", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#get-feeds" + "url": "https://docs.github.com/rest/activity/feeds#get-feeds" }, - "parameters": [ - - ], + "parameters": [], "responses": { "200": { "description": "Response", @@ -4329,9 +4569,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "activity", "subcategory": "feeds" } @@ -4347,7 +4584,7 @@ "operationId": "gists/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#list-gists-for-the-authenticated-user" + "url": "https://docs.github.com/rest/gists/gists#list-gists-for-the-authenticated-user" }, "parameters": [ { @@ -4394,28 +4631,24 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } }, "post": { "summary": "Create a gist", - "description": "Allows you to add a new gist with one or more files.\n\n**Note:** Don't name your files \"gistfile\" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally.", + "description": "Allows you to add a new gist with one or more files.\n\n> [!NOTE]\n> Don't name your files \"gistfile\" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally.", "operationId": "gists/create", "tags": [ "gists" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#create-a-gist" + "url": "https://docs.github.com/rest/gists/gists#create-a-gist" }, - "parameters": [ - - ], + "parameters": [], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -4471,6 +4704,20 @@ "files" ], "type": "object" + }, + "examples": { + "default": { + "summary": "Creating a gist", + "value": { + "description": "Example of a gist", + "public": false, + "files": { + "README.md": { + "content": "Hello World" + } + } + } + } } } } @@ -4515,25 +4762,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, "/gists/public": { "get": { "summary": "List public gists", - "description": "List public gists sorted by most recently updated to least recently updated.\n\nNote: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page.", + "description": "List public gists sorted by most recently updated to least recently updated.\n\nNote: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page.", "tags": [ "gists" ], "operationId": "gists/list-public", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#list-public-gists" + "url": "https://docs.github.com/rest/gists/gists#list-public-gists" }, "parameters": [ { @@ -4583,11 +4827,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, @@ -4601,7 +4842,7 @@ "operationId": "gists/list-starred", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#list-starred-gists" + "url": "https://docs.github.com/rest/gists/gists#list-starred-gists" }, "parameters": [ { @@ -4651,25 +4892,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, "/gists/{gist_id}": { "get": { "summary": "Get a gist", - "description": "", + "description": "Gets a specified gist.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.", "tags": [ "gists" ], "operationId": "gists/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#get-a-gist" + "url": "https://docs.github.com/rest/gists/gists#get-a-gist" }, "parameters": [ { @@ -4705,23 +4943,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } }, "patch": { "summary": "Update a gist", - "description": "Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged.", + "description": "Allows you to update a gist's description and to update, delete, or rename gist files. Files\nfrom the previous version of the gist that aren't explicitly changed during an edit\nare unchanged.\n\nAt least one of `description` or `files` is required.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.", "tags": [ "gists" ], "operationId": "gists/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists/#update-a-gist" + "url": "https://docs.github.com/rest/gists/gists#update-a-gist" }, "parameters": [ { @@ -4729,17 +4964,18 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "properties": { "description": { - "description": "Description of the gist", + "description": "The description of the gist.", "example": "Example Ruby script", "type": "string" }, "files": { - "description": "Names of files to be updated", + "description": "The gist files to be updated, renamed, or deleted. Each `key` must match the current filename\n(including extension) of the targeted gist file. For example: `hello.py`.\n\nTo delete a file, set the whole file to null. For example: `hello.py : null`. The file will also be\ndeleted if the specified object does not contain at least one of `content` or `filename`.", "example": { "hello.rb": { "content": "blah", @@ -4752,48 +4988,51 @@ "nullable": true, "properties": { "content": { - "description": "The new content of the file", + "description": "The new content of the file.", "type": "string" }, "filename": { - "description": "The new filename for the file", + "description": "The new filename for the file.", "type": "string", "nullable": true } - }, - "anyOf": [ - { - "required": [ - "content" - ] - }, - { - "required": [ - "filename" - ] - }, - { - "type": "object", - "maxProperties": 0 - } - ] + } } } }, - "anyOf": [ - { - "required": [ - "description" - ] - }, - { - "required": [ - "files" - ] - } - ], "type": "object", "nullable": true + }, + "examples": { + "updateGist": { + "summary": "Updating a gist", + "value": { + "description": "An updated gist description", + "files": { + "README.md": { + "content": "Hello World from GitHub" + } + } + } + }, + "deleteFile": { + "summary": "Deleting a gist file", + "value": { + "files": { + "hello.py": null + } + } + }, + "renameFile": { + "summary": "Renaming a gist file", + "value": { + "files": { + "hello.py": { + "filename": "goodbye.py" + } + } + } + } } } } @@ -4807,8 +5046,14 @@ "$ref": "#/components/schemas/gist-simple" }, "examples": { - "default": { + "updateGist": { "$ref": "#/components/examples/gist" + }, + "deleteFile": { + "$ref": "#/components/examples/delete-gist-file" + }, + "renameFile": { + "$ref": "#/components/examples/rename-gist-file" } } } @@ -4824,11 +5069,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } }, "delete": { @@ -4840,7 +5082,7 @@ "operationId": "gists/delete", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#delete-a-gist" + "url": "https://docs.github.com/rest/gists/gists#delete-a-gist" }, "parameters": [ { @@ -4864,25 +5106,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, "/gists/{gist_id}/comments": { "get": { "summary": "List gist comments", - "description": "", + "description": "Lists the comments on a gist.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.", "tags": [ "gists" ], "operationId": "gists/list-comments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#list-gist-comments" + "url": "https://docs.github.com/rest/gists/comments#list-gist-comments" }, "parameters": [ { @@ -4932,23 +5171,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", "subcategory": "comments" } }, "post": { "summary": "Create a gist comment", - "description": "", + "description": "Creates a comment on a gist.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.", "tags": [ "gists" ], "operationId": "gists/create-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#create-a-gist-comment" + "url": "https://docs.github.com/rest/gists/comments#create-a-gist-comment" }, "parameters": [ { @@ -4956,6 +5192,7 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -4971,6 +5208,14 @@ "required": [ "body" ] + }, + "examples": { + "default": { + "summary": "Creating a comment in a gist", + "value": { + "body": "This is a comment to a gist" + } + } } } } @@ -5012,9 +5257,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", "subcategory": "comments" } @@ -5023,14 +5265,14 @@ "/gists/{gist_id}/comments/{comment_id}": { "get": { "summary": "Get a gist comment", - "description": "", + "description": "Gets a comment on a gist.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.", "tags": [ "gists" ], "operationId": "gists/get-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#get-a-gist-comment" + "url": "https://docs.github.com/rest/gists/comments#get-a-gist-comment" }, "parameters": [ { @@ -5069,23 +5311,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", "subcategory": "comments" } }, "patch": { "summary": "Update a gist comment", - "description": "", + "description": "Updates a comment on a gist.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.", "tags": [ "gists" ], "operationId": "gists/update-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#update-a-gist-comment" + "url": "https://docs.github.com/rest/gists/comments#update-a-gist-comment" }, "parameters": [ { @@ -5096,6 +5335,7 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -5111,6 +5351,14 @@ "required": [ "body" ] + }, + "examples": { + "default": { + "summary": "Updating a comment in a gist", + "value": { + "body": "This is an update to a comment in a gist" + } + } } } } @@ -5138,9 +5386,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", "subcategory": "comments" } @@ -5154,7 +5399,7 @@ "operationId": "gists/delete-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#delete-a-gist-comment" + "url": "https://docs.github.com/rest/gists/comments#delete-a-gist-comment" }, "parameters": [ { @@ -5181,9 +5426,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", "subcategory": "comments" } @@ -5199,7 +5441,7 @@ "operationId": "gists/list-commits", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#list-gist-commits" + "url": "https://docs.github.com/rest/gists/gists#list-gist-commits" }, "parameters": [ { @@ -5252,11 +5494,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, @@ -5270,7 +5509,7 @@ "operationId": "gists/list-forks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#list-gist-forks" + "url": "https://docs.github.com/rest/gists/gists#list-gist-forks" }, "parameters": [ { @@ -5320,23 +5559,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } }, "post": { "summary": "Fork a gist", - "description": "**Note**: This was previously `/gists/:gist_id/fork`.", + "description": "", "tags": [ "gists" ], "operationId": "gists/fork", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#fork-a-gist" + "url": "https://docs.github.com/rest/gists/gists#fork-a-gist" }, "parameters": [ { @@ -5383,11 +5619,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, @@ -5401,7 +5634,7 @@ "operationId": "gists/check-is-starred", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#check-if-a-gist-is-starred" + "url": "https://docs.github.com/rest/gists/gists#check-if-a-gist-is-starred" }, "parameters": [ { @@ -5418,8 +5651,7 @@ "application/json": { "schema": { "type": "object", - "properties": { - }, + "properties": {}, "additionalProperties": false } } @@ -5435,23 +5667,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } }, "put": { "summary": "Star a gist", - "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"", "tags": [ "gists" ], "operationId": "gists/star", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#star-a-gist" + "url": "https://docs.github.com/rest/gists/gists#star-a-gist" }, "parameters": [ { @@ -5475,11 +5704,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } }, "delete": { @@ -5491,7 +5717,7 @@ "operationId": "gists/unstar", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#unstar-a-gist" + "url": "https://docs.github.com/rest/gists/gists#unstar-a-gist" }, "parameters": [ { @@ -5515,25 +5741,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, "/gists/{gist_id}/{sha}": { "get": { "summary": "Get a gist revision", - "description": "", + "description": "Gets a specified gist revision.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.", "tags": [ "gists" ], "operationId": "gists/get-revision", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#get-a-gist-revision" + "url": "https://docs.github.com/rest/gists/gists#get-a-gist-revision" }, "parameters": [ { @@ -5577,29 +5800,24 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "gists", - "subcategory": null + "subcategory": "gists" } } }, "/gitignore/templates": { "get": { "summary": "Get all gitignore templates", - "description": "List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user).", + "description": "List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user).", "operationId": "gitignore/get-all-templates", "tags": [ "gitignore" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gitignore#get-all-gitignore-templates" + "url": "https://docs.github.com/rest/gitignore/gitignore#get-all-gitignore-templates" }, - "parameters": [ - - ], + "parameters": [], "responses": { "200": { "description": "Response", @@ -5611,15 +5829,19 @@ "type": "string" } }, - "example": [ - "Actionscript", - "Android", - "AppceleratorTitanium", - "Autotools", - "Bancha", - "C", - "C++" - ] + "examples": { + "default": { + "value": [ + "Actionscript", + "Android", + "AppceleratorTitanium", + "Autotools", + "Bancha", + "C", + "C++" + ] + } + } } } }, @@ -5630,25 +5852,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "gitignore", - "subcategory": null + "subcategory": "gitignore" } } }, "/gitignore/templates/{name}": { "get": { "summary": "Get a gitignore template", - "description": "The API also allows fetching the source of a single template.\nUse the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents.", + "description": "Get the content of a gitignore template.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents.", "operationId": "gitignore/get-template", "tags": [ "gitignore" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gitignore#get-a-gitignore-template" + "url": "https://docs.github.com/rest/gitignore/gitignore#get-a-gitignore-template" }, "parameters": [ { @@ -5683,25 +5902,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "gitignore", - "subcategory": null + "subcategory": "gitignore" } } }, "/installation/repositories": { "get": { "summary": "List repositories accessible to the app installation", - "description": "List repositories that an app installation can access.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "description": "List repositories that an app installation can access.", "tags": [ "apps" ], "operationId": "apps/list-repos-accessible-to-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-app-installation" + "url": "https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-app-installation" }, "parameters": [ { @@ -5729,7 +5945,11 @@ "repositories": { "type": "array", "items": { - "$ref": "#/components/schemas/repository" + "allOf": [ + { + "$ref": "#/components/schemas/repository" + } + ] } }, "repository_selection": { @@ -5764,13 +5984,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "mercy", - "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" - } - ], "category": "apps", "subcategory": "installations" } @@ -5779,18 +5992,16 @@ "/installation/token": { "delete": { "summary": "Revoke an installation access token", - "description": "Revokes the installation token you're using to authenticate as an installation and access this endpoint.\n\nOnce an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the \"[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)\" endpoint.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "description": "Revokes the installation token you're using to authenticate as an installation and access this endpoint.\n\nOnce an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the \"[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)\" endpoint.", "tags": [ "apps" ], "operationId": "apps/revoke-installation-access-token", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#revoke-an-installation-access-token" + "url": "https://docs.github.com/rest/apps/installations#revoke-an-installation-access-token" }, - "parameters": [ - - ], + "parameters": [], "responses": { "204": { "description": "Response" @@ -5799,9 +6010,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "apps", "subcategory": "installations" } @@ -5810,19 +6018,19 @@ "/issues": { "get": { "summary": "List issues assigned to the authenticated user", - "description": "List issues assigned to the authenticated user across all visible repositories including owned repositories, member\nrepositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not\nnecessarily assigned to you.\n\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "description": "List issues assigned to the authenticated user across all visible repositories including owned repositories, member\nrepositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not\nnecessarily assigned to you.\n\n> [!NOTE]\n> GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull request id, use the \"[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)\" endpoint.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ "issues" ], "operationId": "issues/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-issues-assigned-to-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user" }, "parameters": [ { "name": "filter", - "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all` or `repos`: All issues the authenticated user can see, regardless of participation or creation", + "description": "Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation.", "in": "query", "required": false, "schema": { @@ -5840,7 +6048,7 @@ }, { "name": "state", - "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "description": "Indicates the state of the issues to return.", "in": "query", "required": false, "schema": { @@ -5858,7 +6066,7 @@ }, { "name": "sort", - "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "description": "What to sort results by.", "in": "query", "required": false, "schema": { @@ -5953,29 +6161,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], "category": "issues", - "subcategory": null + "subcategory": "issues" } } }, "/licenses": { "get": { "summary": "Get all commonly used licenses", - "description": "", + "description": "Lists the most commonly used licenses on GitHub. For more information, see \"[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository).\"", "tags": [ "licenses" ], "operationId": "licenses/get-all-commonly-used", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/licenses#get-all-commonly-used-licenses" + "url": "https://docs.github.com/rest/licenses/licenses#get-all-commonly-used-licenses" }, "parameters": [ { @@ -6019,25 +6220,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "licenses", - "subcategory": null + "subcategory": "licenses" } } }, "/licenses/{license}": { "get": { "summary": "Get a license", - "description": "", + "description": "Gets information about a specific license. For more information, see \"[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository).\"", "tags": [ "licenses" ], "operationId": "licenses/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/licenses#get-a-license" + "url": "https://docs.github.com/rest/licenses/licenses#get-a-license" }, "parameters": [ { @@ -6078,30 +6276,26 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "licenses", - "subcategory": null + "subcategory": "licenses" } } }, "/markdown": { "post": { "summary": "Render a Markdown document", - "description": "", + "description": "Depending on what is rendered in the Markdown, you may need to provide additional token scopes for labels, such as `issues:read` or `pull_requests:read`.", "operationId": "markdown/render", "tags": [ "markdown" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/markdown#render-a-markdown-document" + "url": "https://docs.github.com/rest/markdown/markdown#render-a-markdown-document" }, - "parameters": [ - - ], + "parameters": [], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -6121,7 +6315,7 @@ "type": "string" }, "context": { - "description": "The repository context to use when creating references in `gfm` mode.", + "description": "The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository.", "type": "string" } }, @@ -6129,6 +6323,14 @@ "text" ], "type": "object" + }, + "examples": { + "default": { + "summary": "Rendering markdown", + "value": { + "text": "Hello **world**" + } + } } } } @@ -6154,6 +6356,12 @@ "text/html": { "schema": { "type": "string" + }, + "examples": { + "default": { + "summary": "Example response", + "value": "

Hello world

" + } } } } @@ -6165,11 +6373,8 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "markdown", - "subcategory": null + "subcategory": "markdown" } } }, @@ -6183,21 +6388,35 @@ ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/markdown#render-a-markdown-document-in-raw-mode" + "url": "https://docs.github.com/rest/markdown/markdown#render-a-markdown-document-in-raw-mode" }, - "parameters": [ - - ], + "parameters": [], "requestBody": { + "required": false, "content": { "text/plain": { "schema": { "type": "string" + }, + "examples": { + "default": { + "value": { + "text": "Hello **world**" + } + } } }, "text/x-markdown": { "schema": { "type": "string" + }, + "examples": { + "default": { + "summary": "Rendering markdown", + "value": { + "text": "Hello **world**" + } + } } } } @@ -6214,6 +6433,12 @@ "text/html": { "schema": { "type": "string" + }, + "examples": { + "default": { + "summary": "Example response", + "value": "

Hello world

" + } } } } @@ -6225,25 +6450,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "markdown", - "subcategory": null + "subcategory": "markdown" } } }, "/marketplace_listing/accounts/{account_id}": { "get": { "summary": "Get a subscription plan for an account", - "description": "Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "description": "Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/get-subscription-plan-for-account", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account" + "url": "https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account" }, "parameters": [ { @@ -6283,9 +6505,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "marketplace" } @@ -6294,14 +6513,14 @@ "/marketplace_listing/plans": { "get": { "summary": "List plans", - "description": "Lists all plans that are part of your GitHub Marketplace listing.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "description": "Lists all plans that are part of your GitHub Marketplace listing.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/list-plans", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-plans" + "url": "https://docs.github.com/rest/apps/marketplace#list-plans" }, "parameters": [ { @@ -6345,9 +6564,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "marketplace" } @@ -6356,14 +6572,14 @@ "/marketplace_listing/plans/{plan_id}/accounts": { "get": { "summary": "List accounts for a plan", - "description": "Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "description": "Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/list-accounts-for-plan", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan" + "url": "https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan" }, "parameters": [ { @@ -6374,7 +6590,7 @@ }, { "name": "direction", - "description": "To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter.", + "description": "To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter.", "in": "query", "required": false, "schema": { @@ -6429,9 +6645,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "marketplace" } @@ -6440,14 +6653,14 @@ "/marketplace_listing/stubbed/accounts/{account_id}": { "get": { "summary": "Get a subscription plan for an account (stubbed)", - "description": "Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "description": "Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/get-subscription-plan-for-account-stubbed", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account-stubbed" + "url": "https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account-stubbed" }, "parameters": [ { @@ -6480,9 +6693,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "marketplace" } @@ -6491,14 +6701,14 @@ "/marketplace_listing/stubbed/plans": { "get": { "summary": "List plans (stubbed)", - "description": "Lists all plans that are part of your GitHub Marketplace listing.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "description": "Lists all plans that are part of your GitHub Marketplace listing.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/list-plans-stubbed", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-plans-stubbed" + "url": "https://docs.github.com/rest/apps/marketplace#list-plans-stubbed" }, "parameters": [ { @@ -6539,9 +6749,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "marketplace" } @@ -6550,14 +6757,14 @@ "/marketplace_listing/stubbed/plans/{plan_id}/accounts": { "get": { "summary": "List accounts for a plan (stubbed)", - "description": "Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "description": "Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint.", "tags": [ "apps" ], "operationId": "apps/list-accounts-for-plan-stubbed", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan-stubbed" + "url": "https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan-stubbed" }, "parameters": [ { @@ -6568,7 +6775,7 @@ }, { "name": "direction", - "description": "To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter.", + "description": "To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter.", "in": "query", "required": false, "schema": { @@ -6617,9 +6824,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", "subcategory": "marketplace" } @@ -6628,18 +6832,16 @@ "/meta": { "get": { "summary": "Get GitHub meta information", - "description": "Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see \"[About GitHub's IP addresses](https://help.github.com/articles/about-github-s-ip-addresses/).\"\n\n**Note:** The IP addresses shown in the documentation's response are only example values. You must always query the API directly to get the latest list of IP addresses.", + "description": "Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see \"[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/).\"\n\nThe API's response also includes a list of GitHub's domain names.\n\nThe values shown in the documentation's response are example values. You must always query the API directly to get the latest values.\n\n> [!NOTE]\n> This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported.", "tags": [ "meta" ], "operationId": "meta/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/meta#get-github-meta-information" + "url": "https://docs.github.com/rest/meta/meta#get-apiname-meta-information" }, - "parameters": [ - - ], + "parameters": [], "responses": { "200": { "description": "Response", @@ -6663,25 +6865,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "meta", - "subcategory": null + "subcategory": "meta" } } }, "/networks/{owner}/{repo}/events": { "get": { "summary": "List public events for a network of repositories", - "description": "", + "description": "> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", "tags": [ "activity" ], "operationId": "activity/list-public-events-for-repo-network", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-public-events-for-a-network-of-repositories" + "url": "https://docs.github.com/rest/activity/events#list-public-events-for-a-network-of-repositories" }, "parameters": [ { @@ -6707,6 +6906,11 @@ "items": { "$ref": "#/components/schemas/event" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/public-repo-events-items" + } } } } @@ -6727,9 +6931,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "activity", "subcategory": "events" } @@ -6745,7 +6946,7 @@ "operationId": "activity/list-notifications-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user" + "url": "https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user" }, "parameters": [ { @@ -6761,10 +6962,16 @@ "$ref": "#/components/parameters/before" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/page" + "name": "per_page", + "description": "The number of results per page (max 50). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 50 + } } ], "responses": { @@ -6807,35 +7014,31 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "activity", "subcategory": "notifications" } }, "put": { "summary": "Mark notifications as read", - "description": "Marks all notifications as \"read\" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as \"read.\" To check whether any \"unread\" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`.", + "description": "Marks all notifications as \"read\" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as \"read.\" To check whether any \"unread\" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`.", "tags": [ "activity" ], "operationId": "activity/mark-notifications-as-read", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#mark-notifications-as-read" + "url": "https://docs.github.com/rest/activity/notifications#mark-notifications-as-read" }, - "parameters": [ - - ], + "parameters": [], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "last_read_at": { - "description": "Describes the last point that notifications were checked.", + "description": "Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp.", "type": "string", "format": "date-time" }, @@ -6844,6 +7047,14 @@ "type": "boolean" } } + }, + "examples": { + "default": { + "value": { + "last_read_at": "2022-06-10T00:00:00Z", + "read": true + } + } } } } @@ -6860,6 +7071,11 @@ "type": "string" } } + }, + "examples": { + "default": { + "$ref": "#/components/examples/notifications-mark-read" + } } } } @@ -6880,9 +7096,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "activity", "subcategory": "notifications" } @@ -6891,14 +7104,14 @@ "/notifications/threads/{thread_id}": { "get": { "summary": "Get a thread", - "description": "", + "description": "Gets information about a notification thread.", "tags": [ "activity" ], "operationId": "activity/get-thread", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#get-a-thread" + "url": "https://docs.github.com/rest/activity/notifications#get-a-thread" }, "parameters": [ { @@ -6934,23 +7147,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "activity", "subcategory": "notifications" } }, "patch": { "summary": "Mark a thread as read", - "description": "", + "description": "Marks a thread as \"read.\" Marking a thread as \"read\" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications.", "tags": [ "activity" ], "operationId": "activity/mark-thread-as-read", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#mark-a-thread-as-read" + "url": "https://docs.github.com/rest/activity/notifications#mark-a-thread-as-read" }, "parameters": [ { @@ -6971,9 +7181,34 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], + "category": "activity", + "subcategory": "notifications" + } + }, + "delete": { + "summary": "Mark a thread as done", + "description": "Marks a thread as \"done.\" Marking a thread as \"done\" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications.", + "tags": [ + "activity" + ], + "operationId": "activity/mark-thread-as-done", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/notifications#mark-a-thread-as-done" + }, + "parameters": [ + { + "$ref": "#/components/parameters/thread-id" + } + ], + "responses": { + "204": { + "description": "No content" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, "category": "activity", "subcategory": "notifications" } @@ -6982,14 +7217,14 @@ "/notifications/threads/{thread_id}/subscription": { "get": { "summary": "Get a thread subscription for the authenticated user", - "description": "This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription).\n\nNote that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread.", + "description": "This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription).\n\nNote that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread.", "tags": [ "activity" ], "operationId": "activity/get-thread-subscription-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#get-a-thread-subscription-for-the-authenticated-user" + "url": "https://docs.github.com/rest/activity/notifications#get-a-thread-subscription-for-the-authenticated-user" }, "parameters": [ { @@ -7025,23 +7260,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "activity", "subcategory": "notifications" } }, "put": { "summary": "Set a thread subscription", - "description": "If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**.\n\nYou can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored.\n\nUnsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint.", + "description": "If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**.\n\nYou can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored.\n\nUnsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint.", "tags": [ "activity" ], "operationId": "activity/set-thread-subscription", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#set-a-thread-subscription" + "url": "https://docs.github.com/rest/activity/notifications#set-a-thread-subscription" }, "parameters": [ { @@ -7049,6 +7281,7 @@ } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { @@ -7060,6 +7293,13 @@ } }, "type": "object" + }, + "examples": { + "default": { + "value": { + "ignored": false + } + } } } } @@ -7093,23 +7333,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "activity", "subcategory": "notifications" } }, "delete": { "summary": "Delete a thread subscription", - "description": "Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`.", + "description": "Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`.", "tags": [ "activity" ], "operationId": "activity/delete-thread-subscription", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#delete-a-thread-subscription" + "url": "https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription" }, "parameters": [ { @@ -7133,9 +7370,6 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "activity", "subcategory": "notifications" } @@ -7167,6 +7401,11 @@ "application/octocat-stream": { "schema": { "type": "string" + }, + "examples": { + "default": { + "$ref": "#/components/examples/octocat" + } } } } @@ -7174,29 +7413,27 @@ }, "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/meta#get-octocat" + "url": "https://docs.github.com/rest/meta/meta#get-octocat" }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "meta" + "category": "meta", + "subcategory": "meta" } } }, "/organizations": { "get": { "summary": "List organizations", - "description": "Lists all organizations, in the order that they were created on GitHub.\n\n**Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations.", + "description": "Lists all organizations, in the order that they were created.\n\n> [!NOTE]\n> Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations.", "tags": [ "orgs" ], "operationId": "orgs/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-organizations" + "url": "https://docs.github.com/rest/orgs/orgs#list-organizations" }, "parameters": [ { @@ -7240,25 +7477,1002 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "orgs", - "subcategory": null + "subcategory": "orgs" + } + } + }, + "/organizations/{org}/actions/cache/retention-limit": { + "get": { + "summary": "Get GitHub Actions cache retention limit for an organization", + "description": "Gets GitHub Actions cache retention limit for an organization. All repositories under this\norganization may not set a higher cache retention limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/get-actions-cache-retention-limit-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-cache-retention-limit-for-organization" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-cache-retention-limit" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" + } + }, + "put": { + "summary": "Set GitHub Actions cache retention limit for an organization", + "description": "Sets GitHub Actions cache retention limit for an organization. All repositories under this\norganization may not set a higher cache retention limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/set-actions-cache-retention-limit-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-cache-retention-limit-for-organization" + }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/actions-cache-retention-limit" + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" + } + } + }, + "/organizations/{org}/actions/cache/storage-limit": { + "get": { + "summary": "Get GitHub Actions cache storage limit for an organization", + "description": "Gets GitHub Actions cache storage limit for an organization. All repositories under this\norganization may not set a higher cache storage limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/get-actions-cache-storage-limit-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-cache-storage-limit-for-organization" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-cache-storage-limit" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" + } + }, + "put": { + "summary": "Set GitHub Actions cache storage limit for an organization", + "description": "Sets GitHub Actions cache storage limit for an organization. All organizations and repositories under this\norganization may not set a higher cache storage limit.\n\nOAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/set-actions-cache-storage-limit-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-cache-storage-limit-for-organization" + }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/actions-cache-storage-limit" + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "cache" + } + } + }, + "/organizations/{org}/dependabot/repository-access": { + "get": { + "summary": "Lists the repositories Dependabot can access in an organization", + "description": "Lists repositories that organization admins have allowed Dependabot to access when updating dependencies.\n> [!NOTE]\n> This operation supports both server-to-server and user-to-server access.\nUnauthorized users will not see the existence of this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/repository-access-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "page", + "in": "query", + "description": "The page number of results to fetch.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dependabot-repository-access-details" + }, + "examples": { + "default": { + "$ref": "#/components/examples/dependabot-repository-access-details" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "repository-access" + } + }, + "patch": { + "summary": "Updates Dependabot's repository access list for an organization", + "description": "Updates repositories according to the list of repositories that organization admins have given Dependabot access to when they've updated dependencies.\n\n> [!NOTE]\n> This operation supports both server-to-server and user-to-server access.\nUnauthorized users will not see the existence of this endpoint.\n\n**Example request body:**\n```json\n{\n \"repository_ids_to_add\": [123, 456],\n \"repository_ids_to_remove\": [789]\n}\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/update-repository-access-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/repository-access#updates-dependabots-repository-access-list-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_ids_to_add": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "List of repository IDs to add." + }, + "repository_ids_to_remove": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "List of repository IDs to remove." + } + }, + "example": { + "repository_ids_to_add": [ + 123, + 456 + ], + "repository_ids_to_remove": [ + 789 + ] + } + }, + "examples": { + "204": { + "summary": "Example with a 'succeeded' status." + }, + "add-example": { + "summary": "Add repositories", + "value": { + "repository_ids_to_add": [ + 123, + 456 + ] + } + }, + "remove-example": { + "summary": "Remove repositories", + "value": { + "repository_ids_to_remove": [ + 789 + ] + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "repository-access" + } + } + }, + "/organizations/{org}/dependabot/repository-access/default-level": { + "put": { + "summary": "Set the default repository access level for Dependabot", + "description": "Sets the default level of repository access Dependabot will have while performing an update. Available values are:\n- 'public' - Dependabot will only have access to public repositories, unless access is explicitly granted to non-public repositories.\n- 'internal' - Dependabot will only have access to public and internal repositories, unless access is explicitly granted to private repositories.\n\nUnauthorized users will not see the existence of this endpoint.\n\nThis operation supports both server-to-server and user-to-server access.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/set-repository-access-default-level", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/repository-access#set-the-default-repository-access-level-for-dependabot" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_level": { + "type": "string", + "description": "The default repository access level for Dependabot updates.", + "enum": [ + "public", + "internal" + ], + "example": "internal" + } + }, + "required": [ + "default_level" + ] + }, + "examples": { + "204": { + "summary": "Example with a 'succeeded' status.", + "value": { + "default_level": "public" + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "repository-access" + } + } + }, + "/organizations/{org}/settings/billing/budgets": { + "get": { + "summary": "Get all budgets for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets all budgets for an organization. The authenticated user must be an organization admin or billing manager.", + "tags": [ + "billing" + ], + "operationId": "billing/get-all-budgets-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/budgets#get-all-budgets-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/get_all_budgets" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "budgets" + } + } + }, + "/organizations/{org}/settings/billing/budgets/{budget_id}": { + "get": { + "summary": "Get a budget by ID for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets a budget by ID. The authenticated user must be an organization admin or billing manager.", + "tags": [ + "billing" + ], + "operationId": "billing/get-budget-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/budgets#get-a-budget-by-id-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/budget" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/budget" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "budgets" + } + }, + "patch": { + "summary": "Update a budget for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nUpdates an existing budget for an organization. The authenticated user must be an organization admin or billing manager.", + "tags": [ + "billing" + ], + "operationId": "billing/update-budget-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/budgets#update-a-budget-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/budget" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "budget_amount": { + "type": "integer", + "description": "The budget amount in whole dollars. For license-based products, this represents the number of licenses." + }, + "prevent_further_usage": { + "type": "boolean", + "description": "Whether to prevent additional spending once the budget is exceeded" + }, + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget" + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts" + } + } + }, + "budget_scope": { + "type": "string", + "description": "The scope of the budget", + "enum": [ + "enterprise", + "organization", + "repository", + "cost_center" + ] + }, + "budget_entity_name": { + "type": "string", + "description": "The name of the entity to apply the budget to" + }, + "budget_type": { + "type": "string", + "description": "The type of pricing for the budget", + "enum": [ + "ProductPricing", + "SkuPricing" + ] + }, + "budget_product_sku": { + "type": "string", + "description": "A single product or SKU that will be covered in the budget" + } + } + }, + "examples": { + "update-budget": { + "summary": "Update budget example", + "value": { + "prevent_further_usage": false, + "budget_amount": 10, + "budget_alerting": { + "will_alert": false, + "alert_recipients": [] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Budget updated successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Budget successfully updated." + }, + "budget": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the budget." + }, + "budget_amount": { + "type": "number", + "format": "float", + "description": "The budget amount in whole dollars. For license-based products, this represents the number of licenses." + }, + "prevent_further_usage": { + "type": "boolean", + "description": "Whether to prevent additional spending once the budget is exceeded" + }, + "budget_alerting": { + "type": "object", + "required": [ + "will_alert", + "alert_recipients" + ], + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget" + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts" + } + } + }, + "budget_scope": { + "type": "string", + "description": "The scope of the budget", + "enum": [ + "enterprise", + "organization", + "repository", + "cost_center" + ] + }, + "budget_entity_name": { + "type": "string", + "description": "The name of the entity to apply the budget to", + "default": "" + }, + "budget_type": { + "type": "string", + "description": "The type of pricing for the budget", + "enum": [ + "ProductPricing", + "SkuPricing" + ] + }, + "budget_product_sku": { + "type": "string", + "description": "A single product or SKU that will be covered in the budget" + } + } + } + } + }, + "examples": { + "update-budget": { + "$ref": "#/components/examples/update-budget" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "description": "Budget not found or feature not enabled", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "budget-not-found": { + "value": { + "message": "Budget with ID 550e8400-e29b-41d4-a716-446655440000 not found.", + "documentation_url": "https://docs.github.com/rest/billing/budgets#update-a-budget" + } + }, + "feature-not-enabled": { + "value": { + "message": "Not Found", + "documentation_url": "https://docs.github.com/rest/billing/budgets#update-a-budget" + } + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "server-error": { + "value": { + "message": "Unable to update budget.", + "documentation_url": "https://docs.github.com/rest/billing/budgets#update-a-budget" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "billing", + "subcategory": "budgets" + } + }, + "delete": { + "summary": "Delete a budget for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nDeletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager.", + "tags": [ + "billing" + ], + "operationId": "billing/delete-budget-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/budgets#delete-a-budget-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/budget" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/delete-budget" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "budgets" + } + } + }, + "/organizations/{org}/settings/billing/premium_request/usage": { + "get": { + "summary": "Get billing premium request usage report for an organization", + "description": "Gets a report of premium request usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.\n\n**Note:** Only data from the past 24 months is accessible via this endpoint.", + "tags": [ + "billing" + ], + "operationId": "billing/get-github-billing-premium-request-usage-report-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-premium-request-usage-report-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/billing-usage-report-year" + }, + { + "$ref": "#/components/parameters/billing-usage-report-month-default" + }, + { + "$ref": "#/components/parameters/billing-usage-report-day" + }, + { + "$ref": "#/components/parameters/billing-usage-report-user" + }, + { + "$ref": "#/components/parameters/billing-usage-report-model" + }, + { + "$ref": "#/components/parameters/billing-usage-report-product" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/billing_premium_request_usage_report_org" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" + } + } + }, + "/organizations/{org}/settings/billing/usage": { + "get": { + "summary": "Get billing usage report for an organization", + "description": "Gets a report of the total usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.\n\n**Note:** This endpoint is only available to organizations with access to the enhanced billing platform. For more information, see \"[About the enhanced billing platform](https://docs.github.com/billing/using-the-new-billing-platform).\"", + "tags": [ + "billing" + ], + "operationId": "billing/get-github-billing-usage-report-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-usage-report-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/billing-usage-report-year" + }, + { + "$ref": "#/components/parameters/billing-usage-report-month" + }, + { + "$ref": "#/components/parameters/billing-usage-report-day" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/billing_usage_report_org" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" + } + } + }, + "/organizations/{org}/settings/billing/usage/summary": { + "get": { + "summary": "Get billing usage summary for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets a summary report of usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.\n\n**Note:** Only data from the past 24 months is accessible via this endpoint.", + "tags": [ + "billing" + ], + "operationId": "billing/get-github-billing-usage-summary-report-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-usage-summary-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/billing-usage-report-year" + }, + { + "$ref": "#/components/parameters/billing-usage-report-month-default" + }, + { + "$ref": "#/components/parameters/billing-usage-report-day" + }, + { + "$ref": "#/components/parameters/billing-usage-report-repository" + }, + { + "$ref": "#/components/parameters/billing-usage-report-product" + }, + { + "$ref": "#/components/parameters/billing-usage-report-sku" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/billing_usage_summary_report_org" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" } } }, "/orgs/{org}": { "get": { "summary": "Get an organization", - "description": "To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/).\n\nGitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See \"[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)\" for details. For an example response, see 'Response with GitHub plan information' below.\"", + "description": "Gets information about an organization.\n\nWhen the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, outside collaborators, guest collaborators, repository collaborators, or everyone with access to any repository within the organization to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/).\n\nTo see the full details about an organization, the authenticated user must be an organization owner.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization.\n\nTo see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission.", "tags": [ "orgs" ], "operationId": "orgs/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#get-an-organization" + "url": "https://docs.github.com/rest/orgs/orgs#get-an-organization" }, "parameters": [ { @@ -7275,7 +8489,7 @@ }, "examples": { "default-response": { - "$ref": "#/components/examples/organization-full-default-response" + "$ref": "#/components/examples/organization-full" } } } @@ -7288,27 +8502,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "surtur", - "note": "New repository creation permissions are available to preview. You can now use `members_can_create_public_repositories`, `members_can_create_private_repositories`, and `members_can_create_internal_repositories`. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. These parameters provide more granular permissions to configure the type of repositories organization members can create.\n\nTo access these new parameters during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.surtur-preview+json\n```" - } - ], "category": "orgs", - "subcategory": null + "subcategory": "orgs" } }, "patch": { "summary": "Update an organization", - "description": "**Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes).\n\nEnables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges.", + "description": "> [!WARNING]\n> **Closing down notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes).\n\n> [!WARNING]\n> **Closing down notice:** Code security product enablement for new repositories through the organization API is closing down. Please use [code security configurations](https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-organization) to set defaults instead. For more information on setting a default security configuration, see the [changelog](https://github.blog/changelog/2024-07-09-sunsetting-security-settings-defaults-parameters-in-the-organizations-rest-api/).\n\nUpdates the organization's profile and member privileges.\n\nThe authenticated user must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint.", "tags": [ "orgs" ], "operationId": "orgs/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs/#update-an-organization" + "url": "https://docs.github.com/rest/orgs/orgs#update-an-organization" }, "parameters": [ { @@ -7316,6 +8523,7 @@ } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { @@ -7347,19 +8555,19 @@ }, "description": { "type": "string", - "description": "The description of the company." + "description": "The description of the company. The maximum size is 160 characters." }, "has_organization_projects": { "type": "boolean", - "description": "Toggles whether an organization can use organization projects." + "description": "Whether an organization can use organization projects." }, "has_repository_projects": { "type": "boolean", - "description": "Toggles whether repositories that belong to the organization can use repository projects." + "description": "Whether repositories that belong to the organization can use repository projects." }, "default_repository_permission": { "type": "string", - "description": "Default permission level members have for organization repositories: \n\\* `read` - can pull, but not push to or administer this repository. \n\\* `write` - can pull and push, but not administer this repository. \n\\* `admin` - can pull, push, and administer this repository. \n\\* `none` - no permissions granted by default.", + "description": "Default permission level members have for organization repositories.", "enum": [ "read", "write", @@ -7370,24 +8578,24 @@ }, "members_can_create_repositories": { "type": "boolean", - "description": "Toggles the ability of non-admin organization members to create repositories. Can be one of: \n\\* `true` - all organization members can create repositories. \n\\* `false` - only organization owners can create repositories. \nDefault: `true` \n**Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details.", + "description": "Whether of non-admin organization members can create repositories. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details.", "default": true }, "members_can_create_internal_repositories": { "type": "boolean", - "description": "Toggles whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. Can be one of: \n\\* `true` - all organization members can create internal repositories. \n\\* `false` - only organization owners can create internal repositories. \nDefault: `true`. For more information, see \"[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." + "description": "Whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see \"[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." }, "members_can_create_private_repositories": { "type": "boolean", - "description": "Toggles whether organization members can create private repositories, which are visible to organization members with permission. Can be one of: \n\\* `true` - all organization members can create private repositories. \n\\* `false` - only organization owners can create private repositories. \nDefault: `true`. For more information, see \"[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." + "description": "Whether organization members can create private repositories, which are visible to organization members with permission. For more information, see \"[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." }, "members_can_create_public_repositories": { "type": "boolean", - "description": "Toggles whether organization members can create public repositories, which are visible to anyone. Can be one of: \n\\* `true` - all organization members can create public repositories. \n\\* `false` - only organization owners can create public repositories. \nDefault: `true`. For more information, see \"[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." + "description": "Whether organization members can create public repositories, which are visible to anyone. For more information, see \"[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." }, "members_allowed_repository_creation_type": { "type": "string", - "description": "Specifies which types of repositories non-admin organization members can create. Can be one of: \n\\* `all` - all organization members can create public and private repositories. \n\\* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on GitHub Enterprise Cloud. \n\\* `none` - only admin members can create repositories. \n**Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details.", + "description": "Specifies which types of repositories non-admin organization members can create. `private` is only available to repositories that are part of an organization on GitHub Enterprise Cloud. \n**Note:** This parameter is closing down and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details.", "enum": [ "all", "private", @@ -7396,36 +8604,92 @@ }, "members_can_create_pages": { "type": "boolean", - "description": "Toggles whether organization members can create GitHub Pages sites. Can be one of: \n\\* `true` - all organization members can create GitHub Pages sites. \n\\* `false` - no organization members can create GitHub Pages sites. Existing published sites will not be impacted.", + "description": "Whether organization members can create GitHub Pages sites. Existing published sites will not be impacted.", "default": true }, "members_can_create_public_pages": { "type": "boolean", - "description": "Toggles whether organization members can create public GitHub Pages sites. Can be one of: \n\\* `true` - all organization members can create public GitHub Pages sites. \n\\* `false` - no organization members can create public GitHub Pages sites. Existing published sites will not be impacted.", + "description": "Whether organization members can create public GitHub Pages sites. Existing published sites will not be impacted.", "default": true }, "members_can_create_private_pages": { "type": "boolean", - "description": "Toggles whether organization members can create private GitHub Pages sites. Can be one of: \n\\* `true` - all organization members can create private GitHub Pages sites. \n\\* `false` - no organization members can create private GitHub Pages sites. Existing published sites will not be impacted.", + "description": "Whether organization members can create private GitHub Pages sites. Existing published sites will not be impacted.", "default": true }, + "members_can_fork_private_repositories": { + "type": "boolean", + "description": "Whether organization members can fork private organization repositories.", + "default": false + }, + "web_commit_signoff_required": { + "type": "boolean", + "description": "Whether contributors to organization repositories are required to sign off on commits they make through GitHub's web interface.", + "default": false + }, "blog": { "type": "string", "example": "\"http://github.blog\"" + }, + "advanced_security_enabled_for_new_repositories": { + "type": "boolean", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to this organization.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nYou can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request.", + "deprecated": true + }, + "dependabot_alerts_enabled_for_new_repositories": { + "type": "boolean", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nYou can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request.", + "deprecated": true + }, + "dependabot_security_updates_enabled_for_new_repositories": { + "type": "boolean", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nYou can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request.", + "deprecated": true + }, + "dependency_graph_enabled_for_new_repositories": { + "type": "boolean", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nYou can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request.", + "deprecated": true + }, + "secret_scanning_enabled_for_new_repositories": { + "type": "boolean", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nYou can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request.", + "deprecated": true + }, + "secret_scanning_push_protection_enabled_for_new_repositories": { + "type": "boolean", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nYou can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request.", + "deprecated": true + }, + "secret_scanning_push_protection_custom_link_enabled": { + "type": "boolean", + "description": "Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection." + }, + "secret_scanning_push_protection_custom_link": { + "type": "string", + "description": "If `secret_scanning_push_protection_custom_link_enabled` is true, the URL that will be displayed to contributors who are blocked from pushing a secret." + }, + "deploy_keys_enabled_for_repositories": { + "type": "boolean", + "description": "Controls whether or not deploy keys may be added and used for repositories in the organization." } } }, - "example": { - "billing_email": "mona@github.com", - "company": "GitHub", - "email": "mona@github.com", - "twitter_username": "github", - "location": "San Francisco", - "name": "github", - "description": "GitHub, the company.", - "default_repository_permission": "read", - "members_can_create_repositories": true, - "members_allowed_repository_creation_type": "all" + "examples": { + "default": { + "value": { + "billing_email": "mona@github.com", + "company": "GitHub", + "email": "mona@github.com", + "twitter_username": "github", + "location": "San Francisco", + "name": "github", + "description": "GitHub, the company.", + "default_repository_permission": "read", + "members_can_create_repositories": true, + "members_allowed_repository_creation_type": "all" + } + } } } } @@ -7465,37 +8729,25 @@ }, "409": { "$ref": "#/components/responses/conflict" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "surtur", - "note": "New repository creation permissions are available to preview. You can now use `members_can_create_public_repositories`, `members_can_create_private_repositories`, and `members_can_create_internal_repositories`. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. These parameters provide more granular permissions to configure the type of repositories organization members can create.\n\nTo access these new parameters during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.surtur-preview+json\n```" - } - ], "category": "orgs", - "subcategory": null + "subcategory": "orgs" } - } - }, - "/orgs/{org}/actions/permissions": { - "get": { - "summary": "Get GitHub Actions permissions for an organization", - "description": "Gets the GitHub Actions permissions policy for repositories and allowed actions in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/get-github-actions-permissions-organization", + }, + "delete": { + "summary": "Delete an organization", + "description": "Deletes an organization and all its repositories.\n\nThe organization login will be unavailable for 90 days after deletion.\n\nPlease review the Terms of Service regarding account deletion before using this endpoint:\n\nhttps://docs.github.com/site-policy/github-terms/github-terms-of-service", + "operationId": "orgs/delete", "tags": [ - "actions" + "orgs" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-an-organization" + "url": "https://docs.github.com/rest/orgs/orgs#delete-an-organization" }, "parameters": [ { @@ -7503,42 +8755,35 @@ } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-organization-permissions" - }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-organization-permissions" - } - } - } - } + "202": { + "$ref": "#/components/responses/accepted" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "orgs" } - }, - "put": { - "summary": "Set GitHub Actions permissions for an organization", - "description": "Sets the GitHub Actions permissions policy for repositories and allowed actions in an organization.\n\nIf the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions, then you cannot override them for the organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/set-github-actions-permissions-organization", + } + }, + "/orgs/{org}/actions/cache/usage": { + "get": { + "summary": "Get GitHub Actions cache usage for an organization", + "description": "Gets the total GitHub Actions cache usage for an organization.\nThe data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated.\n\nOAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/get-actions-cache-usage-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-an-organization" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-an-organization" }, "parameters": [ { @@ -7546,56 +8791,46 @@ } ], "responses": { - "204": { - "description": "Response" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "enabled_repositories": { - "$ref": "#/components/schemas/enabled-repositories" - }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" - } + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-cache-usage-org-enterprise" }, - "required": [ - "enabled_repositories" - ] - }, - "example": { - "enabled_repositories": "all", - "allowed_actions": "selected" + "examples": { + "default": { + "$ref": "#/components/examples/actions-cache-usage-org-enterprise" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "permissions" + "subcategory": "cache" } } }, - "/orgs/{org}/actions/permissions/repositories": { + "/orgs/{org}/actions/cache/usage-by-repository": { "get": { - "summary": "List selected repositories enabled for GitHub Actions in an organization", - "description": "Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/list-selected-repositories-enabled-github-actions-organization", + "summary": "List repositories with GitHub Actions cache usage for an organization", + "description": "Lists repositories and their GitHub Actions cache usage for an organization.\nThe data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated.\n\nOAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/get-actions-cache-usage-by-repo-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization" + "url": "https://docs.github.com/rest/actions/cache#list-repositories-with-github-actions-cache-usage-for-an-organization" }, "parameters": [ { @@ -7617,270 +8852,53 @@ "type": "object", "required": [ "total_count", - "repositories" + "repository_cache_usages" ], "properties": { "total_count": { - "type": "number" + "type": "integer" }, - "repositories": { + "repository_cache_usages": { "type": "array", "items": { - "$ref": "#/components/schemas/repository" + "$ref": "#/components/schemas/actions-cache-usage-by-repository" } } } }, "examples": { "default": { - "$ref": "#/components/examples/repository-paginated" + "$ref": "#/components/examples/org-actions-cache-usage-by-repo" } } } - } - } - }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" - } - }, - "put": { - "summary": "Set selected repositories enabled for GitHub Actions in an organization", - "description": "Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/set-selected-repositories-enabled-github-actions-organization", - "tags": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-selected-repositories-enabled-for-github-actions-in-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "selected_repository_ids": { - "description": "List of repository IDs to enable for GitHub Actions.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the repository." - } - } - }, - "required": [ - "selected_repository_ids" - ] - }, - "example": { - "selected_repository_ids": [ - 32, - 42 - ] - } - } - } - }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" - } - } - }, - "/orgs/{org}/actions/permissions/repositories/{repository_id}": { - "put": { - "summary": "Enable a selected repository for GitHub Actions in an organization", - "description": "Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/enable-selected-repository-github-actions-organization", - "tags": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#enable-a-selected-repository-for-github-actions-in-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/repository-id" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" - } - }, - "delete": { - "summary": "Disable a selected repository for GitHub Actions in an organization", - "description": "Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/disable-selected-repository-github-actions-organization", - "tags": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#disable-a-selected-repository-for-github-actions-in-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/repository-id" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" - } - } - }, - "/orgs/{org}/actions/permissions/selected-actions": { - "get": { - "summary": "Get allowed actions for an organization", - "description": "Gets the selected actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/get-allowed-actions-organization", - "tags": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-allowed-actions-for-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/selected-actions" - }, - "examples": { - "default": { - "$ref": "#/components/examples/selected-actions" - } - } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" - } - }, - "put": { - "summary": "Set allowed actions for an organization", - "description": "Sets the actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nIf the organization belongs to an enterprise that has `selected` actions set at the enterprise level, then you cannot override any of the enterprise's allowed actions settings.\n\nTo use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", - "operationId": "actions/set-allowed-actions-organization", - "tags": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-allowed-actions-for-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/selected-actions" - }, - "examples": { - "selected_actions": { - "$ref": "#/components/examples/selected-actions" - } - } - } - } - }, - "x-github": { "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], "category": "actions", - "subcategory": "permissions" + "subcategory": "cache" } } }, - "/orgs/{org}/actions/runner-groups": { + "/orgs/{org}/actions/hosted-runners": { "get": { - "summary": "List self-hosted runner groups for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nLists all self-hosted runner groups configured in an organization and inherited from an enterprise.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/list-self-hosted-runner-groups-for-org", + "summary": "List GitHub-hosted runners for an organization", + "description": "Lists all GitHub-hosted runners configured in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `manage_runner:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/list-hosted-runners-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#list-github-hosted-runners-for-an-organization" }, "parameters": [ { @@ -7902,49 +8920,51 @@ "type": "object", "required": [ "total_count", - "runner_groups" + "runners" ], "properties": { "total_count": { - "type": "number" + "type": "integer" }, - "runner_groups": { + "runners": { "type": "array", "items": { - "$ref": "#/components/schemas/runner-groups-org" + "$ref": "#/components/schemas/actions-hosted-runner" } } } }, "examples": { "default": { - "$ref": "#/components/examples/runner-groups-org" + "$ref": "#/components/examples/actions-hosted-runner-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } }, "post": { - "summary": "Create a self-hosted runner group for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nCreates a new self-hosted runner group for an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/create-self-hosted-runner-group-for-org", + "summary": "Create a GitHub-hosted runner for an organization", + "description": "Creates a GitHub-hosted runner for an organization.\nOAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", + "operationId": "actions/create-hosted-runner-for-org", "tags": [ "actions" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-a-self-hosted-runner-group-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#create-a-github-hosted-runner-for-an-organization" }, "parameters": [ { @@ -7952,57 +8972,83 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { - "description": "Name of the runner group.", + "description": "Name of the runner. Must be between 1 and 64 characters and may only contain upper and lowercase letters a-z, numbers 0-9, '.', '-', and '_'.", "type": "string" }, - "visibility": { - "description": "Visibility of a runner group. You can select all repositories, select individual repositories, or limit access to private repositories. Can be one of: `all`, `selected`, or `private`.", - "type": "string", - "enum": [ - "selected", - "all", - "private" - ], - "default": "all" - }, - "selected_repository_ids": { - "description": "List of repository IDs that can access the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the repository." + "image": { + "description": "The image of runner. To list all available images, use `GET /actions/hosted-runners/images/github-owned` or `GET /actions/hosted-runners/images/partner`.", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the runner image.", + "type": "string" + }, + "source": { + "description": "The source of the runner image.", + "type": "string", + "enum": [ + "github", + "partner", + "custom" + ] + }, + "version": { + "description": "The version of the runner image to deploy. This is relevant only for runners using custom images.", + "type": "string", + "nullable": true + } } }, - "runners": { - "description": "List of runner IDs to add to the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the runner." - } + "size": { + "description": "The machine size of the runner. To list available sizes, use `GET actions/hosted-runners/machine-sizes`", + "type": "string" + }, + "runner_group_id": { + "description": "The existing runner group to add this runner to.", + "type": "integer" + }, + "maximum_runners": { + "description": "The maximum amount of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit your cost.", + "type": "integer" + }, + "enable_static_ip": { + "description": "Whether this runner should be created with a static public IP. Note limit on account. To list limits on account, use `GET actions/hosted-runners/limits`", + "type": "boolean" + }, + "image_gen": { + "description": "Whether this runner should be used to generate custom images.", + "type": "boolean", + "default": false } }, "required": [ - "name" + "name", + "image", + "size", + "runner_group_id" ] }, - "example": { - "name": "Expensive hardware runners", - "visibility": "selected", - "selected_repository_ids": [ - 32, - 91 - ], - "runners": [ - 9, - 2 - ] + "examples": { + "default": { + "value": { + "name": "My Hosted runner", + "image": { + "id": "ubuntu-latest", + "source": "github" + }, + "runner_group_id": 1, + "size": "4-core", + "maximum_runners": 50, + "enable_static_ip": false + } + } } } } @@ -8013,11 +9059,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner-groups-org" + "$ref": "#/components/schemas/actions-hosted-runner" }, "examples": { "default": { - "$ref": "#/components/examples/runner-group" + "$ref": "#/components/examples/actions-hosted-runner" } } } @@ -8027,32 +9073,26 @@ "x-github": { "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runner-groups/{runner_group_id}": { + "/orgs/{org}/actions/hosted-runners/images/custom": { "get": { - "summary": "Get a self-hosted runner group for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nGets a specific self-hosted runner group for an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/get-self-hosted-runner-group-for-org", + "summary": "List custom images for an organization", + "description": "List custom images for an organization.\n\nOAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/list-custom-images-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-group-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#list-custom-images-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-group-id" } ], "responses": { @@ -8061,11 +9101,26 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner-groups-org" + "type": "object", + "required": [ + "total_count", + "images" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-hosted-runner-custom-image" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/runner-group-item" + "$ref": "#/components/examples/actions-hosted-runner-custom-image-versions" } } } @@ -8073,73 +9128,44 @@ } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } - }, - "patch": { - "summary": "Update a self-hosted runner group for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nUpdates the `name` and `visibility` of a self-hosted runner group in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/update-self-hosted-runner-group-for-org", + } + }, + "/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}": { + "get": { + "summary": "Get a custom image definition for GitHub Actions Hosted Runners", + "description": "Get a custom image definition for GitHub Actions Hosted Runners.\n\nOAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/get-custom-image-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#update-a-self-hosted-runner-group-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-a-custom-image-definition-for-github-actions-hosted-runners" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/actions-custom-image-definition-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the runner group.", - "type": "string" - }, - "visibility": { - "description": "Visibility of a runner group. You can select all repositories, select individual repositories, or all private repositories. Can be one of: `all`, `selected`, or `private`.", - "type": "string", - "enum": [ - "selected", - "all", - "private" - ] - } - } - }, - "example": { - "name": "Expensive hardware runners", - "visibility": "selected" - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner-groups-org" + "$ref": "#/components/schemas/actions-hosted-runner-custom-image" }, "examples": { "default": { - "$ref": "#/components/examples/runner-group" + "$ref": "#/components/examples/actions-hosted-runner-custom-image" } } } @@ -8147,32 +9173,29 @@ } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } }, "delete": { - "summary": "Delete a self-hosted runner group from an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nDeletes a self-hosted runner group for an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/delete-self-hosted-runner-group-from-org", + "summary": "Delete a custom image from the organization", + "description": "Delete a custom image from the organization.\n\nOAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/delete-custom-image-from-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#delete-a-custom-image-from-the-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/actions-custom-image-definition-id" } ], "responses": { @@ -8181,40 +9204,31 @@ } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": { + "/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions": { "get": { - "summary": "List repository access to a self-hosted runner group in an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nLists the repositories with access to a self-hosted runner group configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/list-repo-access-to-self-hosted-runner-group-in-org", + "summary": "List image versions of a custom image for an organization", + "description": "List image versions of a custom image for an organization.\n\nOAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/list-custom-image-versions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#list-image-versions-of-a-custom-image-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/actions-custom-image-definition-id" }, { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -8226,23 +9240,23 @@ "type": "object", "required": [ "total_count", - "repositories" + "image_versions" ], "properties": { "total_count": { - "type": "number" + "type": "integer" }, - "repositories": { + "image_versions": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/actions-hosted-runner-custom-image-version" } } } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-paginated" + "$ref": "#/components/examples/actions-hosted-runner-custom-image-versions" } } } @@ -8250,136 +9264,80 @@ } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "self-hosted-runner-groups" - } - }, - "put": { - "summary": "Set repository access for a self-hosted runner group in an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nReplaces the list of repositories that have access to a self-hosted runner group configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/set-repo-access-to-self-hosted-runner-group-in-org", - "tags": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-repository-access-to-a-self-hosted-runner-group-in-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-group-id" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "selected_repository_ids": { - "description": "List of repository IDs that can access the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the repository." - } - } - }, - "required": [ - "selected_repository_ids" - ] - }, - "example": { - "selected_repository_ids": [ - 32, - 91 - ] - } - } - } - }, - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": { - "put": { - "summary": "Add repository access to a self-hosted runner group in an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nAdds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org`\nscope to use this endpoint.", - "operationId": "actions/add-repo-access-to-self-hosted-runner-group-in-org", + "/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}": { + "get": { + "summary": "Get an image version of a custom image for GitHub Actions Hosted Runners", + "description": "Get an image version of a custom image for GitHub Actions Hosted Runners.\n\nOAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/get-custom-image-version-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#add-repository-acess-to-a-self-hosted-runner-group-in-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-an-image-version-of-a-custom-image-for-github-actions-hosted-runners" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/actions-custom-image-definition-id" }, { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/actions-custom-image-version" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-hosted-runner-custom-image-version" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-hosted-runner-custom-image-version" + } + } + } + } } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } }, "delete": { - "summary": "Remove repository access to a self-hosted runner group in an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nRemoves a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/remove-repo-access-to-self-hosted-runner-group-in-org", + "summary": "Delete an image version of custom image from the organization", + "description": "Delete an image version of custom image from the organization.\n\nOAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", "tags": [ "actions" ], + "operationId": "actions/delete-custom-image-version-from-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#remove-repository-access-to-a-self-hosted-runner-group-in-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#delete-an-image-version-of-custom-image-from-the-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/runner-group-id" + "$ref": "#/components/parameters/actions-custom-image-definition-id" }, { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/actions-custom-image-version" } ], "responses": { @@ -8388,40 +9346,28 @@ } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners": { + "/orgs/{org}/actions/hosted-runners/images/github-owned": { "get": { - "summary": "List self-hosted runners in a group for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nLists self-hosted runners that are in a specific organization group.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/list-self-hosted-runners-in-group-for-org", + "summary": "Get GitHub-owned images for GitHub-hosted runners in an organization", + "description": "Get the list of GitHub-owned images available for GitHub-hosted runners for an organization.", + "operationId": "actions/get-hosted-runners-github-owned-images-for-org", "tags": [ "actions" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-github-owned-images-for-github-hosted-runners-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-group-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -8433,204 +9379,208 @@ "type": "object", "required": [ "total_count", - "runners" + "images" ], "properties": { "total_count": { - "type": "number" + "type": "integer" }, - "runners": { + "images": { "type": "array", "items": { - "$ref": "#/components/schemas/runner" + "$ref": "#/components/schemas/actions-hosted-runner-curated-image" } } } }, "examples": { "default": { - "$ref": "#/components/examples/runner-paginated" + "$ref": "#/components/examples/actions-hosted-runner-curated-image" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } - }, - "put": { - "summary": "Set self-hosted runners in a group for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nReplaces the list of self-hosted runners that are part of an organization runner group.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/set-self-hosted-runners-in-group-for-org", + } + }, + "/orgs/{org}/actions/hosted-runners/images/partner": { + "get": { + "summary": "Get partner images for GitHub-hosted runners in an organization", + "description": "Get the list of partner images available for GitHub-hosted runners for an organization.", + "operationId": "actions/get-hosted-runners-partner-images-for-org", "tags": [ "actions" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-partner-images-for-github-hosted-runners-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-group-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "runners": { - "description": "List of runner IDs to add to the runner group.", - "type": "array", - "items": { - "type": "integer", - "description": "Unique identifier of the runner." + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "images" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-hosted-runner-curated-image" + } } } }, - "required": [ - "runners" - ] - }, - "example": { - "runners": [ - 9, - 2 - ] + "examples": { + "default": { + "$ref": "#/components/examples/actions-hosted-runner-curated-image" + } + } } } } }, - "responses": { - "204": { - "description": "Response" - } - }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { - "put": { - "summary": "Add a self-hosted runner to a group for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nAdds a self-hosted runner to a runner group configured in an organization.\n\nYou must authenticate using an access token with the `admin:org`\nscope to use this endpoint.", - "operationId": "actions/add-self-hosted-runner-to-group-for-org", + "/orgs/{org}/actions/hosted-runners/limits": { + "get": { + "summary": "Get limits on GitHub-hosted runners for an organization", + "description": "Get the GitHub-hosted runners limits for an organization.", + "operationId": "actions/get-hosted-runners-limits-for-org", "tags": [ "actions" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-limits-on-github-hosted-runners-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-group-id" - }, - { - "$ref": "#/components/parameters/runner-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-hosted-runner-limits" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-hosted-runner-limits-default" + } + } + } + } } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } - }, - "delete": { - "summary": "Remove a self-hosted runner from a group for an organization", - "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nRemoves a self-hosted runner from a group configured in an organization. The runner is then returned to the default group.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", - "operationId": "actions/remove-self-hosted-runner-from-group-for-org", + } + }, + "/orgs/{org}/actions/hosted-runners/machine-sizes": { + "get": { + "summary": "Get GitHub-hosted runners machine specs for an organization", + "description": "Get the list of machine specs available for GitHub-hosted runners for an organization.", + "operationId": "actions/get-hosted-runners-machine-specs-for-org", "tags": [ "actions" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-github-hosted-runners-machine-specs-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-group-id" - }, - { - "$ref": "#/components/parameters/runner-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "machine_specs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "machine_specs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-hosted-runner-machine-spec" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-hosted-runner-machine-spec" + } + } + } + } } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "self-hosted-runner-groups" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runners": { + "/orgs/{org}/actions/hosted-runners/platforms": { "get": { - "summary": "List self-hosted runners for an organization", - "description": "Lists all self-hosted runners configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "summary": "Get platforms for GitHub-hosted runners in an organization", + "description": "Get the list of platforms available for GitHub-hosted runners for an organization.", + "operationId": "actions/get-hosted-runners-platforms-for-org", "tags": [ "actions" ], - "operationId": "actions/list-self-hosted-runners-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-platforms-for-github-hosted-runners-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -8642,60 +9592,61 @@ "type": "object", "required": [ "total_count", - "runners" + "platforms" ], "properties": { "total_count": { "type": "integer" }, - "runners": { + "platforms": { "type": "array", "items": { - "$ref": "#/components/schemas/runner" + "type": "string" } } } }, "examples": { "default": { - "$ref": "#/components/examples/runner-paginated" + "value": { + "total_count": 1, + "platforms": [ + "linux-x64", + "win-x64" + ] + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "actions", - "subcategory": "self-hosted-runners" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runners/downloads": { + "/orgs/{org}/actions/hosted-runners/{hosted_runner_id}": { "get": { - "summary": "List runner applications for an organization", - "description": "Lists binaries for the runner application that you can download and run.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "summary": "Get a GitHub-hosted runner for an organization", + "description": "Gets a GitHub-hosted runner configured in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", "tags": [ "actions" ], - "operationId": "actions/list-runner-applications-for-org", + "operationId": "actions/get-hosted-runner-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-runner-applications-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#get-a-github-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/hosted-runner-id" } ], "responses": { @@ -8704,59 +9655,110 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner-application" - } + "$ref": "#/components/schemas/actions-hosted-runner" }, "examples": { "default": { - "$ref": "#/components/examples/runner-application-items" + "$ref": "#/components/examples/actions-hosted-runner" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "actions", - "subcategory": "self-hosted-runners" + "subcategory": "hosted-runners" } - } - }, - "/orgs/{org}/actions/runners/registration-token": { - "post": { - "summary": "Create a registration token for an organization", - "description": "Returns a token that you can pass to the `config` script. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.\n\n#### Example using registration token\n\nConfigure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint.\n\n```\n./config.sh --url https://github.com/octo-org --token TOKEN\n```", + }, + "patch": { + "summary": "Update a GitHub-hosted runner for an organization", + "description": "Updates a GitHub-hosted runner for an organization.\nOAuth app tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint.", + "operationId": "actions/update-hosted-runner-for-org", "tags": [ "actions" ], - "operationId": "actions/create-registration-token-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-a-registration-token-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#update-a-github-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/hosted-runner-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the runner. Must be between 1 and 64 characters and may only contain upper and lowercase letters a-z, numbers 0-9, '.', '-', and '_'.", + "type": "string" + }, + "runner_group_id": { + "description": "The existing runner group to add this runner to.", + "type": "integer" + }, + "maximum_runners": { + "description": "The maximum amount of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit your cost.", + "type": "integer" + }, + "enable_static_ip": { + "description": "Whether this runner should be updated with a static public IP. Note limit on account. To list limits on account, use `GET actions/hosted-runners/limits`", + "type": "boolean" + }, + "size": { + "description": "The machine size of the runner. To list available sizes, use `GET actions/hosted-runners/machine-sizes`", + "type": "string" + }, + "image_id": { + "description": "The unique identifier of the runner image. To list all available images, use `GET /actions/hosted-runners/images/github-owned` or `GET /actions/hosted-runners/images/partner`.", + "type": "string" + }, + "image_version": { + "description": "The version of the runner image to deploy. This is relevant only for runners using custom images.", + "type": "string", + "nullable": true + } + } + }, + "examples": { + "default": { + "value": { + "name": "My larger runner", + "runner_group_id": 1, + "maximum_runners": 50, + "enable_static_ip": false + } + } + } + } + } + }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authentication-token" + "$ref": "#/components/schemas/actions-hosted-runner" }, "examples": { "default": { - "$ref": "#/components/examples/authentication-token" + "$ref": "#/components/examples/actions-hosted-runner" } } } @@ -8764,44 +9766,42 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "githubCloudOnly": false, "category": "actions", - "subcategory": "self-hosted-runners" + "subcategory": "hosted-runners" } - } - }, - "/orgs/{org}/actions/runners/remove-token": { - "post": { - "summary": "Create a remove token for an organization", - "description": "Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.\n\n#### Example using remove token\n\nTo remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this\nendpoint.\n\n```\n./config.sh remove --token TOKEN\n```", + }, + "delete": { + "summary": "Delete a GitHub-hosted runner for an organization", + "description": "Deletes a GitHub-hosted runner for an organization.", + "operationId": "actions/delete-hosted-runner-for-org", "tags": [ "actions" ], - "operationId": "actions/create-remove-token-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-a-remove-token-for-an-organization" + "url": "https://docs.github.com/rest/actions/hosted-runners#delete-a-github-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/hosted-runner-id" } ], "responses": { - "201": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authentication-token" + "$ref": "#/components/schemas/actions-hosted-runner" }, "examples": { "default": { - "$ref": "#/components/examples/authentication-token-2" + "$ref": "#/components/examples/actions-hosted-runner" } } } @@ -8810,46 +9810,40 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], + "enabledForGitHubApps": false, "category": "actions", - "subcategory": "self-hosted-runners" + "subcategory": "hosted-runners" } } }, - "/orgs/{org}/actions/runners/{runner_id}": { + "/orgs/{org}/actions/oidc/customization/sub": { "get": { - "summary": "Get a self-hosted runner for an organization", - "description": "Gets a specific self-hosted runner configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "summary": "Get the customization template for an OIDC subject claim for an organization", + "description": "Gets the customization template for an OpenID Connect (OIDC) subject claim.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ - "actions" + "oidc" ], - "operationId": "actions/get-self-hosted-runner-for-org", + "operationId": "oidc/get-oidc-custom-sub-template-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-an-organization" + "url": "https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-id" } ], "responses": { "200": { - "description": "Response", + "description": "A JSON serialized template for OIDC subject claim customization", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner" + "$ref": "#/components/schemas/oidc-custom-sub" }, "examples": { "default": { - "$ref": "#/components/examples/runner" + "$ref": "#/components/examples/oidc-custom-sub" } } } @@ -8857,71 +9851,88 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "actions", - "subcategory": "self-hosted-runners" + "subcategory": "oidc" } }, - "delete": { - "summary": "Delete a self-hosted runner from an organization", - "description": "Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "put": { + "summary": "Set the customization template for an OIDC subject claim for an organization", + "description": "Creates or updates the customization template for an OpenID Connect (OIDC) subject claim.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "actions" + "oidc" ], - "operationId": "actions/delete-self-hosted-runner-from-org", + "operationId": "oidc/update-oidc-custom-sub-template-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-an-organization" + "url": "https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/runner-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/oidc-custom-sub" + }, + "examples": { + "default": { + "$ref": "#/components/examples/oidc-custom-sub" + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "201": { + "description": "Empty response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "previews": [], "category": "actions", - "subcategory": "self-hosted-runners" + "subcategory": "oidc" } } }, - "/orgs/{org}/actions/secrets": { + "/orgs/{org}/actions/permissions": { "get": { - "summary": "List organization secrets", - "description": "Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "summary": "Get GitHub Actions permissions for an organization", + "description": "Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/get-github-actions-permissions-organization", "tags": [ "actions" ], - "operationId": "actions/list-org-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-organization-secrets" + "url": "https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -8930,59 +9941,34 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "secrets" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-actions-secret" - } - } - } + "$ref": "#/components/schemas/actions-organization-permissions" }, "examples": { "default": { - "$ref": "#/components/examples/organization-actions-secret-paginated" + "$ref": "#/components/examples/actions-organization-permissions" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "githubCloudOnly": false, "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } - } - }, - "/orgs/{org}/actions/secrets/public-key": { - "get": { - "summary": "Get an organization public key", - "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + }, + "put": { + "summary": "Set GitHub Actions permissions for an organization", + "description": "Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-github-actions-permissions-organization", "tags": [ "actions" ], - "operationId": "actions/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-an-organization-public-key" + "url": "https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-an-organization" }, "parameters": [ { @@ -8990,16 +9976,37 @@ } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-public-key" + "204": { + "description": "Response" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled_repositories": { + "$ref": "#/components/schemas/enabled-repositories" + }, + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" + }, + "sha_pinning_required": { + "$ref": "#/components/schemas/sha-pinning-required" + } }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-public-key" + "required": [ + "enabled_repositories" + ] + }, + "examples": { + "default": { + "value": { + "enabled_repositories": "all", + "allowed_actions": "selected", + "sha_pinning_required": true } } } @@ -9007,34 +10014,28 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "githubCloudOnly": false, "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } } }, - "/orgs/{org}/actions/secrets/{secret_name}": { + "/orgs/{org}/actions/permissions/artifact-and-log-retention": { "get": { - "summary": "Get an organization secret", - "description": "Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "summary": "Get artifact and log retention settings for an organization", + "description": "Gets artifact and log retention settings for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/get-artifact-and-log-retention-settings-organization", "tags": [ "actions" ], - "operationId": "actions/get-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-an-organization-secret" + "url": "https://docs.github.com/rest/actions/permissions#get-artifact-and-log-retention-settings-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -9043,178 +10044,311 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/organization-actions-secret" + "$ref": "#/components/schemas/actions-artifact-and-log-retention-response" }, "examples": { - "default": { - "$ref": "#/components/examples/organization-actions-secret" + "response": { + "summary": "Example response", + "value": { + "days": 90, + "maximum_allowed_days": 365 + } } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } }, "put": { - "summary": "Create or update an organization secret", - "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to\nuse this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "summary": "Set artifact and log retention settings for an organization", + "description": "Sets artifact and log retention settings for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/set-artifact-and-log-retention-settings-organization", "tags": [ "actions" ], - "operationId": "actions/create-or-update-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret" + "url": "https://docs.github.com/rest/actions/permissions#set-artifact-and-log-retention-settings-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "encrypted_value": { - "type": "string", - "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/actions#get-an-organization-public-key) endpoint.", - "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" - }, - "key_id": { - "type": "string", - "description": "ID of the key you used to encrypt the secret." - }, - "visibility": { - "type": "string", - "description": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", - "enum": [ - "all", - "private", - "selected" - ] - }, - "selected_repository_ids": { - "type": "array", - "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints.", - "items": { - "type": "string" - } - } - }, - "required": [ - "visibility" - ] + "$ref": "#/components/schemas/actions-artifact-and-log-retention" }, - "example": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678", - "visibility": "selected", - "selected_repository_ids": [ - "1296269", - "1296280" - ] + "examples": { + "application/json": { + "value": { + "days": 100 + } + } } } } }, "responses": { - "201": { - "description": "Response when creating a secret", + "204": { + "description": "No content" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "permissions" + } + } + }, + "/orgs/{org}/actions/permissions/fork-pr-contributor-approval": { + "get": { + "summary": "Get fork PR contributor approval permissions for an organization", + "description": "Gets the fork PR contributor approval policy for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/get-fork-pr-contributor-approval-permissions-organization", + "tags": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#get-fork-pr-contributor-approval-permissions-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-fork-pr-contributor-approval" + } } } } }, - "204": { - "description": "Response when updating a secret" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } }, - "delete": { - "summary": "Delete an organization secret", - "description": "Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "put": { + "summary": "Set fork PR contributor approval permissions for an organization", + "description": "Sets the fork PR contributor approval policy for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-fork-pr-contributor-approval-permissions-organization", "tags": [ "actions" ], - "operationId": "actions/delete-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-an-organization-secret" + "url": "https://docs.github.com/rest/actions/permissions#set-fork-pr-contributor-approval-permissions-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + }, + "examples": { + "default": { + "summary": "Set approval policy to first time contributors", + "value": { + "approval_policy": "first_time_contributors" + } + } + } + } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } } }, - "/orgs/{org}/actions/secrets/{secret_name}/repositories": { + "/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos": { "get": { - "summary": "List selected repositories for an organization secret", - "description": "Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "summary": "Get private repo fork PR workflow settings for an organization", + "description": "Gets the settings for whether workflows from fork pull requests can run on private repositories in an organization.", + "operationId": "actions/get-private-repo-fork-pr-workflows-settings-organization", "tags": [ "actions" ], - "operationId": "actions/list-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret" + "url": "https://docs.github.com/rest/actions/permissions#get-private-repo-fork-pr-workflow-settings-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "permissions" + } + }, + "put": { + "summary": "Set private repo fork PR workflow settings for an organization", + "description": "Sets the settings for whether workflows from fork pull requests can run on private repositories in an organization.", + "operationId": "actions/set-private-repo-fork-pr-workflows-settings-organization", + "tags": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#set-private-repo-fork-pr-workflow-settings-for-an-organization" + }, + "parameters": [ { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos-request" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + } + } + } + } + }, + "responses": { + "204": { + "description": "Empty response for successful settings update" + }, + "403": { + "description": "Forbidden - Fork PR workflow settings for private repositories are managed by the enterprise owner", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "permissions" + } + } + }, + "/orgs/{org}/actions/permissions/repositories": { + "get": { + "summary": "List selected repositories enabled for GitHub Actions in an organization", + "description": "Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-selected-repositories-enabled-github-actions-organization", + "tags": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization" + }, + "parameters": [ { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/org" }, { "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -9230,19 +10364,19 @@ ], "properties": { "total_count": { - "type": "integer" + "type": "number" }, "repositories": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/repository" } } } }, "examples": { "default": { - "$ref": "#/components/examples/public-repository-paginated" + "$ref": "#/components/examples/repository-paginated" } } } @@ -9250,201 +10384,153 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "githubCloudOnly": false, "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } }, "put": { - "summary": "Set selected repositories for an organization secret", - "description": "Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "summary": "Set selected repositories enabled for GitHub Actions in an organization", + "description": "Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-selected-repositories-enabled-github-actions-organization", "tags": [ "actions" ], - "operationId": "actions/set-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret" + "url": "https://docs.github.com/rest/actions/permissions#set-selected-repositories-enabled-for-github-actions-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/secret-name" } ], + "responses": { + "204": { + "description": "Response" + } + }, "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "selected_repository_ids": { + "description": "List of repository IDs to enable for GitHub Actions.", "type": "array", - "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints.", "items": { - "type": "integer" + "type": "integer", + "description": "Unique identifier of the repository." } } - } - }, - "example": { - "selected_repository_ids": [ - 64780797 + }, + "required": [ + "selected_repository_ids" ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + 32, + 42 + ] + } + } } } } }, - "responses": { - "204": { - "description": "Response" - } - }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "githubCloudOnly": false, "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } } }, - "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + "/orgs/{org}/actions/permissions/repositories/{repository_id}": { "put": { - "summary": "Add selected repository to an organization secret", - "description": "Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "summary": "Enable a selected repository for GitHub Actions in an organization", + "description": "Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/enable-selected-repository-github-actions-organization", "tags": [ "actions" ], - "operationId": "actions/add-selected-repo-to-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#add-selected-repository-to-an-organization-secret" + "url": "https://docs.github.com/rest/actions/permissions#enable-a-selected-repository-for-github-actions-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" - }, - { - "name": "repository_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/repository-id" } ], "responses": { "204": { - "description": "No Content when repository was added to the selected list" - }, - "409": { - "description": "Conflict when visibility type is not set to selected" + "description": "Response" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "githubCloudOnly": false, "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } }, "delete": { - "summary": "Remove selected repository from an organization secret", - "description": "Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "summary": "Disable a selected repository for GitHub Actions in an organization", + "description": "Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/disable-selected-repository-github-actions-organization", "tags": [ "actions" ], - "operationId": "actions/remove-selected-repo-from-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret" + "url": "https://docs.github.com/rest/actions/permissions#disable-a-selected-repository-for-github-actions-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" - }, - { - "name": "repository_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/repository-id" } ], "responses": { "204": { - "description": "Response when repository was removed from the selected list" - }, - "409": { - "description": "Conflict when visibility type not set to selected" + "description": "Response" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "githubCloudOnly": false, "category": "actions", - "subcategory": "secrets" + "subcategory": "permissions" } } }, - "/orgs/{org}/audit-log": { + "/orgs/{org}/actions/permissions/selected-actions": { "get": { - "summary": "Get the audit log for an organization", - "description": "Gets the audit log for an organization. For more information, see \"[Reviewing the audit log for your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization).\"\n\nTo use this endpoint, you must be an organization owner, and you must use an access token with the `admin:org` scope. GitHub Apps must have the `organization_administration` read permission to use this endpoint.", - "operationId": "orgs/get-audit-log", + "summary": "Get allowed actions and reusable workflows for an organization", + "description": "Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/get-allowed-actions-organization", "tags": [ - "orgs" + "actions" ], "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#get-audit-log" + "url": "https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/audit-log-phrase" - }, - { - "$ref": "#/components/parameters/audit-log-include" - }, - { - "$ref": "#/components/parameters/audit-log-after" - }, - { - "$ref": "#/components/parameters/audit-log-before" - }, - { - "$ref": "#/components/parameters/audit-log-order" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -9453,14 +10539,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/audit-log-event" - } + "$ref": "#/components/schemas/selected-actions" }, "examples": { "default": { - "$ref": "#/components/examples/audit-log" + "$ref": "#/components/examples/selected-actions" } } } @@ -9468,27 +10551,22 @@ } }, "x-github": { - "githubCloudOnly": true, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": null + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } - } - }, - "/orgs/{org}/blocks": { - "get": { - "summary": "List users blocked by an organization", - "description": "List the users blocked by an organization.", + }, + "put": { + "summary": "Set allowed actions and reusable workflows for an organization", + "description": "Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-allowed-actions-organization", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-blocked-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-users-blocked-by-an-organization" + "url": "https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-an-organization" }, "parameters": [ { @@ -9496,318 +10574,388 @@ } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/simple-user-items" - } + "204": { + "description": "Response" + } + }, + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/selected-actions" + }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/selected-actions" } } } - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "blocking" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } } }, - "/orgs/{org}/blocks/{username}": { + "/orgs/{org}/actions/permissions/self-hosted-runners": { "get": { - "summary": "Check if a user is blocked by an organization", - "description": "", + "summary": "Get self-hosted runners settings for an organization", + "description": "Gets the settings for self-hosted runners for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/get-self-hosted-runners-permissions-organization", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/check-blocked-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#check-if-a-user-is-blocked-by-an-organization" + "url": "https://docs.github.com/rest/actions/permissions#get-self-hosted-runners-settings-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/username" } ], "responses": { - "204": { - "description": "If the user is blocked:" - }, - "404": { - "description": "If the user is not blocked:", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "$ref": "#/components/schemas/self-hosted-runners-settings" + }, + "examples": { + "response": { + "summary": "Example response", + "value": { + "enabled_repositories": "selected", + "selected_repositories_url": "http://api.github.localhost/organizations/1/actions/permissions/self-hosted-runners/repositories" + } + } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "blocking" + "category": "actions", + "subcategory": "permissions" } }, "put": { - "summary": "Block a user from an organization", - "description": "", + "summary": "Set self-hosted runners settings for an organization", + "description": "Sets the settings for self-hosted runners for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/set-self-hosted-runners-permissions-organization", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/block-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#block-a-user-from-an-organization" + "url": "https://docs.github.com/rest/actions/permissions#set-self-hosted-runners-settings-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/username" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "enabled_repositories" + ], + "properties": { + "enabled_repositories": { + "type": "string", + "description": "The policy that controls whether self-hosted runners can be used in the organization", + "enum": [ + "all", + "selected", + "none" + ] + } + } + }, + "examples": { + "application/json": { + "value": { + "enabled_repositories": "all" + } + } + } + } + } + }, "responses": { "204": { - "description": "Response" + "description": "No content" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" }, "422": { "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "blocking" + "category": "actions", + "subcategory": "permissions" } - }, - "delete": { - "summary": "Unblock a user from an organization", - "description": "", + } + }, + "/orgs/{org}/actions/permissions/self-hosted-runners/repositories": { + "get": { + "summary": "List repositories allowed to use self-hosted runners in an organization", + "description": "Lists repositories that are allowed to use self-hosted runners in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/list-selected-repositories-self-hosted-runners-organization", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/unblock-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#unblock-a-user-from-an-organization" + "url": "https://docs.github.com/rest/actions/permissions#list-repositories-allowed-to-use-self-hosted-runners-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-paginated" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "blocking" + "category": "actions", + "subcategory": "permissions" } - } - }, - "/orgs/{org}/credential-authorizations": { - "get": { - "summary": "List SAML SSO authorizations for an organization", - "description": "Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products).\n\nAn authenticated organization owner with the `read:org` scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see [About authentication with SAML single sign-on](https://help.github.com/en/articles/about-authentication-with-saml-single-sign-on).", + }, + "put": { + "summary": "Set repositories allowed to use self-hosted runners in an organization", + "description": "Sets repositories that are allowed to use self-hosted runners in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/set-selected-repositories-self-hosted-runners-organization", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-saml-sso-authorizations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-saml-sso-authorizations-for-an-organization" + "url": "https://docs.github.com/rest/actions/permissions#set-repositories-allowed-to-use-self-hosted-runners-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/credential-authorization" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selected_repository_ids" + ], + "properties": { + "selected_repository_ids": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "IDs of repositories that can use repository-level self-hosted runners" } - }, - "examples": { - "default": { - "$ref": "#/components/examples/credential-authorization-items" + } + }, + "examples": { + "application/json": { + "value": { + "selected_repository_ids": [ + 1, + 2, + 3 + ] } } } } } }, + "responses": { + "204": { + "description": "No content" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, "x-github": { - "githubCloudOnly": true, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": null + "category": "actions", + "subcategory": "permissions" } } }, - "/orgs/{org}/credential-authorizations/{credential_id}": { - "delete": { - "summary": "Remove a SAML SSO authorization for an organization", - "description": "Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products).\n\nAn authenticated organization owner with the `admin:org` scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access.", + "/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id}": { + "put": { + "summary": "Add a repository to the list of repositories allowed to use self-hosted runners in an organization", + "description": "Adds a repository to the list of repositories that are allowed to use self-hosted runners in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/enable-selected-repository-self-hosted-runners-organization", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/remove-saml-sso-authorization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#remove-a-saml-sso-authorization-for-an-organization" + "url": "https://docs.github.com/rest/actions/permissions#add-a-repository-to-the-list-of-repositories-allowed-to-use-self-hosted-runners-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "credential_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/repository-id" } ], "responses": { "204": { - "description": "Response" + "description": "No content" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": true, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": null + "category": "actions", + "subcategory": "permissions" } - } - }, - "/orgs/{org}/events": { - "get": { - "summary": "List public organization events", - "description": "", + }, + "delete": { + "summary": "Remove a repository from the list of repositories allowed to use self-hosted runners in an organization", + "description": "Removes a repository from the list of repositories that are allowed to use self-hosted runners in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the \"Actions policies\" fine-grained permission to use this endpoint.", + "operationId": "actions/disable-selected-repository-self-hosted-runners-organization", "tags": [ - "activity" + "actions" ], - "operationId": "activity/list-public-org-events", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-public-organization-events" + "url": "https://docs.github.com/rest/actions/permissions#remove-a-repository-from-the-list-of-repositories-allowed-to-use-self-hosted-runners-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repository-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" - } - } - } - } + "204": { + "description": "No content" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "events" + "category": "actions", + "subcategory": "permissions" } } }, - "/orgs/{org}/failed_invitations": { + "/orgs/{org}/actions/permissions/workflow": { "get": { - "summary": "List failed organization invitations", - "description": "The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure.", + "summary": "Get default workflow permissions for an organization", + "description": "Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization,\nas well as whether GitHub Actions can submit approving pull request reviews. For more information, see\n\"[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization).\"\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-failed-invitations", + "operationId": "actions/get-github-actions-default-workflow-permissions-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-failed-organization-invitations" + "url": "https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -9816,50 +10964,79 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-invitation" - } + "$ref": "#/components/schemas/actions-get-default-workflow-permissions" }, "examples": { "default": { - "$ref": "#/components/examples/organization-invitation-items" + "$ref": "#/components/examples/actions-default-workflow-permissions" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "permissions" + } + }, + "put": { + "summary": "Set default workflow permissions for an organization", + "description": "Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions\ncan submit approving pull request reviews. For more information, see\n\"[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/set-github-actions-default-workflow-permissions-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "204": { + "description": "Success response" + } + }, + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-set-default-workflow-permissions" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-default-workflow-permissions" + } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "permissions" } } }, - "/orgs/{org}/hooks": { + "/orgs/{org}/actions/runner-groups": { "get": { - "summary": "List organization webhooks", - "description": "", + "summary": "List self-hosted runner groups for an organization", + "description": "Lists all self-hosted runner groups configured in an organization and inherited from an enterprise.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-self-hosted-runner-groups-for-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-webhooks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-organization-webhooks" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#list-self-hosted-runner-groups-for-an-organization" }, "parameters": [ { @@ -9870,6 +11047,9 @@ }, { "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/visible-to-repository" } ], "responses": { @@ -9878,48 +11058,49 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/org-hook" + "type": "object", + "required": [ + "total_count", + "runner_groups" + ], + "properties": { + "total_count": { + "type": "number" + }, + "runner_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-groups-org" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/org-hook-items" + "$ref": "#/components/examples/runner-groups-org" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } }, "post": { - "summary": "Create an organization webhook", - "description": "Here's how you can create a hook that posts payloads in JSON format:", + "summary": "Create a self-hosted runner group for an organization", + "description": "Creates a new self-hosted runner group for an organization.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/create-self-hosted-runner-group-for-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/create-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#create-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#create-a-self-hosted-runner-group-for-an-organization" }, "parameters": [ { @@ -9927,75 +11108,84 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { + "description": "Name of the runner group.", + "type": "string" + }, + "visibility": { + "description": "Visibility of a runner group. You can select all repositories, select individual repositories, or limit access to private repositories.", "type": "string", - "description": "Must be passed as \"web\"." + "enum": [ + "selected", + "all", + "private" + ], + "default": "all" }, - "config": { - "type": "object", - "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#create-hook-config-params).", - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" - }, - "username": { - "type": "string", - "example": "\"kdaigle\"" - }, - "password": { - "type": "string", - "example": "\"password\"" - } - }, - "required": [ - "url" - ] + "selected_repository_ids": { + "description": "List of repository IDs that can access the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } }, - "events": { + "runners": { + "description": "List of runner IDs to add to the runner group.", "type": "array", - "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", - "default": [ - "push" - ], "items": { - "type": "string" + "type": "integer", + "description": "Unique identifier of the runner." } }, - "active": { + "allows_public_repositories": { + "description": "Whether the runner group can be used by `public` repositories.", "type": "boolean", - "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", - "default": true + "default": false + }, + "restricted_to_workflows": { + "description": "If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array.", + "type": "boolean", + "default": false + }, + "selected_workflows": { + "description": "List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`.", + "type": "array", + "items": { + "type": "string", + "description": "Name of workflow the runner group should be allowed to run. Note that a ref, tag, or long SHA is required.", + "example": "octo-org/octo-repo/.github/workflows/deploy.yaml@main" + } + }, + "network_configuration_id": { + "description": "The identifier of a hosted compute network configuration.", + "type": "string" } }, "required": [ - "name", - "config" + "name" ] }, - "example": { - "name": "web", - "active": true, - "events": [ - "push", - "pull_request" - ], - "config": { - "url": "http://example.com/webhook", - "content_type": "json" + "examples": { + "default": { + "value": { + "name": "Expensive hardware runners", + "visibility": "selected", + "selected_repository_ids": [ + 32, + 91 + ], + "runners": [ + 9, + 2 + ] + } } } } @@ -10007,60 +11197,43 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-hook" + "$ref": "#/components/schemas/runner-groups-org" }, "examples": { "default": { - "$ref": "#/components/examples/org-hook" + "$ref": "#/components/examples/runner-group" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/orgs/octocat/hooks/1", - "schema": { - "type": "string" - } - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } } }, - "/orgs/{org}/hooks/{hook_id}": { + "/orgs/{org}/actions/runner-groups/{runner_group_id}": { "get": { - "summary": "Get an organization webhook", - "description": "Returns a webhook configured in an organization. To get only the webhook `config` properties, see \"[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization).\"", + "summary": "Get a self-hosted runner group for an organization", + "description": "Gets a specific self-hosted runner group for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/get-self-hosted-runner-group-for-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/get-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#get-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#get-a-self-hosted-runner-group-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-group-id" } ], "responses": { @@ -10069,102 +11242,99 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-hook" + "$ref": "#/components/schemas/runner-groups-org" }, "examples": { "default": { - "$ref": "#/components/examples/org-hook" + "$ref": "#/components/examples/runner-group-item" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } }, "patch": { - "summary": "Update an organization webhook", - "description": "Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use \"[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization).\"", + "summary": "Update a self-hosted runner group for an organization", + "description": "Updates the `name` and `visibility` of a self-hosted runner group in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/update-self-hosted-runner-group-for-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/update-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#update-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#update-a-self-hosted-runner-group-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-group-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "config": { - "type": "object", - "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#update-hook-config-params).", - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" - } - }, - "required": [ - "url" + "name": { + "description": "Name of the runner group.", + "type": "string" + }, + "visibility": { + "description": "Visibility of a runner group. You can select all repositories, select individual repositories, or all private repositories.", + "type": "string", + "enum": [ + "selected", + "all", + "private" ] }, - "events": { + "allows_public_repositories": { + "description": "Whether the runner group can be used by `public` repositories.", + "type": "boolean", + "default": false + }, + "restricted_to_workflows": { + "description": "If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array.", + "type": "boolean", + "default": false + }, + "selected_workflows": { + "description": "List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`.", "type": "array", - "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", - "default": [ - "push" - ], "items": { - "type": "string" + "type": "string", + "description": "Name of workflow the runner group should be allowed to run. Note that a ref, tag, or long SHA is required.", + "example": "octo-org/octo-repo/.github/workflows/deploy.yaml@main" } }, - "active": { - "type": "boolean", - "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", - "default": true - }, - "name": { + "network_configuration_id": { + "description": "The identifier of a hosted compute network configuration.", "type": "string", - "example": "\"web\"" + "nullable": true } - } - }, - "example": { - "active": true, - "events": [ - "pull_request" + }, + "required": [ + "name" ] + }, + "examples": { + "default": { + "value": { + "name": "Expensive hardware runners", + "visibility": "selected" + } + } } } } @@ -10175,219 +11345,151 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-hook" + "$ref": "#/components/schemas/runner-groups-org" }, "examples": { "default": { - "$ref": "#/components/examples/org-hook-2" + "$ref": "#/components/examples/runner-group" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } }, "delete": { - "summary": "Delete an organization webhook", - "description": "", + "summary": "Delete a self-hosted runner group from an organization", + "description": "Deletes a self-hosted runner group for an organization.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/delete-self-hosted-runner-group-from-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/delete-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#delete-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#delete-a-self-hosted-runner-group-from-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-group-id" } ], "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } } }, - "/orgs/{org}/hooks/{hook_id}/config": { + "/orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners": { "get": { - "summary": "Get a webhook configuration for an organization", - "description": "Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use \"[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook).\"\n\nAccess tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission.", + "summary": "List GitHub-hosted runners in a group for an organization", + "description": "Lists the GitHub-hosted runners in an organization group.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-github-hosted-runners-in-group-for-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/get-webhook-config-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#get-a-webhook-configuration-for-an-organization" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#list-github-hosted-runners-in-a-group-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-config" - }, - "examples": { - "default": { - "$ref": "#/components/examples/webhook-config" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" - } - }, - "patch": { - "summary": "Update a webhook configuration for an organization", - "description": "Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use \"[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook).\"\n\nAccess tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission.", - "tags": [ - "orgs" - ], - "operationId": "orgs/update-webhook-config-for-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#update-a-webhook-configuration-for-an-organization" - }, - "parameters": [ + "$ref": "#/components/parameters/runner-group-id" + }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" - } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" - }, - "additionalProperties": false - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-config" + "type": "object", + "required": [ + "total_count", + "runners" + ], + "properties": { + "total_count": { + "type": "number" + }, + "runners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-hosted-runner" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/webhook-config" + "$ref": "#/components/examples/actions-hosted-runner-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } } }, - "/orgs/{org}/hooks/{hook_id}/deliveries": { + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": { "get": { - "summary": "List deliveries for an organization webhook", - "description": "Returns a list of webhook deliveries for a webhook configured in an organization.", + "summary": "List repository access to a self-hosted runner group in an organization", + "description": "Lists the repositories with access to a self-hosted runner group configured in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-repo-access-to-self-hosted-runner-group-in-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-webhook-deliveries", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-deliveries-for-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#list-repository-access-to-a-self-hosted-runner-group-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-group-id" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/cursor" + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -10396,239 +11498,193 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hook-delivery-item" + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "number" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/hook-delivery-items" + "$ref": "#/components/examples/minimal-repository-paginated" } } } } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } - } - }, - "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": { - "get": { - "summary": "Get a webhook delivery for an organization webhook", - "description": "Returns a delivery for a webhook configured in an organization.", + }, + "put": { + "summary": "Set repository access for a self-hosted runner group in an organization", + "description": "Replaces the list of repositories that have access to a self-hosted runner group configured in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-repo-access-to-self-hosted-runner-group-in-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/get-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#get-a-webhook-delivery-for-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#set-repository-access-for-a-self-hosted-runner-group-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/delivery-id" + "$ref": "#/components/parameters/runner-group-id" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/hook-delivery" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "description": "List of repository IDs that can access the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } + } }, - "examples": { - "default": { - "$ref": "#/components/examples/hook-delivery" + "required": [ + "selected_repository_ids" + ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + 32, + 91 + ] } } } } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + } + }, + "responses": { + "204": { + "description": "Response" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } } }, - "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { - "post": { - "summary": "Redeliver a delivery for an organization webhook", - "description": "Redeliver a delivery for a webhook configured in an organization.", + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": { + "put": { + "summary": "Add repository access to a self-hosted runner group in an organization", + "description": "Adds a repository to the list of repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization).\"\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/add-repo-access-to-self-hosted-runner-group-in-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/redeliver-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#redeliver-a-delivery-for-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#add-repository-access-to-a-self-hosted-runner-group-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-group-id" }, { - "$ref": "#/components/parameters/delivery-id" + "$ref": "#/components/parameters/repository-id" } ], "responses": { - "202": { - "$ref": "#/components/responses/accepted" - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } - } - }, - "/orgs/{org}/hooks/{hook_id}/pings": { - "post": { - "summary": "Ping an organization webhook", - "description": "This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook.", + }, + "delete": { + "summary": "Remove repository access to a self-hosted runner group in an organization", + "description": "Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/remove-repo-access-to-self-hosted-runner-group-in-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/ping-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#ping-an-organization-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#remove-repository-access-to-a-self-hosted-runner-group-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-group-id" + }, + { + "$ref": "#/components/parameters/repository-id" } ], "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "webhooks" - } - } - }, - "/orgs/{org}/installation": { - "get": { - "summary": "Get an organization installation for the authenticated app", - "description": "Enables an authenticated GitHub App to find the organization's installation information.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", - "tags": [ - "apps" - ], - "operationId": "apps/get-org-installation", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-an-organization-installation-for-the-authenticated-app" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/installation" - }, - "examples": { - "default": { - "$ref": "#/components/examples/installation" - } - } - } - } - } - }, - "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "apps", - "subcategory": null + "category": "actions", + "subcategory": "self-hosted-runner-groups" } } }, - "/orgs/{org}/installations": { + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners": { "get": { - "summary": "List app installations for an organization", - "description": "Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint.", + "summary": "List self-hosted runners in a group for an organization", + "description": "Lists self-hosted runners that are in a specific organization group.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-self-hosted-runners-in-group-for-org", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-app-installations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-app-installations-for-an-organization" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#list-self-hosted-runners-in-a-group-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, + { + "$ref": "#/components/parameters/runner-group-id" + }, { "$ref": "#/components/parameters/per-page" }, @@ -10645,23 +11701,23 @@ "type": "object", "required": [ "total_count", - "installations" + "runners" ], "properties": { "total_count": { - "type": "integer" + "type": "number" }, - "installations": { + "runners": { "type": "array", "items": { - "$ref": "#/components/schemas/installation" + "$ref": "#/components/schemas/runner" } } } }, "examples": { "default": { - "$ref": "#/components/examples/installation-paginated" + "$ref": "#/components/examples/runner-paginated" } } } @@ -10674,139 +11730,132 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": null + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } - } - }, - "/orgs/{org}/interaction-limits": { - "get": { - "summary": "Get interaction restrictions for an organization", - "description": "Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response.", + }, + "put": { + "summary": "Set self-hosted runners in a group for an organization", + "description": "Replaces the list of self-hosted runners that are part of an organization runner group.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-self-hosted-runners-in-group-for-org", "tags": [ - "interactions" + "actions" ], - "operationId": "interactions/get-restrictions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-an-organization" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#set-self-hosted-runners-in-a-group-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/runner-group-id" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/interaction-limit-response" - }, - { - "type": "object", - "properties": { - }, - "additionalProperties": false + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "runners": { + "description": "List of runner IDs to add to the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the runner." } - ] + } }, - "examples": { - "default": { - "$ref": "#/components/examples/interaction-limit-response" + "required": [ + "runners" + ] + }, + "examples": { + "default": { + "value": { + "runners": [ + 9, + 2 + ] } } } } } }, + "responses": { + "204": { + "description": "Response" + } + }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "interactions", - "subcategory": "orgs" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } - }, + } + }, + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { "put": { - "summary": "Set interaction restrictions for an organization", - "description": "Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization.", + "summary": "Add a self-hosted runner to a group for an organization", + "description": "Adds a self-hosted runner to a runner group configured in an organization.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/add-self-hosted-runner-to-group-for-org", "tags": [ - "interactions" + "actions" ], - "operationId": "interactions/set-restrictions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-an-organization" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#add-a-self-hosted-runner-to-a-group-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/runner-group-id" + }, + { + "$ref": "#/components/parameters/runner-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/interaction-limit" - } - } - } - }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/interaction-limit-response" - }, - "examples": { - "default": { - "$ref": "#/components/examples/interaction-limit-response" - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "interactions", - "subcategory": "orgs" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } }, "delete": { - "summary": "Remove interaction restrictions for an organization", - "description": "Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions.", + "summary": "Remove a self-hosted runner from a group for an organization", + "description": "Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "actions/remove-self-hosted-runner-from-group-for-org", "tags": [ - "interactions" + "actions" ], - "operationId": "interactions/remove-restrictions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-an-organization" + "url": "https://docs.github.com/rest/actions/self-hosted-runner-groups#remove-a-self-hosted-runner-from-a-group-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/runner-group-id" + }, + { + "$ref": "#/components/parameters/runner-id" } ], "responses": { @@ -10815,29 +11864,34 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "interactions", - "subcategory": "orgs" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "self-hosted-runner-groups" } } }, - "/orgs/{org}/invitations": { + "/orgs/{org}/actions/runners": { "get": { - "summary": "List pending organization invitations", - "description": "The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.", + "summary": "List self-hosted runners for an organization", + "description": "Lists all self-hosted runners configured in an organization.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-pending-invitations", + "operationId": "actions/list-self-hosted-runners-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-pending-organization-invitations" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-an-organization" }, "parameters": [ + { + "name": "name", + "description": "The name of a self-hosted runner.", + "in": "query", + "schema": { + "type": "string" + } + }, { "$ref": "#/components/parameters/org" }, @@ -10854,14 +11908,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-invitation" + "type": "object", + "required": [ + "total_count", + "runners" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "runners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/organization-invitation-items" + "$ref": "#/components/examples/runner-paginated" } } } @@ -10871,397 +11937,256 @@ "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "post": { - "summary": "Create an organization invitation", - "description": "Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + } + }, + "/orgs/{org}/actions/runners/downloads": { + "get": { + "summary": "List runner applications for an organization", + "description": "Lists binaries for the runner application that you can download and run.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/create-invitation", + "operationId": "actions/list-runner-applications-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#create-an-organization-invitation" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "invitee_id": { - "type": "integer", - "description": "**Required unless you provide `email`**. GitHub user ID for the person you are inviting." - }, - "email": { - "type": "string", - "description": "**Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user." - }, - "role": { - "type": "string", - "description": "Specify role for new member. Can be one of: \n\\* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. \n\\* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. \n\\* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization.", - "enum": [ - "admin", - "direct_member", - "billing_manager" - ], - "default": "direct_member" - }, - "team_ids": { - "type": "array", - "description": "Specify IDs for the teams you want to invite new members to.", - "items": { - "type": "integer" - } - } - } - }, - "example": { - "email": "octocat@github.com", - "role": "direct_member", - "team_ids": [ - 12, - 26 - ] - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/organization-invitation" + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-application" + } }, "examples": { "default": { - "$ref": "#/components/examples/organization-invitation" + "$ref": "#/components/examples/runner-application-items" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/orgs/{org}/invitations/{invitation_id}": { - "delete": { - "summary": "Cancel an organization invitation", - "description": "Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications).", + "/orgs/{org}/actions/runners/generate-jitconfig": { + "post": { + "summary": "Create configuration for a just-in-time runner for an organization", + "description": "Generates a configuration that can be passed to the runner application at startup.\n\nThe authenticated user must have admin access to the organization.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/cancel-invitation", + "operationId": "actions/generate-runner-jitconfig-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#cancel-an-organization-invitation" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/invitation-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "name", + "runner_group_id", + "labels" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the new runner." + }, + "runner_group_id": { + "type": "integer", + "description": "The ID of the runner group to register the runner to." + }, + "labels": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "string" + }, + "description": "The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100." + }, + "work_folder": { + "type": "string", + "description": "The working directory to be used for job execution, relative to the runner install directory.", + "default": "_work" + } + } + }, + "examples": { + "default": { + "value": { + "name": "New runner", + "runner_group_id": 1, + "labels": [ + "self-hosted", + "X64", + "macOS", + "no-gpu" + ], + "work_folder": "_work" + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "201": { + "$ref": "#/components/responses/actions_runner_jitconfig" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/orgs/{org}/invitations/{invitation_id}/teams": { - "get": { - "summary": "List organization invitation teams", - "description": "List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner.", + "/orgs/{org}/actions/runners/registration-token": { + "post": { + "summary": "Create a registration token for an organization", + "description": "Returns a token that you can pass to the `config` script. The token expires after one hour.\n\nFor example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner:\n\n```\n./config.sh --url https://github.com/octo-org --token TOKEN\n```\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-invitation-teams", + "operationId": "actions/create-registration-token-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-organization-invitation-teams" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/invitation-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "$ref": "#/components/schemas/authentication-token" }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/authentication-token" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/orgs/{org}/issues": { - "get": { - "summary": "List organization issues assigned to the authenticated user", - "description": "List issues in an organization assigned to the authenticated user.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "/orgs/{org}/actions/runners/remove-token": { + "post": { + "summary": "Create a remove token for an organization", + "description": "Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour.\n\nFor example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization:\n\n```\n./config.sh remove --token TOKEN\n```\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/list-for-org", + "operationId": "actions/create-remove-token-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-organization-issues-assigned-to-the-authenticated-user" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "name": "filter", - "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all` or `repos`: All issues the authenticated user can see, regardless of participation or creation", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "assigned", - "created", - "mentioned", - "subscribed", - "repos", - "all" - ], - "default": "assigned" - } - }, - { - "name": "state", - "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "open", - "closed", - "all" - ], - "default": "open" - } - }, - { - "$ref": "#/components/parameters/labels" - }, - { - "name": "sort", - "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "comments" - ], - "default": "created" - } - }, - { - "$ref": "#/components/parameters/direction" - }, - { - "$ref": "#/components/parameters/since" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue" - } + "$ref": "#/components/schemas/authentication-token" }, "examples": { "default": { - "$ref": "#/components/examples/issue-with-repo-items" + "$ref": "#/components/examples/authentication-token-2" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "issues", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/orgs/{org}/members": { + "/orgs/{org}/actions/runners/{runner_id}": { "get": { - "summary": "List organization members", - "description": "List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.", + "summary": "Get a self-hosted runner for an organization", + "description": "Gets a specific self-hosted runner configured in an organization.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-members", + "operationId": "actions/get-self-hosted-runner-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-organization-members" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "filter", - "description": "Filter members returned in the list. Can be one of: \n\\* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. \n\\* `all` - All members the authenticated user can see.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "2fa_disabled", - "all" - ], - "default": "all" - } - }, - { - "name": "role", - "description": "Filter members returned by their role. Can be one of: \n\\* `all` - All members of the organization, regardless of role. \n\\* `admin` - Organization owners. \n\\* `member` - Non-owner organization members.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "all", - "admin", - "member" - ], - "default": "all" - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/runner-id" } ], "responses": { @@ -11270,223 +12195,212 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/runner" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/runner" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "302": { - "description": "Response if requester is not an organization member", - "headers": { - "Location": { - "example": "https://api.github.com/orgs/github/public_members", - "schema": { - "type": "string" - } - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } - } - }, - "/orgs/{org}/members/{username}": { - "get": { - "summary": "Check organization membership for a user", - "description": "Check if a user is, publicly or privately, a member of the organization.", + }, + "delete": { + "summary": "Delete a self-hosted runner from an organization", + "description": "Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/check-membership-for-user", + "operationId": "actions/delete-self-hosted-runner-from-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#check-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/runner-id" } ], "responses": { "204": { - "description": "Response if requester is an organization member and user is a member" - }, - "302": { - "description": "Response if requester is not an organization member", - "headers": { - "Location": { - "example": "https://api.github.com/orgs/github/public_members/pezra", - "schema": { - "type": "string" - } - } - } + "description": "Response" }, - "404": { - "description": "Not Found if requester is an organization member and user is not a member" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "delete": { - "summary": "Remove an organization member", - "description": "Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories.", + } + }, + "/orgs/{org}/actions/runners/{runner_id}/labels": { + "get": { + "summary": "List labels for a self-hosted runner for an organization", + "description": "Lists all labels for a self-hosted runner configured in an organization.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/remove-member", + "operationId": "actions/list-labels-for-self-hosted-runner-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#remove-an-organization-member" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/runner-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "$ref": "#/components/responses/actions_runner_labels" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } - } - }, - "/orgs/{org}/memberships/{username}": { - "get": { - "summary": "Get organization membership for a user", - "description": "In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status.", + }, + "post": { + "summary": "Add custom labels to a self-hosted runner for an organization", + "description": "Adds custom labels to a self-hosted runner configured in an organization.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/get-membership-for-user", + "operationId": "actions/add-custom-labels-to-self-hosted-runner-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/runner-id" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/org-membership" - }, - "examples": { - "response-if-user-has-an-active-admin-membership-with-organization": { - "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "labels" + ], + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "description": "The names of the custom labels to add to the runner.", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "default": { + "value": { + "labels": [ + "gpu", + "accelerated" + ] } } } } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/actions_runner_labels" }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } }, "put": { - "summary": "Set organization membership for a user", - "description": "Only authenticated organization owners can add a member to the organization or update the member's role.\n\n* If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation.\n \n* Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent.\n\n**Rate limits**\n\nTo prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period.", + "summary": "Set custom labels for a self-hosted runner for an organization", + "description": "Remove all previous custom labels and set the new custom labels for a specific\nself-hosted runner configured in an organization.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/set-membership-for-user", + "operationId": "actions/set-custom-labels-for-self-hosted-runner-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#set-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/runner-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "labels" + ], "properties": { - "role": { - "type": "string", - "description": "The role to give the user in the organization. Can be one of: \n\\* `admin` - The user will become an owner of the organization. \n\\* `member` - The user will become a non-owner member of the organization.", - "enum": [ - "admin", - "member" - ], - "default": "member" + "labels": { + "type": "array", + "minItems": 0, + "maxItems": 100, + "description": "The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels.", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "default": { + "value": { + "labels": [ + "gpu", + "accelerated" + ] } } } @@ -11495,89 +12409,110 @@ }, "responses": { "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/org-membership" - }, - "examples": { - "response-if-user-already-had-membership-with-organization": { - "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" - } - } - } - } + "$ref": "#/components/responses/actions_runner_labels" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } }, "delete": { - "summary": "Remove organization membership for a user", - "description": "In order to remove a user's membership with an organization, the authenticated user must be an organization owner.\n\nIf the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases.", + "summary": "Remove all custom labels from a self-hosted runner for an organization", + "description": "Remove all custom labels from a self-hosted runner configured in an\norganization. Returns the remaining read-only labels from the runner.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/remove-membership-for-user", + "operationId": "actions/remove-all-custom-labels-from-self-hosted-runner-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#remove-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/runner-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "$ref": "#/components/responses/actions_runner_labels_readonly" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "self-hosted-runners" + } + } + }, + "/orgs/{org}/actions/runners/{runner_id}/labels/{name}": { + "delete": { + "summary": "Remove a custom label from a self-hosted runner for an organization", + "description": "Remove a custom label from a self-hosted runner configured\nin an organization. Returns the remaining labels from the runner.\n\nThis endpoint returns a `404 Not Found` status if the custom label is not\npresent on the runner.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", + "tags": [ + "actions" + ], + "operationId": "actions/remove-custom-label-from-self-hosted-runner-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/runner-id" + }, + { + "$ref": "#/components/parameters/runner-label-name" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/actions_runner_labels" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/orgs/{org}/migrations": { + "/orgs/{org}/actions/secrets": { "get": { - "summary": "List organization migrations", - "description": "Lists the most recent migrations.", + "summary": "List organization secrets", + "description": "Lists all secrets available in an organization without revealing their\nencrypted values.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/list-for-org", + "operationId": "actions/list-org-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#list-organization-migrations" + "url": "https://docs.github.com/rest/actions/secrets#list-organization-secrets" }, "parameters": [ { @@ -11588,22 +12523,6 @@ }, { "$ref": "#/components/parameters/page" - }, - { - "name": "exclude", - "description": "Exclude attributes from the API response to improve performance", - "in": "query", - "schema": { - "type": "array", - "items": { - "description": "Allowed values that can be passed to the exclude param.", - "enum": [ - "repositories" - ], - "example": "repositories", - "type": "string" - } - } } ], "responses": { @@ -11612,14 +12531,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/migration" + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-actions-secret" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/migration-with-short-org-items" + "$ref": "#/components/examples/organization-actions-secret-paginated" } } } @@ -11633,416 +12564,463 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/actions/secrets/public-key": { + "get": { + "summary": "Get an organization public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to\nencrypt a secret before you can create or update secrets.\n\nThe authenticated user must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/get-org-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/secrets#get-an-organization-public-key" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-public-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-public-key" + } + } + } } - ], - "category": "migrations", - "subcategory": "orgs" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/actions/secrets/{secret_name}": { + "get": { + "summary": "Get an organization secret", + "description": "Gets a single organization secret without revealing its encrypted value.\n\nThe authenticated user must have collaborator access to a repository to create, update, or read secrets\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/get-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/secrets#get-an-organization-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-actions-secret" + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-actions-secret" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" } }, - "post": { - "summary": "Start an organization migration", - "description": "Initiates the generation of a migration archive.", + "put": { + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/start-for-org", + "operationId": "actions/create-or-update-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#start-an-organization-migration" + "url": "https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "repositories": { - "type": "array", - "description": "A list of arrays indicating which repositories should be migrated.", - "items": { - "type": "string" - } + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/actions/secrets#get-an-organization-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" }, - "lock_repositories": { - "type": "boolean", - "description": "Indicates whether repositories should be locked (to prevent manipulation) while migrating data.", - "default": false + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." }, - "exclude_attachments": { - "type": "boolean", - "description": "Indicates whether attachments should be excluded from the migration (to reduce migration archive file size).", - "default": false + "visibility": { + "type": "string", + "description": "Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret.", + "enum": [ + "all", + "private", + "selected" + ] }, - "exclude": { + "selected_repository_ids": { "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/actions/secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret) endpoints.", "items": { - "type": "string", - "enum": [ - "repositories" - ] + "type": "integer" } } }, "required": [ - "repositories" + "encrypted_value", + "key_id", + "visibility" ] }, - "example": { - "repositories": [ - "github/Hello-World" - ], - "lock_repositories": true + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] + } + } } } } }, "responses": { "201": { - "description": "Response", + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/migration" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/migration-with-short-org-2" + "value": null } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" } - } - }, - "/orgs/{org}/migrations/{migration_id}": { - "get": { - "summary": "Get an organization migration status", - "description": "Fetches the status of a migration.\n\nThe `state` of a migration can be one of the following values:\n\n* `pending`, which means the migration hasn't started yet.\n* `exporting`, which means the migration is in progress.\n* `exported`, which means the migration finished successfully.\n* `failed`, which means the migration failed.", + }, + "delete": { + "summary": "Delete an organization secret", + "description": "Deletes a secret in an organization using the secret name.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/get-status-for-org", + "operationId": "actions/delete-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#get-an-organization-migration-status" + "url": "https://docs.github.com/rest/actions/secrets#delete-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" - }, - { - "name": "exclude", - "description": "Exclude attributes from the API response to improve performance", - "in": "query", - "schema": { - "type": "array", - "items": { - "description": "Allowed values that can be passed to the exclude param.", - "enum": [ - "repositories" - ], - "example": "repositories", - "type": "string" - } - } + "$ref": "#/components/parameters/secret-name" } ], "responses": { - "200": { - "description": "* `pending`, which means the migration hasn't started yet.\n* `exporting`, which means the migration is in progress.\n* `exported`, which means the migration finished successfully.\n* `failed`, which means the migration failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/migration" - }, - "examples": { - "default": { - "$ref": "#/components/examples/migration-with-short-org" - } - } - } - } - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" } } }, - "/orgs/{org}/migrations/{migration_id}/archive": { + "/orgs/{org}/actions/secrets/{secret_name}/repositories": { "get": { - "summary": "Download an organization migration archive", - "description": "Fetches the URL to a migration archive.", + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility`\nfor repository access to a secret is set to `selected`.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/download-archive-for-org", + "operationId": "actions/list-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#download-an-organization-migration-archive" + "url": "https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/secret-name" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" } ], "responses": { - "302": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/public-repository-paginated" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" } }, - "delete": { - "summary": "Delete an organization migration archive", - "description": "Deletes a previous migration archive. Migration archives are automatically deleted after seven days.", + "put": { + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization secret when the `visibility`\nfor repository access is set to `selected`. The visibility is set when you [Create\nor update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret).\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/delete-archive-for-org", + "operationId": "actions/set-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#delete-an-organization-migration-archive" + "url": "https://docs.github.com/rest/actions/secrets#set-selected-repositories-for-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/secret-name" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Add selected repository to an organization secret](https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "selected_repository_ids" + ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + 64780797 + ] + } + } + } + } + } + }, "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" } } }, - "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { - "delete": { - "summary": "Unlock an organization repository", - "description": "Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data.", + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + "put": { + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization secret when the `visibility` for\nrepository access is set to `selected`. For more information about setting the visibility, see [Create or\nupdate an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret).\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/unlock-repo-for-org", + "operationId": "actions/add-selected-repo-to-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#unlock-an-organization-repository" + "url": "https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/secret-name" }, { - "$ref": "#/components/parameters/repo-name" + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { "204": { - "description": "Response" + "description": "No Content when repository was added to the selected list" }, - "404": { - "$ref": "#/components/responses/not_found" + "409": { + "description": "Conflict when visibility type is not set to selected" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" } - } - }, - "/orgs/{org}/migrations/{migration_id}/repositories": { - "get": { - "summary": "List repositories in an organization migration", - "description": "List all the repositories for this organization migration.", + }, + "delete": { + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization secret when the `visibility`\nfor repository access is set to `selected`. The visibility is set when you [Create\nor update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret).\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/list-repos-for-org", + "operationId": "actions/remove-selected-repo-from-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#list-repositories-in-an-organization-migration" + "url": "https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/secret-name" }, { - "$ref": "#/components/parameters/page" + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/minimal-repository-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response when repository was removed from the selected list" }, - "404": { - "$ref": "#/components/responses/not_found" + "409": { + "description": "Conflict when visibility type not set to selected" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" } } }, - "/orgs/{org}/outside_collaborators": { + "/orgs/{org}/actions/variables": { "get": { - "summary": "List outside collaborators for an organization", - "description": "List all users who are outside collaborators of an organization.", + "summary": "List organization variables", + "description": "Lists all organization variables.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/list-outside-collaborators", + "operationId": "actions/list-org-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-outside-collaborators-for-an-organization" + "url": "https://docs.github.com/rest/actions/variables#list-organization-variables" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "filter", - "description": "Filter the list of outside collaborators. Can be one of: \n\\* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. \n\\* `all`: All outside collaborators.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "2fa_disabled", - "all" - ], - "default": "all" - } - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/variables-per-page" }, { "$ref": "#/components/parameters/page" @@ -12054,14 +13032,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" + "type": "object", + "required": [ + "total_count", + "variables" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-actions-variable" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/organization-actions-variables-paginated" } } } @@ -12076,112 +13066,91 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "outside-collaborators" + "category": "actions", + "subcategory": "variables" } - } - }, - "/orgs/{org}/outside_collaborators/{username}": { - "put": { - "summary": "Convert an organization member to outside collaborator", - "description": "When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see \"[Converting an organization member to an outside collaborator](https://help.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)\".", + }, + "post": { + "summary": "Create an organization variable", + "description": "Creates an organization variable that you can reference in a GitHub Actions workflow.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "orgs" + "actions" ], - "operationId": "orgs/convert-member-to-outside-collaborator", + "operationId": "actions/create-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#convert-an-organization-member-to-outside-collaborator" + "url": "https://docs.github.com/rest/actions/variables#create-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/username" } ], - "responses": { - "202": { - "description": "User is getting converted asynchronously", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the variable." }, - "additionalProperties": false + "value": { + "type": "string", + "description": "The value of the variable." + }, + "visibility": { + "type": "string", + "description": "The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable.", + "enum": [ + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "name", + "value", + "visibility" + ] + }, + "examples": { + "default": { + "value": { + "name": "USERNAME", + "value": "octocat", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] + } } } } - }, - "204": { - "description": "User was converted" - }, - "403": { - "description": "Forbidden if user is the last owner of the organization or not a member of the organization" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "outside-collaborators" - } - }, - "delete": { - "summary": "Remove outside collaborator from an organization", - "description": "Removing a user from this list will remove them from all the organization's repositories.", - "tags": [ - "orgs" - ], - "operationId": "orgs/remove-outside-collaborator", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#remove-outside-collaborator-from-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/username" - } - ], "responses": { - "204": { - "description": "Response" - }, - "422": { - "description": "Unprocessable Entity if user is a member of the organization", + "201": { + "description": "Response when creating a variable", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } - } + "$ref": "#/components/schemas/empty-object" }, "examples": { - "response-if-user-is-a-member-of-the-organization": { - "value": { - "message": "You cannot specify an organization member to remove as an outside collaborator.", - "documentation_url": "https://docs.github.com/rest/reference/orgs#remove-outside-collaborator" - } + "default": { + "value": null } } } @@ -12191,35 +13160,29 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": "outside-collaborators" + "category": "actions", + "subcategory": "variables" } } }, - "/orgs/{org}/packages/{package_type}/{package_name}": { + "/orgs/{org}/actions/variables/{name}": { "get": { - "summary": "Get a package for an organization", - "description": "Gets a specific package in an organization.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "summary": "Get an organization variable", + "description": "Gets a specific variable in an organization.\n\nThe authenticated user must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "packages" + "actions" ], - "operationId": "packages/get-package-for-organization", + "operationId": "actions/get-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-an-organization" + "url": "https://docs.github.com/rest/actions/variables#get-an-organization-variable" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/variable-name" } ], "responses": { @@ -12228,11 +13191,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package" + "$ref": "#/components/schemas/organization-actions-variable" }, "examples": { "default": { - "$ref": "#/components/examples/package-org" + "$ref": "#/components/examples/organization-actions-variable" } } } @@ -12241,159 +13204,147 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" } }, - "delete": { - "summary": "Delete a package for an organization", - "description": "Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container you want to delete.", + "patch": { + "summary": "Update an organization variable", + "description": "Updates an organization variable that you can reference in a GitHub Actions workflow.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "packages" + "actions" ], - "operationId": "packages/delete-package-for-org", + "operationId": "actions/update-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#delete-a-package-for-an-organization" + "url": "https://docs.github.com/rest/actions/variables#update-an-organization-variable" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/variable-name" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the variable." + }, + "value": { + "type": "string", + "description": "The value of the variable." + }, + "visibility": { + "type": "string", + "description": "The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable.", + "enum": [ + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`.", + "items": { + "type": "integer" + } + } + } + }, + "examples": { + "default": { + "value": { + "name": "USERNAME", + "value": "octocat", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] + } + } + } + } + } + }, "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" } - } - }, - "/orgs/{org}/packages/{package_type}/{package_name}/restore": { - "post": { - "summary": "Restore a package for an organization", - "description": "Restores an entire package in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container that you want to restore.", + }, + "delete": { + "summary": "Delete an organization variable", + "description": "Deletes an organization variable using the variable name.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "packages" + "actions" ], - "operationId": "packages/restore-package-for-org", + "operationId": "actions/delete-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#restore-a-package-for-an-organization" + "url": "https://docs.github.com/rest/actions/variables#delete-an-organization-variable" }, "parameters": [ - { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" - }, { "$ref": "#/components/parameters/org" }, { - "name": "token", - "description": "package token", - "schema": { - "type": "string" - }, - "required": false, - "in": "query" + "$ref": "#/components/parameters/variable-name" } ], "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" } } }, - "/orgs/{org}/packages/{package_type}/{package_name}/versions": { + "/orgs/{org}/actions/variables/{name}/repositories": { "get": { - "summary": "Get all package versions for a package owned by an organization", - "description": "Returns all package versions for a package owned by an organization.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "summary": "List selected repositories for an organization variable", + "description": "Lists all repositories that can access an organization variable\nthat is available to selected repositories.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "packages" + "actions" ], - "operationId": "packages/get-all-package-versions-for-package-owned-by-org", + "operationId": "actions/list-selected-repos-for-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-an-organization" + "url": "https://docs.github.com/rest/actions/variables#list-selected-repositories-for-an-organization-variable" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/variable-name" }, { "$ref": "#/components/parameters/page" }, { "$ref": "#/components/parameters/per-page" - }, - { - "name": "state", - "in": "query", - "required": false, - "description": "The state of the package, either active or deleted.", - "schema": { - "type": "string", - "enum": [ - "active", - "deleted" - ], - "default": "active" - } } ], "responses": { @@ -12402,284 +13353,567 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package-version" + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/package-versions-for-org" + "$ref": "#/components/examples/public-repository-paginated" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" } - } - }, - "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { - "get": { - "summary": "Get a package version for an organization", - "description": "Gets a specific package version in an organization.\n\nYou must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + }, + "put": { + "summary": "Set selected repositories for an organization variable", + "description": "Replaces all repositories for an organization variable that is available\nto selected repositories. Organization variables that are available to selected\nrepositories have their `visibility` field set to `selected`.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "packages" + "actions" ], - "operationId": "packages/get-package-version-for-organization", + "operationId": "actions/set-selected-repos-for-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-an-organization" + "url": "https://docs.github.com/rest/actions/variables#set-selected-repositories-for-an-organization-variable" }, "parameters": [ - { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" - }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/package-version-id" + "$ref": "#/components/parameters/variable-name" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/package-version" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "The IDs of the repositories that can access the organization variable.", + "items": { + "type": "integer" + } + } }, - "examples": { - "default": { - "$ref": "#/components/examples/package-version-org" + "required": [ + "selected_repository_ids" + ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + 64780797 + ] } } } } } }, + "responses": { + "204": { + "description": "Response" + }, + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" + } + }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" } - }, - "delete": { - "summary": "Delete package version for an organization", - "description": "Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container you want to delete.", + } + }, + "/orgs/{org}/actions/variables/{name}/repositories/{repository_id}": { + "put": { + "summary": "Add selected repository to an organization variable", + "description": "Adds a repository to an organization variable that is available to selected repositories.\nOrganization variables that are available to selected repositories have their `visibility` field set to `selected`.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "packages" + "actions" ], - "operationId": "packages/delete-package-version-for-org", + "operationId": "actions/add-selected-repo-to-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#delete-a-package-version-for-an-organization" + "url": "https://docs.github.com/rest/actions/variables#add-selected-repository-to-an-organization-variable" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/variable-name" }, { - "$ref": "#/components/parameters/package-version-id" + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { "204": { "description": "Response" }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" } - } - }, - "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { - "post": { - "summary": "Restore package version for an organization", - "description": "Restores a specific package version in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container that you want to restore.", + }, + "delete": { + "summary": "Remove selected repository from an organization variable", + "description": "Removes a repository from an organization variable that is\navailable to selected repositories. Organization variables that are available to\nselected repositories have their `visibility` field set to `selected`.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required.", "tags": [ - "packages" + "actions" ], - "operationId": "packages/restore-package-version-for-org", + "operationId": "actions/remove-selected-repo-from-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#restore-a-package-version-for-an-organization" + "url": "https://docs.github.com/rest/actions/variables#remove-selected-repository-from-an-organization-variable" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/variable-name" }, { - "$ref": "#/components/parameters/package-version-id" + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { "204": { "description": "Response" }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" } } }, - "/orgs/{org}/projects": { - "get": { - "summary": "List organization projects", - "description": "Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "/orgs/{org}/artifacts/metadata/deployment-record": { + "post": { + "summary": "Create an artifact deployment record", + "description": "Create or update deployment records for an artifact associated\nwith an organization.\nThis endpoint allows you to record information about a specific\nartifact, such as its name, digest, environments, cluster, and\ndeployment.\nThe deployment name has to be uniqe within a cluster (i.e a\ncombination of logical, physical environment and cluster) as it\nidentifies unique deployment.\nMultiple requests for the same combination of logical, physical\nenvironment, cluster and deployment name will only create one\nrecord, successive request will update the existing record.\nThis allows for a stable tracking of a deployment where the actual\ndeployed artifact can change over time.", "tags": [ - "projects" + "orgs" ], - "operationId": "projects/list-for-org", + "operationId": "orgs/create-artifact-deployment-record", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#list-organization-projects" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-an-artifact-deployment-record" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "name": "state", - "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "open", - "closed", - "all" - ], - "default": "open" - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/project" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256, + "example": "libfoo" + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact.", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "minLength": 1, + "maxLength": 100, + "x-multi-segment": true, + "example": "1.2.3" + }, + "status": { + "type": "string", + "description": "The status of the artifact. Can be either deployed or decommissioned.", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 64 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 64 + }, + "cluster": { + "type": "string", + "description": "The deployment cluster." + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record. To accommodate differing\ncontainers and namespaces within a cluster, the following format is recommended:\n{namespaceName}-{deploymentName}-{containerName}.\n" + }, + "tags": { + "type": "object", + "description": "The tags associated with the deployment.", + "additionalProperties": { + "type": "string" + }, + "maxProperties": 5 + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact. This should be used\nwhen there are no provenance attestations available for the artifact. The repository\nmust belong to the organization specified in the path parameter.\n\nIf a provenance attestation is available for the artifact, the API will use\nthe repository information from the attestation instead of this parameter.", + "minLength": 1, + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "example": "my-github-repo" + } + }, + "required": [ + "name", + "digest", + "status", + "logical_environment", + "deployment_name" + ] + }, + "examples": { + "default": { + "value": { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "status": "deployed", + "logical_environment": "prod", + "physical_environment": "pacific-east", + "cluster": "moda-1", + "deployment_name": "deployment-pod", + "tags": { + "data-access": "sensitive" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Artifact deployment record stored successfully.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { + "description": "The number of deployment records created", + "type": "integer" + }, + "deployment_records": { + "type": "array", + "items": { + "$ref": "#/components/schemas/artifact-deployment-record" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/project-items" + "$ref": "#/components/examples/artifact-deployment-record-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}": { + "post": { + "summary": "Set cluster deployment records", + "description": "Set deployment records for a given cluster.\nIf proposed records in the 'deployments' field have identical 'cluster', 'logical_environment',\n'physical_environment', and 'deployment_name' values as existing records, the existing records will be updated.\nIf no existing records match, new records will be created.", + "tags": [ + "orgs" + ], + "operationId": "orgs/set-cluster-deployment-records", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#set-cluster-deployment-records" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9._-]+$" } - ], - "category": "projects", - "subcategory": null + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 64 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 64 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "items": { + "type": "object", + "maxLength": 100, + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact. Note that if multiple deployments have identical 'digest' parameter values,\nthe name parameter must also be identical across all entries.\n", + "minLength": 1, + "maxLength": 256 + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact. Note that if multiple deployments have identical 'digest' parameter values,\nthe name and version parameters must also be identical across all entries.\n", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version. Note that if multiple deployments have identical 'digest' parameter values,\nthe version parameter must also be identical across all entries.\n", + "minLength": 1, + "maxLength": 100, + "x-multi-segment": true, + "example": "1.2.3" + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record. To accommodate differing\ncontainers and namespaces within a record set, the following format is recommended:\n{namespaceName}-{deploymentName}-{containerName}.\nThe deployment_name must be unique across all entries in the deployments array.\n", + "minLength": 1, + "maxLength": 128 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact. This should be used\nwhen there are no provenance attestations available for the artifact. The repository\nmust belong to the organization specified in the path parameter.\n\nIf a provenance attestation is available for the artifact, the API will use\nthe repository information from the attestation instead of this parameter.", + "minLength": 1, + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "example": "my-github-repo" + }, + "tags": { + "type": "object", + "description": "Key-value pairs to tag the deployment record.", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + } + }, + "required": [ + "name", + "deployment_name", + "digest" + ] + } + } + }, + "required": [ + "logical_environment", + "deployments" + ] + }, + "examples": { + "default": { + "value": { + "logical_environment": "prod", + "physical_environment": "pacific-east", + "deployments": [ + { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "version": "2.1.0", + "status": "deployed", + "deployment_name": "deployment-pod", + "tags": { + "runtime-risk": "sensitive-data" + } + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Deployment records created or updated successfully.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { + "description": "The number of deployment records created", + "type": "integer" + }, + "deployment_records": { + "type": "array", + "items": { + "$ref": "#/components/schemas/artifact-deployment-record" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/artifact-deployment-record-list" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" } - }, + } + }, + "/orgs/{org}/artifacts/metadata/storage-record": { "post": { - "summary": "Create an organization project", - "description": "Creates an organization project board. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "summary": "Create artifact metadata storage record", + "description": "Create metadata storage records for artifacts associated with an organization.\nThis endpoint will create a new artifact storage record on behalf of any artifact matching the provided digest and\nassociated with a repository owned by the organization.", "tags": [ - "projects" + "orgs" ], - "operationId": "projects/create-for-org", + "operationId": "orgs/create-artifact-storage-record", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#create-an-organization-project" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record" }, "parameters": [ { @@ -12687,6 +13921,7 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -12694,308 +13929,672 @@ "properties": { "name": { "type": "string", - "description": "The name of the project." + "description": "The name of the artifact.", + "example": "libfoo", + "minLength": 1, + "maxLength": 256 }, - "body": { + "digest": { + "type": "string", + "description": "The digest of the artifact (algorithm:hex-encoded-digest).", + "example": "sha256:0ecbaa601dba202129058746c7d8e3f282d0efb5fff0...", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "minLength": 1, + "maxLength": 100, + "x-multi-segment": true, + "example": "1.2.3" + }, + "artifact_url": { + "type": "string", + "format": "uri", + "pattern": "^https://", + "description": "The URL where the artifact is stored.", + "example": "https://reg.example.com/artifactory/bar/libfoo-1.2.3" + }, + "path": { + "type": "string", + "format": "uri", + "description": "The path of the artifact.", + "example": "com/github/bar/libfoo-1.2.3" + }, + "registry_url": { + "type": "string", + "format": "uri", + "pattern": "^https://", + "description": "The base URL of the artifact registry.", + "example": "https://reg.example.com/artifactory/", + "minLength": 1 + }, + "repository": { + "type": "string", + "description": "The repository name within the registry.", + "example": "bar" + }, + "status": { + "type": "string", + "description": "The status of the artifact (e.g., active, inactive).", + "example": "active", + "enum": [ + "active", + "eol", + "deleted" + ], + "default": "active" + }, + "github_repository": { "type": "string", - "description": "The description of the project." + "description": "The name of the GitHub repository associated with the artifact. This should be used\nwhen there are no provenance attestations available for the artifact. The repository\nmust belong to the organization specified in the path parameter.\n\nIf a provenance attestation is available for the artifact, the API will use\nthe repository information from the attestation instead of this parameter.", + "minLength": 1, + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "example": "my-github-repo" } }, "required": [ - "name" + "name", + "digest", + "registry_url" ] }, - "example": { - "name": "Organization Roadmap", - "body": "High-level roadmap for the upcoming year." + "examples": { + "default": { + "value": { + "name": "libfoo", + "version": "1.2.3", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "artifact_url": "https://reg.example.com/artifactory/bar/libfoo-1.2.3", + "registry_url": "https://reg.example.com/artifactory/", + "repository": "bar", + "status": "active" + } + } } } } }, "responses": { - "201": { - "description": "Response", + "200": { + "description": "Artifact metadata storage record stored successfully.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project" + "type": "object", + "properties": { + "total_count": { + "type": "integer", + "example": 1 + }, + "storage_records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "digest": { + "type": "string" + }, + "artifact_url": { + "type": "string", + "nullable": true + }, + "registry_url": { + "type": "string" + }, + "repository": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/project-2" + "value": { + "total_count": 1, + "storage_records": [ + { + "name": "libfoo", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "artifact_url": "https://reg.example.com/artifactory/bar/libfoo-1.2.3", + "registry_url": "https://reg.example.com/artifactory/", + "repository": "bar", + "status": "active", + "created_at": "2023-10-01T12:00:00Z", + "updated_at": "2023-10-01T12:00:00Z" + } + ] + } } } } } - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "category": "orgs", + "subcategory": "artifact-metadata" } } }, - "/orgs/{org}/public_members": { + "/orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records": { "get": { - "summary": "List public organization members", - "description": "Members of an organization can choose to have their membership publicized or not.", + "summary": "List artifact deployment records", + "description": "List deployment records for an artifact metadata associated with an organization.", "tags": [ "orgs" ], - "operationId": "orgs/list-public-members", + "operationId": "orgs/list-artifact-deployment-records", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-public-organization-members" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-deployment-records" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/subject-digest" } ], "responses": { "200": { - "description": "Response", + "description": "Successful response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" + "type": "object", + "properties": { + "total_count": { + "description": "The number of deployment records for this digest and organization", + "example": 3, + "type": "integer" + }, + "deployment_records": { + "type": "array", + "items": { + "$ref": "#/components/schemas/artifact-deployment-record" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/artifact-deployment-record-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "orgs", - "subcategory": "members" + "subcategory": "artifact-metadata" } } }, - "/orgs/{org}/public_members/{username}": { + "/orgs/{org}/artifacts/{subject_digest}/metadata/storage-records": { "get": { - "summary": "Check public organization membership for a user", - "description": "", + "summary": "List artifact storage records", + "description": "List a collection of artifact storage records with a given subject digest that are associated with repositories owned by an organization.\n\nThe collection of storage records returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `content:read` permission is required.", "tags": [ "orgs" ], - "operationId": "orgs/check-public-membership-for-user", + "operationId": "orgs/list-artifact-storage-records", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#check-public-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-storage-records" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "name": "subject_digest", + "description": "The parameter should be set to the attestation's subject's SHA256 digest, in the form `sha256:HEX_DIGEST`.", + "in": "path", + "required": true, + "example": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "schema": { + "type": "string", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "x-multi-segment": true } ], "responses": { - "204": { - "description": "Response if user is a public member" - }, - "404": { - "description": "Not Found if user is not a public member" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { + "description": "The number of storage records for this digest and organization", + "example": 3, + "type": "integer" + }, + "storage_records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "digest": { + "type": "string" + }, + "artifact_url": { + "type": "string" + }, + "registry_url": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "status": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "value": { + "storage_records": [ + { + "name": "libfoo-1.2.3", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "artifact_url": "https://reg.example.com/artifactory/bar/libfoo-1.2.3", + "registry_url": "https://reg.example.com/artifactory/", + "repository": "bar", + "status": "active", + "created_at": "2023-10-01T12:00:00Z", + "updated_at": "2023-10-01T12:00:00Z" + } + ] + } + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "orgs", - "subcategory": "members" + "subcategory": "artifact-metadata" } - }, - "put": { - "summary": "Set public organization membership for the authenticated user", - "description": "The user can publicize their own membership. (A user cannot publicize the membership for another user.)\n\nNote that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + } + }, + "/orgs/{org}/attestations/bulk-list": { + "post": { + "summary": "List attestations by bulk subject digests", + "description": "List a collection of artifact attestations associated with any entry in a list of subject digests owned by an organization.\n\nThe collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required.\n\n**Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds).", "tags": [ "orgs" ], - "operationId": "orgs/set-public-membership-for-authenticated-user", + "operationId": "orgs/list-attestations-bulk", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#set-public-organization-membership-for-the-authenticated-user" + "url": "https://docs.github.com/rest/orgs/attestations#list-attestations-by-bulk-subject-digests" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/org" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "subject_digests": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subject digests to fetch attestations for.", + "minItems": 1, + "maxItems": 1024 + }, + "predicate_type": { + "type": "string", + "description": "Optional filter for fetching attestations with a given predicate type.\nThis option accepts `provenance`, `sbom`, `release`, or freeform text\nfor custom predicate types." + } + }, + "required": [ + "subject_digests" + ] + }, + "examples": { + "default": { + "$ref": "#/components/examples/bulk-subject-digest-body" + }, + "withPredicateType": { + "$ref": "#/components/examples/bulk-subject-digest-body-with-predicate-type" + } + } + } + } + }, "responses": { - "204": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "attestations_subject_digests": { + "type": "object", + "additionalProperties": { + "nullable": true, + "type": "array", + "items": { + "type": "object", + "properties": { + "bundle": { + "type": "object", + "properties": { + "mediaType": { + "type": "string" + }, + "verificationMaterial": { + "type": "object", + "properties": {}, + "additionalProperties": true + }, + "dsseEnvelope": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "description": "The bundle of the attestation." + }, + "repository_id": { + "type": "integer" + }, + "bundle_url": { + "type": "string" + } + } + } + }, + "description": "Mapping of subject digest to bundles." + }, + "page_info": { + "type": "object", + "properties": { + "has_next": { + "type": "boolean", + "description": "Indicates whether there is a next page." + }, + "has_previous": { + "type": "boolean", + "description": "Indicates whether there is a previous page." + }, + "next": { + "type": "string", + "description": "The cursor to the next page." + }, + "previous": { + "type": "string", + "description": "The cursor to the previous page." + } + }, + "description": "Information about the current page." + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/list-attestations-bulk" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "attestations" + } + } + }, + "/orgs/{org}/attestations/delete-request": { + "post": { + "summary": "Delete attestations in bulk", + "description": "Delete artifact attestations in bulk by either subject digests or unique ID.", + "tags": [ + "orgs" + ], + "operationId": "orgs/delete-attestations-bulk", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-in-bulk" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "oneOf": [ + { + "properties": { + "subject_digests": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subject digests associated with the artifact attestations to delete.", + "minItems": 1, + "maxItems": 1024 + } + }, + "required": [ + "subject_digests" + ] + }, + { + "properties": { + "attestation_ids": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "List of unique IDs associated with the artifact attestations to delete.", + "minItems": 1, + "maxItems": 1024 + } + }, + "required": [ + "attestation_ids" + ] + } + ], + "description": "The request body must include either `subject_digests` or `attestation_ids`, but not both." + }, + "examples": { + "by-subject-digests": { + "summary": "Delete by subject digests", + "value": { + "subject_digests": [ + "sha256:abc123", + "sha512:def456" + ] + } + }, + "by-attestation-ids": { + "summary": "Delete by attestation IDs", + "value": { + "attestation_ids": [ + 111, + 222 + ] + } + } + } + } + } + }, + "responses": { + "200": { "description": "Response" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "members" + "subcategory": "attestations" } - }, + } + }, + "/orgs/{org}/attestations/digest/{subject_digest}": { "delete": { - "summary": "Remove public organization membership for the authenticated user", - "description": "", + "summary": "Delete attestations by subject digest", + "description": "Delete an artifact attestation by subject digest.", "tags": [ "orgs" ], - "operationId": "orgs/remove-public-membership-for-authenticated-user", + "operationId": "orgs/delete-attestations-by-subject-digest", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#remove-public-organization-membership-for-the-authenticated-user" + "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-by-subject-digest" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "name": "subject_digest", + "description": "Subject Digest", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true } ], "responses": { + "200": { + "description": "Response" + }, "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], + "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "members" + "subcategory": "attestations" } } }, - "/orgs/{org}/repos": { + "/orgs/{org}/attestations/repositories": { "get": { - "summary": "List organization repositories", - "description": "Lists repositories for the specified organization.", + "summary": "List attestation repositories", + "description": "List repositories owned by the provided organization that have created at least one attested artifact\nResults will be sorted in ascending order by repository ID", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/list-for-org", + "operationId": "orgs/list-attestation-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-organization-repositories" + "url": "https://docs.github.com/rest/orgs/attestations#list-attestation-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "name": "type", - "description": "Specifies the types of repositories you want returned. Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`, `internal`. Note: For GitHub AE, can be one of `all`, `private`, `forks`, `sources`, `member`, `internal`. Default: `all`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `type` can also be `internal`. However, the `internal` value is not yet supported when a GitHub App calls this API with an installation access token.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "all", - "public", - "private", - "forks", - "sources", - "member", - "internal" - ] - } + "$ref": "#/components/parameters/pagination-before" }, { - "name": "sort", - "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "pushed", - "full_name" - ], - "default": "created" - } + "$ref": "#/components/parameters/pagination-after" }, { - "name": "direction", - "description": "Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc`", + "$ref": "#/components/parameters/org" + }, + { + "name": "predicate_type", + "description": "Optional filter for fetching attestations with a given predicate type.\nThis option accepts `provenance`, `sbom`, `release`, or freeform text\nfor custom predicate types.", "in": "query", "required": false, "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] + "type": "string" } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -13006,236 +14605,125 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/list-attestation-repositories" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "nebula", - "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" - }, - { - "required": false, - "name": "baptiste", - "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/rest/reference/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n\n```shell\napplication/vnd.github.baptiste-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "orgs", + "subcategory": "attestations" } - }, - "post": { - "summary": "Create an organization repository", - "description": "Creates a new repository in the specified organization. The authenticated user must be a member of the organization.\n\n**OAuth scope requirements**\n\nWhen using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include:\n\n* `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository.\n* `repo` scope to create a private repository", + } + }, + "/orgs/{org}/attestations/{attestation_id}": { + "delete": { + "summary": "Delete attestations by ID", + "description": "Delete an artifact attestation by unique ID that is associated with a repository owned by an org.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/create-in-org", + "operationId": "orgs/delete-attestations-by-id", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-an-organization-repository" + "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-by-id" }, "parameters": [ { "$ref": "#/components/parameters/org" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the repository." - }, - "description": { - "type": "string", - "description": "A short description of the repository." - }, - "homepage": { - "type": "string", - "description": "A URL with more information about the repository." - }, - "private": { - "type": "boolean", - "description": "Whether the repository is private.", - "default": false - }, - "visibility": { - "type": "string", - "description": "Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. Note: For GitHub Enterprise Server and GitHub AE, this endpoint will only list repositories available to all users on the enterprise. For more information, see \"[Creating an internal repository](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-repository-visibility#about-internal-repositories)\" in the GitHub Help documentation. \nThe `visibility` parameter overrides the `private` parameter when you use both parameters with the `nebula-preview` preview header.", - "enum": [ - "public", - "private", - "visibility", - "internal" - ] - }, - "has_issues": { - "type": "boolean", - "description": "Either `true` to enable issues for this repository or `false` to disable them.", - "default": true - }, - "has_projects": { - "type": "boolean", - "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", - "default": true - }, - "has_wiki": { - "type": "boolean", - "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", - "default": true - }, - "is_template": { - "type": "boolean", - "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", - "default": false - }, - "team_id": { - "type": "integer", - "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization." - }, - "auto_init": { - "type": "boolean", - "description": "Pass `true` to create an initial commit with empty README.", - "default": false - }, - "gitignore_template": { - "type": "string", - "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, \"Haskell\"." - }, - "license_template": { - "type": "string", - "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, \"mit\" or \"mpl-2.0\"." - }, - "allow_squash_merge": { - "type": "boolean", - "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", - "default": true - }, - "allow_merge_commit": { - "type": "boolean", - "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", - "default": true - }, - "allow_rebase_merge": { - "type": "boolean", - "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", - "default": true - }, - "allow_auto_merge": { - "type": "boolean", - "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.", - "default": false - }, - "delete_branch_on_merge": { - "type": "boolean", - "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.", - "default": false - } - }, - "required": [ - "name" - ] - }, - "example": { - "name": "Hello-World", - "description": "This is your first repository", - "homepage": "https://github.com", - "private": false, - "has_issues": true, - "has_projects": true, - "has_wiki": true - } + }, + { + "name": "attestation_id", + "description": "Attestation ID", + "in": "path", + "required": true, + "schema": { + "type": "integer" } } - }, + ], "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/repository" - }, - "examples": { - "default": { - "$ref": "#/components/examples/repository" - } - } - } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World", - "schema": { - "type": "string" - } - } - } + "200": { + "description": "Response" + }, + "204": { + "description": "Response" }, "403": { "$ref": "#/components/responses/forbidden" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "nebula", - "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" - }, - { - "required": false, - "name": "baptiste", - "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/rest/reference/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n\n```shell\napplication/vnd.github.baptiste-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "orgs", + "subcategory": "attestations" } } }, - "/orgs/{org}/settings/billing/actions": { + "/orgs/{org}/attestations/{subject_digest}": { "get": { - "summary": "Get GitHub Actions billing for an organization", - "description": "Gets the summary of the free and paid GitHub Actions minutes used.\n\nPaid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAccess tokens must have the `repo` or `admin:org` scope.", - "operationId": "billing/get-github-actions-billing-org", + "summary": "List attestations", + "description": "List a collection of artifact attestations with a given subject digest that are associated with repositories owned by an organization.\n\nThe collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required.\n\n**Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds).", "tags": [ - "billing" + "orgs" ], + "operationId": "orgs/list-attestations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-github-actions-billing-for-an-organization" + "url": "https://docs.github.com/rest/orgs/attestations#list-attestations" }, "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, { "$ref": "#/components/parameters/org" + }, + { + "name": "subject_digest", + "description": "The parameter should be set to the attestation's subject's SHA256 digest, in the form `sha256:HEX_DIGEST`.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + }, + { + "name": "predicate_type", + "description": "Optional filter for fetching attestations with a given predicate type.\nThis option accepts `provenance`, `sbom`, `release`, or freeform text\nfor custom predicate types.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { @@ -13244,11 +14732,50 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-billing-usage" + "type": "object", + "properties": { + "attestations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "bundle": { + "nullable": true, + "type": "object", + "properties": { + "mediaType": { + "type": "string" + }, + "verificationMaterial": { + "type": "object", + "properties": {}, + "additionalProperties": true + }, + "dsseEnvelope": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "description": "The attestation's Sigstore Bundle.\nRefer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information." + }, + "repository_id": { + "type": "integer" + }, + "bundle_url": { + "type": "string" + }, + "initiator": { + "type": "string" + } + } + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-billing-usage" + "$ref": "#/components/examples/list-attestations" } } } @@ -13257,30 +14784,33 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "billing", - "subcategory": null + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "attestations" } } }, - "/orgs/{org}/settings/billing/packages": { + "/orgs/{org}/blocks": { "get": { - "summary": "Get GitHub Packages billing for an organization", - "description": "Gets the free and paid storage used for GitHub Packages in gigabytes.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `repo` or `admin:org` scope.", - "operationId": "billing/get-github-packages-billing-org", + "summary": "List users blocked by an organization", + "description": "List the users blocked by an organization.", "tags": [ - "billing" + "orgs" ], + "operationId": "orgs/list-blocked-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-github-packages-billing-for-an-organization" + "url": "https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -13289,11 +14819,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/packages-billing-usage" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/packages-billing-usage" + "$ref": "#/components/examples/simple-user-items" } } } @@ -13302,44 +14835,42 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "billing", - "subcategory": null + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "blocking" } } }, - "/orgs/{org}/settings/billing/shared-storage": { + "/orgs/{org}/blocks/{username}": { "get": { - "summary": "Get shared storage billing for an organization", - "description": "Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `repo` or `admin:org` scope.", - "operationId": "billing/get-shared-storage-billing-org", + "summary": "Check if a user is blocked by an organization", + "description": "Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub.", "tags": [ - "billing" + "orgs" ], + "operationId": "orgs/check-blocked-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-shared-storage-billing-for-an-organization" + "url": "https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "description": "Response", + "204": { + "description": "If the user is blocked" + }, + "404": { + "description": "If the user is not blocked", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/combined-billing-usage" - }, - "examples": { - "default": { - "$ref": "#/components/examples/combined-billing-usage" - } + "$ref": "#/components/schemas/basic-error" } } } @@ -13347,100 +14878,126 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "billing", - "subcategory": null + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "blocking" } - } - }, - "/orgs/{org}/team-sync/groups": { - "get": { - "summary": "List IdP groups for an organization", - "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nList IdP groups available in an organization. You can limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see \"[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89).\"\n\nThe `per_page` parameter provides pagination for a list of IdP groups the authenticated user can access in an organization. For example, if the user `octocat` wants to see two groups per page in `octo-org` via cURL, it would look like this:", + }, + "put": { + "summary": "Block a user from an organization", + "description": "Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned.", "tags": [ - "teams" + "orgs" ], - "operationId": "teams/list-idp-groups-for-org", + "operationId": "orgs/block-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-idp-groups-for-an-organization" + "url": "https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "blocking" + } + }, + "delete": { + "summary": "Unblock a user from an organization", + "description": "Unblocks the given user on behalf of the specified organization.", + "tags": [ + "orgs" + ], + "operationId": "orgs/unblock-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, { - "name": "page", - "description": "Page token", - "in": "query", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/group-mapping" - }, - "examples": { - "default": { - "$ref": "#/components/examples/group-mapping-3" - } - } - } - }, - "headers": { - "Link": { - "example": "; rel=\"next\"", - "schema": { - "type": "string" - } - } - } + "204": { + "description": "Response" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "team-sync" + "category": "orgs", + "subcategory": "blocking" } } }, - "/orgs/{org}/teams": { + "/orgs/{org}/campaigns": { "get": { - "summary": "List teams", - "description": "Lists all teams in an organization that are visible to the authenticated user.", + "summary": "List campaigns for an organization", + "description": "Lists campaigns in an organization.\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint.", "tags": [ - "teams" + "campaigns" ], - "operationId": "teams/list", + "operationId": "campaigns/list-org-campaigns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-teams" + "url": "https://docs.github.com/rest/campaigns/campaigns#list-campaigns-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, + { + "$ref": "#/components/parameters/page" + }, { "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/direction" + }, + { + "name": "state", + "description": "If specified, only campaigns with this state will be returned.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/campaign-state" + } + }, + { + "name": "sort", + "description": "The property by which to sort the results.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "ends_at", + "published" + ], + "default": "created" + } } ], "responses": { @@ -13451,12 +15008,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/team" + "$ref": "#/components/schemas/campaign-summary" } }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/campaign-org-items" } } } @@ -13467,30 +15024,30 @@ } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "campaigns", + "subcategory": "campaigns" } }, "post": { - "summary": "Create a team", - "description": "To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see \"[Setting team creation permissions](https://help.github.com/en/articles/setting-team-creation-permissions-in-your-organization).\"\n\nWhen you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see \"[About teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)\".", + "summary": "Create a campaign for an organization", + "description": "Create a campaign for an organization.\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint.\n\nFine-grained tokens must have the \"Code scanning alerts\" repository permissions (read) on all repositories included\nin the campaign.", "tags": [ - "teams" + "campaigns" ], - "operationId": "teams/create", + "operationId": "campaigns/create-campaign", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#create-a-team" + "url": "https://docs.github.com/rest/campaigns/campaigns#create-a-campaign-for-an-organization" }, "parameters": [ { @@ -13498,121 +15055,208 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "name": { + "description": "The name of the campaign", "type": "string", - "description": "The name of the team." + "minLength": 1, + "maxLength": 50 }, "description": { + "description": "A description for the campaign", "type": "string", - "description": "The description of the team." + "minLength": 1, + "maxLength": 255 }, - "maintainers": { + "managers": { + "description": "The logins of the users to set as the campaign managers. At this time, only a single manager can be supplied.", "type": "array", - "description": "List GitHub IDs for organization members who will become team maintainers.", + "maxItems": 10, "items": { + "description": "The login of each manager", "type": "string" } }, - "repo_names": { + "team_managers": { + "description": "The slugs of the teams to set as the campaign managers.", "type": "array", - "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.", + "maxItems": 10, "items": { + "description": "The slug of each team", "type": "string" } }, - "privacy": { + "ends_at": { + "description": "The end date and time of the campaign. The date must be in the future.", "type": "string", - "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization. \nDefault for child team: `closed`", - "enum": [ - "secret", - "closed" - ] + "format": "date-time" }, - "permission": { + "contact_link": { + "description": "The contact link of the campaign. Must be a URI.", "type": "string", - "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", - "enum": [ - "pull", - "push", - "admin" - ], - "default": "pull" + "format": "uri", + "nullable": true }, - "parent_team_id": { - "type": "integer", - "description": "The ID of a team to set as the parent team." + "code_scanning_alerts": { + "description": "The code scanning alerts to include in this campaign", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "repository_id": { + "type": "integer", + "description": "The repository id" + }, + "alert_numbers": { + "type": "array", + "description": "The alert numbers", + "minItems": 1, + "items": { + "type": "integer" + } + } + }, + "required": [ + "repository_id", + "alert_numbers" + ] + }, + "nullable": true + }, + "generate_issues": { + "description": "If true, will automatically generate issues for the campaign. The default is false.", + "type": "boolean", + "default": false } }, "required": [ - "name" + "name", + "description", + "ends_at" + ], + "oneOf": [ + { + "required": [ + "code_scanning_alerts" + ] + }, + { + "required": [ + "secret_scanning_alerts" + ] + } ] }, - "example": { - "name": "Justice League", - "description": "A great team", - "permission": "admin", - "privacy": "closed" + "examples": { + "default": { + "value": { + "name": "Critical CodeQL alerts", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + "octocat" + ], + "ends_at": "2024-03-14T00:00:00Z", + "code_scanning_alerts": [ + { + "repository_id": 1296269, + "alert_numbers": [ + 1, + 2 + ] + } + ] + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "$ref": "#/components/schemas/campaign-summary" }, "examples": { "default": { - "$ref": "#/components/examples/team-full" + "$ref": "#/components/examples/campaign-summary" } } } } }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, "422": { - "$ref": "#/components/responses/validation_failed" + "description": "Unprocessable Entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } }, - "403": { - "$ref": "#/components/responses/forbidden" + "429": { + "description": "Too Many Requests" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "campaigns", + "subcategory": "campaigns" } } }, - "/orgs/{org}/teams/{team_slug}": { + "/orgs/{org}/campaigns/{campaign_number}": { "get": { - "summary": "Get a team by name", - "description": "Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`.", + "summary": "Get a campaign for an organization", + "description": "Gets a campaign for an organization.\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint.", "tags": [ - "teams" + "campaigns" ], - "operationId": "teams/get-by-name", + "operationId": "campaigns/get-campaign-summary", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-a-team-by-name" + "url": "https://docs.github.com/rest/campaigns/campaigns#get-a-campaign-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "name": "campaign_number", + "description": "The campaign number.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -13621,11 +15265,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "$ref": "#/components/schemas/campaign-summary" }, "examples": { "default": { - "$ref": "#/components/examples/team-full" + "$ref": "#/components/examples/campaign-summary" } } } @@ -13633,179 +15277,284 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Unprocessable Entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "campaigns", + "subcategory": "campaigns" } }, "patch": { - "summary": "Update a team", - "description": "To edit a team, the authenticated user must either be an organization owner or a team maintainer.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`.", + "summary": "Update a campaign", + "description": "Updates a campaign in an organization.\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint.", "tags": [ - "teams" + "campaigns" ], - "operationId": "teams/update-in-org", + "operationId": "campaigns/update-campaign", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#update-a-team" + "url": "https://docs.github.com/rest/campaigns/campaigns#update-a-campaign" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "name": "campaign_number", + "description": "The campaign number.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { "name": { + "description": "The name of the campaign", "type": "string", - "description": "The name of the team." + "minLength": 1, + "maxLength": 50 }, "description": { + "description": "A description for the campaign", "type": "string", - "description": "The description of the team." + "minLength": 1, + "maxLength": 255 }, - "privacy": { - "type": "string", - "description": "The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization.", - "enum": [ - "secret", - "closed" - ] + "managers": { + "description": "The logins of the users to set as the campaign managers. At this time, only a single manager can be supplied.", + "type": "array", + "maxItems": 10, + "items": { + "type": "string" + } }, - "permission": { + "team_managers": { + "description": "The slugs of the teams to set as the campaign managers.", + "type": "array", + "maxItems": 10, + "items": { + "description": "The slug of each team", + "type": "string" + } + }, + "ends_at": { + "description": "The end date and time of the campaign, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", "type": "string", - "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", - "enum": [ - "pull", - "push", - "admin" - ], - "default": "pull" + "format": "date-time" }, - "parent_team_id": { - "type": "integer", - "description": "The ID of a team to set as the parent team.", + "contact_link": { + "description": "The contact link of the campaign. Must be a URI.", + "type": "string", + "format": "uri", "nullable": true + }, + "state": { + "$ref": "#/components/schemas/campaign-state" } } }, - "example": { - "name": "new team name", - "description": "new team description", - "privacy": "closed" + "examples": { + "default": { + "value": { + "name": "Critical CodeQL alerts" + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "$ref": "#/components/schemas/campaign-summary" }, "examples": { "default": { - "$ref": "#/components/examples/team-full" + "$ref": "#/components/examples/campaign-summary" } } } } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Unprocessable Entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "campaigns", + "subcategory": "campaigns" } }, "delete": { - "summary": "Delete a team", - "description": "To delete a team, the authenticated user must be an organization owner or team maintainer.\n\nIf you are an organization owner, deleting a parent team will delete all of its child teams as well.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`.", + "summary": "Delete a campaign for an organization", + "description": "Deletes a campaign in an organization.\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint.", "tags": [ - "teams" + "campaigns" ], - "operationId": "teams/delete-in-org", + "operationId": "campaigns/delete-campaign", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#delete-a-team" + "url": "https://docs.github.com/rest/campaigns/campaigns#delete-a-campaign-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "name": "campaign_number", + "description": "The campaign number.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { "204": { - "description": "Response" + "description": "Deletion successful" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "campaigns", + "subcategory": "campaigns" } } }, - "/orgs/{org}/teams/{team_slug}/discussions": { + "/orgs/{org}/code-scanning/alerts": { "get": { - "summary": "List discussions", - "description": "List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`.", + "summary": "List code scanning alerts for an organization", + "description": "Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "teams" + "code-scanning" ], - "operationId": "teams/list-discussions-in-org", + "operationId": "code-scanning/list-alerts-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-discussions" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/tool-name" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/tool-guid" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" }, { "$ref": "#/components/parameters/page" }, { - "name": "pinned", + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "name": "state", + "description": "If specified, only code scanning alerts with this state will be returned.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-alert-state-query" + } + }, + { + "name": "sort", + "description": "The property by which to sort the results.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + { + "name": "severity", + "description": "If specified, only code scanning alerts with this severity will be returned.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-alert-severity" + } + }, + { + "name": "assignees", + "description": "Filter alerts by assignees. Provide a comma-separated list of user handles (e.g., `octocat` or `octocat,hubot`).\nUse `*` to list alerts with at least one assignee or `none` to list alerts with no assignees.\n", "in": "query", "required": false, - "description": "Pinned discussions only filter", "schema": { "type": "string" } @@ -13819,12 +15568,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/team-discussion" + "$ref": "#/components/schemas/code-scanning-organization-alert-items" } }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-items" + "$ref": "#/components/examples/code-scanning-organization-alert-items" } } } @@ -13834,127 +15583,67 @@ "$ref": "#/components/headers/link" } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussions" - } - }, - "post": { - "summary": "Create a discussion", - "description": "Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`.", - "tags": [ - "teams" - ], - "operationId": "teams/create-discussion-in-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#create-a-discussion" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" }, - { - "$ref": "#/components/parameters/team-slug" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "The discussion post's title." - }, - "body": { - "type": "string", - "description": "The discussion post's body text." - }, - "private": { - "type": "boolean", - "description": "Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post.", - "default": false - } - }, - "required": [ - "title", - "body" - ] - }, - "example": { - "title": "Our first team post", - "body": "Hi! This is an area for us to collaborate as a team." - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-discussion" - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-discussion" - } - } - } - } + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussions" + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": { + "/orgs/{org}/code-security/configurations": { "get": { - "summary": "Get a discussion", - "description": "Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`.", + "summary": "Get code security configurations for an organization", + "description": "Lists all code security configurations available in an organization.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ - "teams" + "code-security" ], - "operationId": "teams/get-discussion-in-org", + "operationId": "code-security/get-configurations-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-a-discussion" + "url": "https://docs.github.com/rest/code-security/configurations#get-code-security-configurations-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "name": "target_type", + "in": "query", + "description": "The target type of the code security configuration", + "required": false, + "schema": { + "type": "string", + "enum": [ + "global", + "all" + ], + "default": "all" + } + }, + { + "name": "per_page", + "in": "query", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "required": false, + "schema": { + "type": "integer", + "default": 30 + } }, { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" } ], "responses": { @@ -13963,86 +15652,334 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion" + "type": "array", + "items": { + "$ref": "#/components/schemas/code-security-configuration" + } }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion" + "$ref": "#/components/examples/code-security-configuration-list" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussions" + "category": "code-security", + "subcategory": "configurations" } }, - "patch": { - "summary": "Update a discussion", - "description": "Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`.", + "post": { + "summary": "Create a code security configuration", + "description": "Creates a code security configuration in an organization.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "teams" + "code-security" ], - "operationId": "teams/update-discussion-in-org", + "operationId": "code-security/create-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#update-a-discussion" + "url": "https://docs.github.com/rest/code-security/configurations#create-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "title": { + "name": { "type": "string", - "description": "The discussion post's title." + "description": "The name of the code security configuration. Must be unique within the organization." }, - "body": { + "description": { + "type": "string", + "description": "A description of the code security configuration", + "maxLength": 255 + }, + "advanced_security": { + "type": "string", + "description": "The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features.\n\n> [!WARNING]\n> `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features.\n", + "enum": [ + "enabled", + "disabled", + "code_security", + "secret_protection" + ], + "default": "disabled" + }, + "code_security": { + "type": "string", + "description": "The enablement status of GitHub Code Security features.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph": { + "type": "string", + "description": "The enablement status of Dependency Graph", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "enabled" + }, + "dependency_graph_autosubmit_action": { + "type": "string", + "description": "The enablement status of Automatic dependency submission", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "dependency_graph_autosubmit_action_options": { + "type": "object", + "description": "Feature options for Automatic dependency submission", + "properties": { + "labeled_runners": { + "type": "boolean", + "description": "Whether to use runners labeled with 'dependency-submission' or standard GitHub runners.", + "default": false + } + } + }, + "dependabot_alerts": { + "type": "string", + "description": "The enablement status of Dependabot alerts", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "dependabot_security_updates": { + "type": "string", + "description": "The enablement status of Dependabot security updates", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "dependabot_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of Dependabot delegated alert dismissal. Requires Dependabot alerts to be enabled.", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "code_scanning_options": { + "$ref": "#/components/schemas/code-scanning-options" + }, + "code_scanning_default_setup": { + "type": "string", + "description": "The enablement status of code scanning default setup", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "code_scanning_default_setup_options": { + "$ref": "#/components/schemas/code-scanning-default-setup-options" + }, + "code_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of code scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "not_set" + }, + "secret_protection": { + "type": "string", + "description": "The enablement status of GitHub Secret Protection features.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning": { + "type": "string", + "description": "The enablement status of secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_push_protection": { + "type": "string", + "description": "The enablement status of secret scanning push protection", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_delegated_bypass": { + "type": "string", + "description": "The enablement status of secret scanning delegated bypass", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_delegated_bypass_options": { + "type": "object", + "description": "Feature options for secret scanning delegated bypass", + "properties": { + "reviewers": { + "type": "array", + "description": "The bypass reviewers for secret scanning delegated bypass", + "items": { + "type": "object", + "required": [ + "reviewer_id", + "reviewer_type" + ], + "properties": { + "reviewer_id": { + "type": "integer", + "description": "The ID of the team or role selected as a bypass reviewer" + }, + "reviewer_type": { + "type": "string", + "description": "The type of the bypass reviewer", + "enum": [ + "TEAM", + "ROLE" + ] + } + } + } + } + } + }, + "secret_scanning_validity_checks": { + "type": "string", + "description": "The enablement status of secret scanning validity checks", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_non_provider_patterns": { + "type": "string", + "description": "The enablement status of secret scanning non provider patterns", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_generic_secrets": { + "type": "string", + "description": "The enablement status of Copilot secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of secret scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "private_vulnerability_reporting": { + "type": "string", + "description": "The enablement status of private vulnerability reporting", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "enforcement": { "type": "string", - "description": "The discussion post's body text." + "description": "The enforcement status for a security configuration", + "enum": [ + "enforced", + "unenforced" + ], + "default": "enforced" } - } + }, + "required": [ + "name", + "description" + ] }, - "example": { - "title": "Welcome to our first team post" + "examples": { + "default": { + "summary": "Example for a code security configuration", + "value": { + "name": "octo-org recommended settings", + "description": "This is a code security configuration for octo-org", + "advanced_security": "enabled", + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "secret_scanning": "enabled" + } + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Successfully created code security configuration", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion" + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-2" + "$ref": "#/components/examples/code-security-configuration" } } } @@ -14052,85 +15989,26 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussions" - } - }, - "delete": { - "summary": "Delete a discussion", - "description": "Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`.", - "tags": [ - "teams" - ], - "operationId": "teams/delete-discussion-in-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "discussions" + "category": "code-security", + "subcategory": "configurations" } } }, - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + "/orgs/{org}/code-security/configurations/defaults": { "get": { - "summary": "List discussion comments", - "description": "List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`.", + "summary": "Get default code security configurations", + "description": "Lists the default code security configurations for an organization.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ - "teams" + "code-security" ], - "operationId": "teams/list-discussion-comments-in-org", + "operationId": "code-security/get-default-configurations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-discussion-comments" + "url": "https://docs.github.com/rest/code-security/configurations#get-default-code-security-configurations" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "$ref": "#/components/parameters/direction" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -14139,139 +16017,128 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-discussion-comment" - } + "$ref": "#/components/schemas/code-security-default-configurations" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-comment-items" + "$ref": "#/components/examples/code-security-default-configurations" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussion-comments" + "category": "code-security", + "subcategory": "configurations" } - }, - "post": { - "summary": "Create a discussion comment", - "description": "Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`.", + } + }, + "/orgs/{org}/code-security/configurations/detach": { + "delete": { + "summary": "Detach configurations from repositories", + "description": "Detach code security configuration(s) from a set of repositories.\nRepositories will retain their settings but will no longer be associated with the configuration.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "teams" + "code-security" ], - "operationId": "teams/create-discussion-comment-in-org", + "operationId": "code-security/detach-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#create-a-discussion-comment" + "url": "https://docs.github.com/rest/code-security/configurations#detach-configurations-from-repositories" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "body": { - "type": "string", - "description": "The discussion comment's body text." + "selected_repository_ids": { + "type": "array", + "description": "An array of repository IDs to detach from configurations. Up to 250 IDs can be provided.", + "minItems": 1, + "maxItems": 250, + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } } - }, - "required": [ - "body" - ] + } }, - "example": { - "body": "Do you like apples?" + "examples": { + "default": { + "summary": "Example for detaching repositories from configurations.", + "value": { + "selected_repository_ids": [ + 32, + 91 + ] + } + } } } } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-discussion-comment" - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-discussion-comment" - } - } - } - } + "204": { + "$ref": "#/components/responses/no_content" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussion-comments" + "category": "code-security", + "subcategory": "configurations" } } }, - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": { + "/orgs/{org}/code-security/configurations/{configuration_id}": { "get": { - "summary": "Get a discussion comment", - "description": "Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`.", + "summary": "Get a code security configuration", + "description": "Gets a code security configuration available in an organization.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "teams" + "code-security" ], - "operationId": "teams/get-discussion-comment-in-org", + "operationId": "code-security/get-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-a-discussion-comment" + "url": "https://docs.github.com/rest/code-security/configurations#get-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/configuration-id" } ], "responses": { @@ -14280,437 +16147,664 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion-comment" + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-comment" + "$ref": "#/components/examples/code-security-configuration" } } } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussion-comments" + "category": "code-security", + "subcategory": "configurations" } }, "patch": { - "summary": "Update a discussion comment", - "description": "Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`.", + "summary": "Update a code security configuration", + "description": "Updates a code security configuration in an organization.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "teams" + "code-security" ], - "operationId": "teams/update-discussion-comment-in-org", + "operationId": "code-security/update-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#update-a-discussion-comment" + "url": "https://docs.github.com/rest/code-security/configurations#update-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/configuration-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "body": { + "name": { + "type": "string", + "description": "The name of the code security configuration. Must be unique within the organization." + }, + "description": { + "type": "string", + "description": "A description of the code security configuration", + "maxLength": 255 + }, + "advanced_security": { + "type": "string", + "description": "The enablement status of GitHub Advanced Security features. `enabled` will enable both Code Security and Secret Protection features.\n\n> [!WARNING]\n> `code_security` and `secret_protection` are deprecated values for this field. Prefer the individual `code_security` and `secret_protection` fields to set the status of these features.\n", + "enum": [ + "enabled", + "disabled", + "code_security", + "secret_protection" + ] + }, + "code_security": { + "type": "string", + "description": "The enablement status of GitHub Code Security features.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph": { + "type": "string", + "description": "The enablement status of Dependency Graph", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph_autosubmit_action": { + "type": "string", + "description": "The enablement status of Automatic dependency submission", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph_autosubmit_action_options": { + "type": "object", + "description": "Feature options for Automatic dependency submission", + "properties": { + "labeled_runners": { + "type": "boolean", + "description": "Whether to use runners labeled with 'dependency-submission' or standard GitHub runners." + } + } + }, + "dependabot_alerts": { + "type": "string", + "description": "The enablement status of Dependabot alerts", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependabot_security_updates": { + "type": "string", + "description": "The enablement status of Dependabot security updates", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependabot_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of Dependabot delegated alert dismissal. Requires Dependabot alerts to be enabled.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "code_scanning_default_setup": { + "type": "string", + "description": "The enablement status of code scanning default setup", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "code_scanning_default_setup_options": { + "$ref": "#/components/schemas/code-scanning-default-setup-options" + }, + "code_scanning_options": { + "$ref": "#/components/schemas/code-scanning-options" + }, + "code_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of code scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ], + "default": "disabled" + }, + "secret_protection": { + "type": "string", + "description": "The enablement status of GitHub Secret Protection features.", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning": { + "type": "string", + "description": "The enablement status of secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_push_protection": { + "type": "string", + "description": "The enablement status of secret scanning push protection", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_delegated_bypass": { + "type": "string", + "description": "The enablement status of secret scanning delegated bypass", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_delegated_bypass_options": { + "type": "object", + "description": "Feature options for secret scanning delegated bypass", + "properties": { + "reviewers": { + "type": "array", + "description": "The bypass reviewers for secret scanning delegated bypass", + "items": { + "type": "object", + "required": [ + "reviewer_id", + "reviewer_type" + ], + "properties": { + "reviewer_id": { + "type": "integer", + "description": "The ID of the team or role selected as a bypass reviewer" + }, + "reviewer_type": { + "type": "string", + "description": "The type of the bypass reviewer", + "enum": [ + "TEAM", + "ROLE" + ] + } + } + } + } + } + }, + "secret_scanning_validity_checks": { + "type": "string", + "description": "The enablement status of secret scanning validity checks", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_non_provider_patterns": { + "type": "string", + "description": "The enablement status of secret scanning non-provider patterns", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_generic_secrets": { + "type": "string", + "description": "The enablement status of Copilot secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of secret scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "private_vulnerability_reporting": { + "type": "string", + "description": "The enablement status of private vulnerability reporting", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "enforcement": { "type": "string", - "description": "The discussion comment's body text." + "description": "The enforcement status for a security configuration", + "enum": [ + "enforced", + "unenforced" + ] } - }, - "required": [ - "body" - ] + } }, - "example": { - "body": "Do you like pineapples?" + "examples": { + "default": { + "summary": "Example for updating a code security configuration", + "value": { + "name": "octo-org recommended settings v2", + "secret_scanning": "disabled", + "code_scanning_default_setup": "enabled" + } + } } } } }, "responses": { "200": { - "description": "Response", + "description": "Response when a configuration is updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion-comment" + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-comment-2" + "$ref": "#/components/examples/code-security-configuration-updated" } } } } + }, + "204": { + "description": "Response when no new updates are made" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "teams", - "subcategory": "discussion-comments" + "category": "code-security", + "subcategory": "configurations" } }, "delete": { - "summary": "Delete a discussion comment", - "description": "Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`.", + "summary": "Delete a code security configuration", + "description": "Deletes the desired code security configuration from an organization.\nRepositories attached to the configuration will retain their settings but will no longer be associated with\nthe configuration.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "teams" + "code-security" ], - "operationId": "teams/delete-discussion-comment-in-org", + "operationId": "code-security/delete-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion-comment" + "url": "https://docs.github.com/rest/code-security/configurations#delete-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/configuration-id" } ], "responses": { "204": { - "description": "Response" + "$ref": "#/components/responses/no_content" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "discussion-comments" + "category": "code-security", + "subcategory": "configurations" } } }, - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { - "get": { - "summary": "List reactions for a team discussion comment", - "description": "List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`.", + "/orgs/{org}/code-security/configurations/{configuration_id}/attach": { + "post": { + "summary": "Attach a configuration to repositories", + "description": "Attach a code security configuration to a set of repositories. If the repositories specified are already attached to a configuration, they will be re-attached to the provided configuration.\n\nIf insufficient GHAS licenses are available to attach the configuration to a repository, only free features will be enabled.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "reactions" + "code-security" ], - "operationId": "reactions/list-for-team-discussion-comment-in-org", + "operationId": "code-security/attach-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment" + "url": "https://docs.github.com/rest/code-security/configurations#attach-a-configuration-to-repositories" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "$ref": "#/components/parameters/comment-number" - }, - { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/configuration-id" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "scope": { + "type": "string", + "description": "The type of repositories to attach the configuration to. `selected` means the configuration will be attached to only the repositories specified by `selected_repository_ids`", + "enum": [ + "all", + "all_without_configurations", + "public", + "private_or_internal", + "selected" + ] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository IDs to attach the configuration to. You can only provide a list of repository ids when the `scope` is set to `selected`.", + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } } }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction-items" + "required": [ + "scope" + ] + }, + "examples": { + "default": { + "summary": "Example for attaching a configuration to some repositories", + "value": { + "scope": "selected", + "selected_repository_ids": [ + 32, + 91 + ] } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, + "responses": { + "202": { + "$ref": "#/components/responses/accepted" + } + }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "code-security", + "subcategory": "configurations" } - }, - "post": { - "summary": "Create reaction for a team discussion comment", - "description": "Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`.", + } + }, + "/orgs/{org}/code-security/configurations/{configuration_id}/defaults": { + "put": { + "summary": "Set a code security configuration as a default for an organization", + "description": "Sets a code security configuration as a default to be applied to new repositories in your organization.\n\nThis configuration will be applied to the matching repository type (all, none, public, private and internal) by default when they are created.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "reactions" + "code-security" ], - "operationId": "reactions/create-for-team-discussion-comment-in-org", + "operationId": "code-security/set-configuration-as-default", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion-comment" + "url": "https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/configuration-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "content": { + "default_for_new_repos": { "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment.", + "description": "Specify which types of repository this security configuration should be applied to by default.", "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" + "all", + "none", + "private_and_internal", + "public" ] } - }, - "required": [ - "content" - ] + } }, - "example": { - "content": "heart" + "examples": { + "default": { + "summary": "Set this configuration to be enabled by default on all new repositories.", + "value": { + "default_for_new_repos": "all" + } + } } } } }, "responses": { "200": { - "description": "Response", + "description": "Default successfully changed.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" + "type": "object", + "properties": { + "default_for_new_repos": { + "type": "string", + "description": "Specifies which types of repository this security configuration is applied to by default.", + "enum": [ + "all", + "none", + "private_and_internal", + "public" + ] + }, + "configuration": { + "$ref": "#/components/schemas/code-security-configuration" + } } - } - } - } - }, - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "value": { + "default_for_new_repos": "all", + "configuration": { + "$ref": "#/components/examples/code-security-configuration" + } + } } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "code-security", + "subcategory": "configurations" } } }, - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": { - "delete": { - "summary": "Delete team discussion comment reaction", - "description": "**Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`.\n\nDelete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "/orgs/{org}/code-security/configurations/{configuration_id}/repositories": { + "get": { + "summary": "Get repositories associated with a code security configuration", + "description": "Lists the repositories associated with a code security configuration in an organization.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ - "reactions" + "code-security" ], - "operationId": "reactions/delete-for-team-discussion-comment", + "operationId": "code-security/get-repositories-for-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#delete-team-discussion-comment-reaction" + "url": "https://docs.github.com/rest/code-security/configurations#get-repositories-associated-with-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/configuration-id" }, { - "$ref": "#/components/parameters/discussion-number" + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 30 + } }, { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/pagination-before" }, { - "$ref": "#/components/parameters/reaction-id" + "$ref": "#/components/parameters/pagination-after" + }, + { + "name": "status", + "description": "A comma-separated list of statuses. If specified, only repositories with these attachment statuses will be returned.\n\nCan be: `all`, `attached`, `attaching`, `detached`, `removed`, `enforced`, `failed`, `updating`, `removed_by_enterprise`", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all" + } } ], "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null - } - } - }, - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { - "get": { - "summary": "List reactions for a team discussion", - "description": "List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`.", - "tags": [ - "reactions" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-security-configuration-repositories" + } + }, + "examples": { + "default": { + "summary": "Example of code security configuration repositories", + "value": [ + { + "status": "attached", + "repository": { + "$ref": "#/components/examples/simple-repository" + } + } + ] + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "code-security", + "subcategory": "configurations" + } + } + }, + "/orgs/{org}/codespaces": { + "get": { + "summary": "List codespaces for the organization", + "description": "Lists the codespaces associated to a specified organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "codespaces" ], - "operationId": "reactions/list-for-team-discussion-in-org", + "operationId": "codespaces/list-in-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion" + "url": "https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization" }, "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/org" } ], "responses": { @@ -14719,204 +16813,317 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/codespaces-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } - }, - "post": { - "summary": "Create reaction for a team discussion", - "description": "Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`.", + } + }, + "/orgs/{org}/codespaces/access": { + "put": { + "summary": "Manage access control for organization codespaces", + "description": "Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility.\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "reactions" + "codespaces" ], - "operationId": "reactions/create-for-team-discussion-in-org", + "operationId": "codespaces/set-codespaces-access", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion" + "url": "https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/discussion-number" } ], + "deprecated": true, "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "content": { + "visibility": { "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion.", + "description": "Which users can access codespaces in the organization. `disabled` means that no users can access codespaces in the organization.", "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" + "disabled", + "selected_members", + "all_members", + "all_members_and_outside_collaborators" ] + }, + "selected_usernames": { + "type": "array", + "description": "The usernames of the organization members who should have access to codespaces in the organization. Required when `visibility` is `selected_members`. The provided list of usernames will replace any existing value.", + "items": { + "type": "string" + }, + "maxItems": 100 } }, "required": [ - "content" + "visibility" ] }, - "example": { - "content": "heart" + "examples": { + "default": { + "value": { + "visibility": "selected_members", + "selected_usernames": [ + "johnDoe", + "atomIO" + ] + } + } } } } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } + "204": { + "description": "Response when successfully modifying permissions." }, - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } + "304": { + "$ref": "#/components/responses/not_modified" + }, + "400": { + "description": "Users are neither members nor collaborators of this organization." + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "codespaces", + "subcategory": "organizations" } } }, - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": { - "delete": { - "summary": "Delete team discussion reaction", - "description": "**Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`.\n\nDelete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "/orgs/{org}/codespaces/access/selected_users": { + "post": { + "summary": "Add users to Codespaces access for an organization", + "description": "Codespaces for the specified users will be billed to the organization.\n\nTo use this endpoint, the access settings for the organization must be set to `selected_members`.\nFor information on how to change this setting, see \"[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "reactions" + "codespaces" ], - "operationId": "reactions/delete-for-team-discussion", + "operationId": "codespaces/set-codespaces-access-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#delete-team-discussion-reaction" + "url": "https://docs.github.com/rest/codespaces/organizations#add-users-to-codespaces-access-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + } + ], + "deprecated": true, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_usernames": { + "type": "array", + "description": "The usernames of the organization members whose codespaces be billed to the organization.", + "items": { + "type": "string" + }, + "maxItems": 100 + } + }, + "required": [ + "selected_usernames" + ] + }, + "examples": { + "default": { + "value": { + "selected_usernames": [ + "johnDoe", + "atomIO" + ] + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Response when successfully modifying permissions." }, - { - "$ref": "#/components/parameters/team-slug" + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "$ref": "#/components/parameters/discussion-number" + "400": { + "description": "Users are neither members nor collaborators of this organization." + }, + "404": { + "$ref": "#/components/responses/not_found" }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" + } + }, + "delete": { + "summary": "Remove users from Codespaces access for an organization", + "description": "Codespaces for the specified users will no longer be billed to the organization.\n\nTo use this endpoint, the access settings for the organization must be set to `selected_members`.\nFor information on how to change this setting, see \"[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/delete-codespaces-access-users", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/organizations#remove-users-from-codespaces-access-for-an-organization" + }, + "deprecated": true, + "parameters": [ { - "$ref": "#/components/parameters/reaction-id" + "$ref": "#/components/parameters/org" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_usernames": { + "type": "array", + "description": "The usernames of the organization members whose codespaces should not be billed to the organization.", + "items": { + "type": "string" + }, + "maxItems": 100 + } + }, + "required": [ + "selected_usernames" + ] + }, + "examples": { + "default": { + "value": { + "selected_usernames": [ + "johnDoe", + "atomIO" + ] + } + } + } + } + } + }, "responses": { "204": { - "description": "Response" + "description": "Response when successfully modifying permissions." + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "400": { + "description": "Users are neither members nor collaborators of this organization." + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } } }, - "/orgs/{org}/teams/{team_slug}/invitations": { + "/orgs/{org}/codespaces/secrets": { "get": { - "summary": "List pending team invitations", - "description": "The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`.", + "summary": "List organization secrets", + "description": "Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted\nvalues.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/list-pending-invitations-in-org", + "operationId": "codespaces/list-org-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-pending-team-invitations" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets" }, "parameters": [ { "$ref": "#/components/parameters/org" }, - { - "$ref": "#/components/parameters/team-slug" - }, { "$ref": "#/components/parameters/per-page" }, @@ -14930,14 +17137,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-invitation" + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespaces-org-secret" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/organization-invitation-items" + "$ref": "#/components/examples/repo-codespaces-secret-paginated" } } } @@ -14951,54 +17170,27 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "members" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/teams/{team_slug}/members": { + "/orgs/{org}/codespaces/secrets/public-key": { "get": { - "summary": "List team members", - "description": "Team members will include the members of child teams.\n\nTo list members in a team, the team must be visible to the authenticated user.", + "summary": "Get an organization public key", + "description": "Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets.\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/list-members-in-org", + "operationId": "codespaces/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-team-members" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "name": "role", - "description": "Filters members returned by their role in the team. Can be one of: \n\\* `member` - normal members of the team. \n\\* `maintainer` - team maintainers. \n\\* `all` - all members of the team.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "member", - "maintainer", - "all" - ], - "default": "all" - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -15007,57 +17199,43 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/codespaces-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/codespaces-public-key" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "members" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/teams/{team_slug}/memberships/{username}": { + "/orgs/{org}/codespaces/secrets/{secret_name}": { "get": { - "summary": "Get team membership for a user", - "description": "Team members will include the members of child teams.\n\nTo get a user's membership with a team, the team must be visible to the authenticated user.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`.\n\n**Note:**\nThe response contains the `state` of the membership and the member's `role`.\n\nThe `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team).", + "summary": "Get an organization secret", + "description": "Gets an organization development environment secret without revealing its encrypted value.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/get-membership-for-user-in-org", + "operationId": "codespaces/get-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -15066,66 +17244,95 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-membership" + "$ref": "#/components/schemas/codespaces-org-secret" }, "examples": { - "response-if-user-is-a-team-maintainer": { - "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + "default": { + "$ref": "#/components/examples/repo-codespaces-secret" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "description": "if user has no team membership" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "members" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } }, "put": { - "summary": "Add or update team membership for a user", - "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nAdds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nAn organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the \"pending\" state until the person accepts the invitation, at which point the membership will transition to the \"active\" state and the user will be added as a member of the team.\n\nIf the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`.", + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/add-or-update-membership-for-user-in-org", + "operationId": "codespaces/create-or-update-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "role": { + "encrypted_value": { "type": "string", - "description": "The role that this user should have in the team. Can be one of: \n\\* `member` - a normal member of the team. \n\\* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.", + "description": "The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "The ID of the key you used to encrypt the secret." + }, + "visibility": { + "type": "string", + "description": "Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret.", "enum": [ - "member", - "maintainer" - ], - "default": "member" + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository IDs that can access the organization secret. You can only provide a list of repository IDs when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "visibility" + ] + }, + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] } } } @@ -15133,103 +17340,97 @@ } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-membership" + "$ref": "#/components/schemas/empty-object" }, "examples": { - "response-if-users-membership-with-team-is-now-pending": { - "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + "default": { + "value": null } } } } }, - "403": { - "description": "Forbidden if team synchronization is set up" + "204": { + "description": "Response when updating a secret" + }, + "404": { + "$ref": "#/components/responses/not_found" }, "422": { - "description": "Unprocessable Entity if you attempt to add an organization to a team" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "members" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } }, "delete": { - "summary": "Remove team membership for a user", - "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`.", + "summary": "Delete an organization secret", + "description": "Deletes an organization development environment secret using the secret name.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/remove-membership-for-user-in-org", + "operationId": "codespaces/delete-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#delete-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/secret-name" } ], "responses": { "204": { "description": "Response" }, - "403": { - "description": "Forbidden if team synchronization is set up" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": "members" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/teams/{team_slug}/projects": { + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories": { "get": { - "summary": "List team projects", - "description": "Lists the organization projects for a team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`.", + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility`\nfor repository access to a secret is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/list-projects-in-org", + "operationId": "codespaces/list-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-team-projects" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/secret-name" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -15238,367 +17439,364 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-project" + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/team-project-items" + "$ref": "#/components/examples/public-repository-paginated" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "teams", - "subcategory": null + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } - } - }, - "/orgs/{org}/teams/{team_slug}/projects/{project_id}": { - "get": { - "summary": "Check team permissions for a project", - "description": "Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`.", + }, + "put": { + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization development environment secret when the `visibility`\nfor repository access is set to `selected`. The visibility is set when you [Create\nor update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret).\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/check-permissions-for-project-in-org", + "operationId": "codespaces/set-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/project-id" + "$ref": "#/components/parameters/secret-name" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-project" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "integer" + } + } }, - "examples": { - "default": { - "$ref": "#/components/examples/team-project" + "required": [ + "selected_repository_ids" + ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + 64780797 + ] } } } } + } + }, + "responses": { + "204": { + "description": "Response" }, "404": { - "description": "Not Found if project is not managed by this team" + "$ref": "#/components/responses/not_found" + }, + "409": { + "description": "Conflict when visibility type not set to selected" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "teams", - "subcategory": null + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } - }, + } + }, + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": { "put": { - "summary": "Add or update team project permissions", - "description": "Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`.", + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret).\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/add-or-update-project-permissions-in-org", + "operationId": "codespaces/add-selected-repo-to-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#add-selected-repository-to-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/secret-name" }, { - "$ref": "#/components/parameters/project-id" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permission": { - "type": "string", - "description": "The permission to grant to the team for this project. Can be one of: \n\\* `read` - team members can read, but not write to or administer this project. \n\\* `write` - team members can read and write, but not administer this project. \n\\* `admin` - team members can read, write and administer this project. \nDefault: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", - "enum": [ - "read", - "write", - "admin" - ] - } - }, - "nullable": true - } + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" } } - }, + ], "responses": { "204": { - "description": "Response" + "description": "No Content when repository was added to the selected list" }, - "403": { - "description": "Forbidden if the project is not owned by the organization", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } - } - }, - "examples": { - "response-if-the-project-is-not-owned-by-the-organization": { - "value": { - "message": "Must have admin rights to Repository.", - "documentation_url": "https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions" - } - } - } - } - } + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "description": "Conflict when visibility type is not set to selected" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "teams", - "subcategory": null + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } }, "delete": { - "summary": "Remove a project from a team", - "description": "Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`.", + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization development environment secret when the `visibility`\nfor repository access is set to `selected`. The visibility is set when you [Create\nor update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret).\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "teams" + "codespaces" ], - "operationId": "teams/remove-project-in-org", + "operationId": "codespaces/remove-selected-repo-from-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/secret-name" }, { - "$ref": "#/components/parameters/project-id" + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { "204": { - "description": "Response" + "description": "Response when repository was removed from the selected list" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "description": "Conflict when visibility type not set to selected" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/teams/{team_slug}/repos": { + "/orgs/{org}/copilot/billing": { "get": { - "summary": "List team repositories", - "description": "Lists a team's repositories visible to the authenticated user.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`.", + "summary": "Get Copilot seat information and settings for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets information about an organization's Copilot subscription, including seat breakdown\nand feature policies. To configure these settings, go to your organization's settings on GitHub.com.\nFor more information, see \"[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization).\"\n\nOnly organization owners can view details about the organization's Copilot Business or Copilot Enterprise subscription.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint.", "tags": [ - "teams" + "copilot" ], - "operationId": "teams/list-repos-in-org", + "operationId": "copilot/get-copilot-organization-details", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-team-repositories" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Response", + "description": "OK", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "$ref": "#/components/schemas/copilot-organization-details" }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/copilot-organization-details" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "There is a problem with your account's associated payment method." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + "/orgs/{org}/copilot/billing/seats": { "get": { - "summary": "Check team permissions for a repository", - "description": "Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked.\n\nYou can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header.\n\nIf a team doesn't have permission for the repository, you will receive a `404 Not Found` response status.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.", + "summary": "List all Copilot seat assignments for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nLists all Copilot seats for which an organization with a Copilot Business or Copilot Enterprise subscription is currently being billed.\nOnly organization owners can view assigned seats.\n\nEach seat object contains information about the assigned user's most recent Copilot activity. Users must have telemetry enabled in their IDE for Copilot in the IDE activity to be reflected in `last_activity_at`.\nFor more information about activity data, see [Metrics data properties for GitHub Copilot](https://docs.github.com/copilot/reference/metrics-data).\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint.", "tags": [ - "teams" + "copilot" ], - "operationId": "teams/check-permissions-for-repo-in-org", + "operationId": "copilot/list-copilot-seats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#check-team-permissions-for-a-repository" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/repo" + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 50 + } } ], "responses": { "200": { - "description": "Alternative response with repository permissions", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-repository" + "type": "object", + "properties": { + "total_seats": { + "type": "integer", + "description": "Total number of Copilot seats for the organization currently being billed." + }, + "seats": { + "type": "array", + "items": { + "$ref": "#/components/schemas/copilot-seat-details" + } + } + } }, "examples": { - "alternative-response-with-repository-permissions": { - "$ref": "#/components/examples/team-repository-alternative-response-with-repository-permissions" + "default": { + "$ref": "#/components/examples/copilot-seats-list" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "204": { - "description": "Response if team has permission for the repository. This is the response when the repository media type hasn't been provded in the Accept header." + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { - "description": "Not Found if team does not have permission for the repository" + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "copilot", + "subcategory": "copilot-user-management" } - }, - "put": { - "summary": "Add or update team repository permissions", - "description": "To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.\n\nFor more information about the permission levels, see \"[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)\".", + } + }, + "/orgs/{org}/copilot/billing/selected_teams": { + "post": { + "summary": "Add teams to the Copilot subscription for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nPurchases a GitHub Copilot seat for all users within each specified team.\nThe organization will be billed for each seat based on the organization's Copilot plan. For more information about Copilot pricing, see \"[About billing for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/about-billing-for-github-copilot-in-your-organization).\"\n\nOnly organization owners can purchase Copilot seats for their organization members. The organization must have a Copilot Business or Copilot Enterprise subscription and a configured suggestion matching policy.\nFor more information about setting up a Copilot subscription, see \"[Subscribing to Copilot for your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/subscribing-to-copilot-for-your-organization).\"\nFor more information about setting a suggestion matching policy, see \"[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/setting-policies-for-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#policies-for-suggestion-matching).\"\n\nThe response contains the total number of new seats that were created and existing seats that were refreshed.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint.", "tags": [ - "teams" + "copilot" ], - "operationId": "teams/add-or-update-repo-permissions-in-org", + "operationId": "copilot/add-copilot-seats-for-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#add-or-update-team-repository-permissions" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" } ], "requestBody": { @@ -15607,142 +17805,300 @@ "schema": { "type": "object", "properties": { - "permission": { - "type": "string", - "description": "The permission to grant the team on this repository. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer this repository. \n\\* `push` - team members can pull and push, but not administer this repository. \n\\* `admin` - team members can pull, push and administer this repository. \n\\* `maintain` - team members can manage the repository without access to sensitive or destructive actions. Recommended for project managers. Only applies to repositories owned by organizations. \n\\* `triage` - team members can proactively manage issues and pull requests without write access. Recommended for contributors who triage a repository. Only applies to repositories owned by organizations. \n \nIf no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository.", - "enum": [ - "pull", - "push", - "admin", - "maintain", - "triage" + "selected_teams": { + "type": "array", + "description": "List of team names within the organization to which to grant access to GitHub Copilot.", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": [ + "selected_teams" + ] + }, + "examples": { + "default": { + "value": { + "selected_teams": [ + "engteam1", + "engteam2", + "engteam3" ] } } } } - } + }, + "required": true }, "responses": { - "204": { - "description": "Response" + "201": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The total number of seats created for members of the specified team(s).", + "properties": { + "seats_created": { + "type": "integer" + } + }, + "required": [ + "seats_created" + ] + }, + "examples": { + "default": { + "value": { + "seats_created": 5 + } + } + } + } + } + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "copilot", + "subcategory": "copilot-user-management" } }, "delete": { - "summary": "Remove a repository from a team", - "description": "If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.", + "summary": "Remove teams from the Copilot subscription for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nSets seats for all members of each team specified to \"pending cancellation\".\nThis will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle unless they retain access through another team.\nFor more information about disabling access to Copilot, see \"[Revoking access to Copilot for members of your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/revoking-access-to-copilot-for-members-of-your-organization).\"\n\nOnly organization owners can cancel Copilot seats for their organization members.\n\nThe response contains the total number of seats set to \"pending cancellation\".\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint.", "tags": [ - "teams" + "copilot" ], - "operationId": "teams/remove-repo-in-org", + "operationId": "copilot/cancel-copilot-seat-assignment-for-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#remove-a-repository-from-a-team" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_teams": { + "type": "array", + "description": "The names of teams from which to revoke access to GitHub Copilot.", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": [ + "selected_teams" + ] + }, + "examples": { + "default": { + "value": { + "selected_teams": [ + "engteam1", + "engteam2", + "engteam3" + ] + } + } + } + } + }, + "required": true + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The total number of seats set to \"pending cancellation\" for members of the specified team(s).", + "properties": { + "seats_cancelled": { + "type": "integer" + } + }, + "required": [ + "seats_cancelled" + ] + }, + "examples": { + "default": { + "value": { + "seats_cancelled": 5 + } + } + } + } + } + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/orgs/{org}/teams/{team_slug}/team-sync/group-mappings": { - "get": { - "summary": "List IdP groups for a team", - "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nList IdP groups connected to a team on GitHub.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`.", + "/orgs/{org}/copilot/billing/selected_users": { + "post": { + "summary": "Add users to the Copilot subscription for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nPurchases a GitHub Copilot seat for each user specified.\nThe organization will be billed for each seat based on the organization's Copilot plan. For more information about Copilot pricing, see \"[About billing for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/about-billing-for-github-copilot-in-your-organization).\"\n\nOnly organization owners can purchase Copilot seats for their organization members. The organization must have a Copilot Business or Copilot Enterprise subscription and a configured suggestion matching policy.\nFor more information about setting up a Copilot subscription, see \"[Subscribing to Copilot for your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/subscribing-to-copilot-for-your-organization).\"\nFor more information about setting a suggestion matching policy, see \"[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/setting-policies-for-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#policies-for-suggestion-matching).\"\n\nThe response contains the total number of new seats that were created and existing seats that were refreshed.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint.", "tags": [ - "teams" + "copilot" ], - "operationId": "teams/list-idp-groups-in-org", + "operationId": "copilot/add-copilot-seats-for-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_usernames": { + "type": "array", + "description": "The usernames of the organization members to be granted access to GitHub Copilot.", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": [ + "selected_usernames" + ] + }, + "examples": { + "default": { + "value": { + "selected_usernames": [ + "cooluser1", + "hacker2", + "octocat" + ] + } + } + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/group-mapping" + "type": "object", + "description": "The total number of seats created for the specified user(s).", + "properties": { + "seats_created": { + "type": "integer" + } + }, + "required": [ + "seats_created" + ] }, "examples": { "default": { - "$ref": "#/components/examples/group-mapping-3" + "value": { + "seats_created": 5 + } } } } } + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured." } }, "x-github": { - "githubCloudOnly": true, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "teams", - "subcategory": "team-sync" + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "copilot", + "subcategory": "copilot-user-management" } }, - "patch": { - "summary": "Create or update IdP group connections", - "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nCreates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`.", + "delete": { + "summary": "Remove users from the Copilot subscription for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nSets seats for all users specified to \"pending cancellation\".\nThis will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle unless they retain access through team membership.\nFor more information about disabling access to Copilot, see \"[Revoking access to Copilot for members of your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/revoking-access-to-copilot-for-members-of-your-organization).\"\n\nOnly organization owners can cancel Copilot seats for their organization members.\n\nThe response contains the total number of seats set to \"pending cancellation\".\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint.", "tags": [ - "teams" + "copilot" ], - "operationId": "teams/create-or-update-idp-group-connections-in-org", + "operationId": "copilot/cancel-copilot-seat-assignment-for-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" } ], "requestBody": { @@ -15751,152 +18107,130 @@ "schema": { "type": "object", "properties": { - "groups": { + "selected_usernames": { "type": "array", - "description": "The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove.", + "description": "The usernames of the organization members for which to revoke access to GitHub Copilot.", "items": { - "type": "object", - "properties": { - "group_id": { - "type": "string", - "description": "ID of the IdP group." - }, - "group_name": { - "type": "string", - "description": "Name of the IdP group." - }, - "group_description": { - "type": "string", - "description": "Description of the IdP group." - } - }, - "required": [ - "group_id", - "group_name", - "group_description" - ] - } + "type": "string" + }, + "minItems": 1 } }, - "additionalProperties": false + "required": [ + "selected_usernames" + ] }, - "example": { - "groups": [ - { - "group_id": "123", - "group_name": "Octocat admins", - "group_description": "string" + "examples": { + "default": { + "value": { + "selected_usernames": [ + "cooluser1", + "hacker2", + "octocat" + ] } - ] + } } } - } + }, + "required": true }, "responses": { "200": { - "description": "Response", + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/group-mapping" + "type": "object", + "description": "The total number of seats set to \"pending cancellation\" for the specified users.", + "properties": { + "seats_cancelled": { + "type": "integer" + } + }, + "required": [ + "seats_cancelled" + ] }, "examples": { "default": { - "$ref": "#/components/examples/group-mapping" + "value": { + "seats_cancelled": 5 + } } } } } - } - }, - "x-github": { - "githubCloudOnly": true, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "teams", - "subcategory": "team-sync" - } - } - }, - "/orgs/{org}/teams/{team_slug}/teams": { - "get": { - "summary": "List child teams", - "description": "Lists the child teams of the team specified by `{team_slug}`.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`.", - "tags": [ - "teams" - ], - "operationId": "teams/list-child-in-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-child-teams" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" }, - { - "$ref": "#/components/parameters/team-slug" + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "$ref": "#/components/parameters/per-page" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "if child teams exist", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } - }, - "examples": { - "response-if-child-teams-exist": { - "$ref": "#/components/examples/team-items-response-if-child-teams-exist" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, the seat management setting is set to enable Copilot for all users or is unconfigured, or a user's seat cannot be cancelled because it was assigned to them via a team." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/projects/columns/cards/{card_id}": { + "/orgs/{org}/copilot/metrics": { "get": { - "summary": "Get a project card", - "description": "", + "summary": "Get Copilot metrics for an organization", + "description": "Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions.\n\n> [!NOTE]\n> This endpoint will only return results for a given day if the organization contained **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day.\n\nThe response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day,\nand the response will only include data up until yesterday. In order for an end user to be counted towards these metrics,\nthey must have telemetry enabled in their IDE.\n\nTo access this endpoint, the Copilot Metrics API access policy must be enabled for the organization.\nOnly organization owners and owners and billing managers of the parent enterprise can view Copilot metrics.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint.", "tags": [ - "projects" + "copilot" ], - "operationId": "projects/get-card", + "operationId": "copilot/copilot-metrics-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#get-a-project-card" + "url": "https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/card-id" + "$ref": "#/components/parameters/org" + }, + { + "name": "since", + "description": "Show usage metrics since this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). Maximum value is 100 days ago.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "until", + "description": "Show usage metrics until this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) and should not preceed the `since` date if it is passed.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/page" + }, + { + "name": "per_page", + "description": "The number of days of metrics to display per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 100 + } } ], "responses": { @@ -15905,92 +18239,116 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project-card" + "type": "array", + "items": { + "$ref": "#/components/schemas/copilot-usage-metrics-day" + } }, "examples": { "default": { - "$ref": "#/components/examples/project-card" + "$ref": "#/components/examples/copilot-usage-metrics-for-day" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "500": { + "$ref": "#/components/responses/internal_error" }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/usage_metrics_api_disabled" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "cards" + "category": "copilot", + "subcategory": "copilot-metrics" } - }, - "patch": { - "summary": "Update an existing project card", - "description": "", + } + }, + "/orgs/{org}/dependabot/alerts": { + "get": { + "summary": "List Dependabot alerts for an organization", + "description": "Lists Dependabot alerts for an organization.\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/update-card", + "operationId": "dependabot/list-alerts-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#update-a-project-card" + "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/card-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-states" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-severities" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-ecosystems" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-packages" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-epss" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-artifact-registry-urls" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-artifact-registry" + }, + { + "$ref": "#/components/parameters/dependabot-alert-org-scope-comma-separated-has" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-runtime-risk" + }, + { + "$ref": "#/components/parameters/dependabot-alert-scope" + }, + { + "$ref": "#/components/parameters/dependabot-alert-sort" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/per-page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "note": { - "description": "The project card's note", - "example": "Update all gems", - "type": "string", - "nullable": true - }, - "archived": { - "description": "Whether or not the card is archived", - "example": false, - "type": "boolean" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project-card" + "type": "array", + "items": { + "$ref": "#/components/schemas/dependabot-alert-with-repository" + } }, "examples": { "default": { - "$ref": "#/components/examples/project-card" + "$ref": "#/components/examples/dependabot-alerts-for-organization" } } } @@ -15999,12 +18357,12 @@ "304": { "$ref": "#/components/responses/not_modified" }, + "400": { + "$ref": "#/components/responses/bad_request" + }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, "404": { "$ref": "#/components/responses/not_found" }, @@ -16015,255 +18373,139 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "cards" + "category": "dependabot", + "subcategory": "alerts" } - }, - "delete": { - "summary": "Delete a project card", - "description": "", + } + }, + "/orgs/{org}/dependabot/secrets": { + "get": { + "summary": "List organization secrets", + "description": "Lists all secrets available in an organization without revealing their\nencrypted values.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/delete-card", + "operationId": "dependabot/list-org-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#delete-a-project-card" + "url": "https://docs.github.com/rest/dependabot/secrets#list-organization-secrets" }, "parameters": [ { - "$ref": "#/components/parameters/card-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "description": "Forbidden", + "200": { + "description": "Response", "content": { "application/json": { "schema": { "type": "object", + "required": [ + "total_count", + "secrets" + ], "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" + "total_count": { + "type": "integer" }, - "errors": { + "secrets": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/organization-dependabot-secret" } } } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-dependabot-secret-paginated" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "cards" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/projects/columns/cards/{card_id}/moves": { - "post": { - "summary": "Move a project card", - "description": "", + "/orgs/{org}/dependabot/secrets/public-key": { + "get": { + "summary": "Get an organization public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to\nencrypt a secret before you can create or update secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/move-card", + "operationId": "dependabot/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#move-a-project-card" + "url": "https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key" }, "parameters": [ { - "$ref": "#/components/parameters/card-id" + "$ref": "#/components/parameters/org" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "position": { - "description": "The position of the card in a column. Can be one of: `top`, `bottom`, or `after:` to place after the specified card.", - "example": "bottom", - "type": "string", - "pattern": "^(?:top|bottom|after:\\d+)$" - }, - "column_id": { - "description": "The unique identifier of the column the card should be moved to", - "example": 42, - "type": "integer" - } - }, - "required": [ - "position" - ], - "type": "object" - } - } - } - }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - }, - "additionalProperties": false - } - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "resource": { - "type": "string" - }, - "field": { - "type": "string" - } - } - } - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "503": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/dependabot-public-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/dependabot-public-key" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "cards" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/projects/columns/{column_id}": { + "/orgs/{org}/dependabot/secrets/{secret_name}": { "get": { - "summary": "Get a project column", - "description": "", + "summary": "Get an organization secret", + "description": "Gets a single organization secret without revealing its encrypted value.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/get-column", + "operationId": "dependabot/get-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#get-a-project-column" + "url": "https://docs.github.com/rest/dependabot/secrets#get-an-organization-secret" }, "parameters": [ { - "$ref": "#/components/parameters/column-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -16272,199 +18514,186 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project-column" + "$ref": "#/components/schemas/organization-dependabot-secret" }, "examples": { "default": { - "$ref": "#/components/examples/project-column" + "$ref": "#/components/examples/organization-dependabot-secret" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "columns" + "category": "dependabot", + "subcategory": "secrets" } }, - "patch": { - "summary": "Update an existing project column", - "description": "", + "put": { + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/update-column", + "operationId": "dependabot/create-or-update-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#update-a-project-column" + "url": "https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret" }, "parameters": [ { - "$ref": "#/components/parameters/column-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "name": { - "description": "Name of the project column", - "example": "Remaining tasks", - "type": "string" + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + }, + "visibility": { + "type": "string", + "description": "Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret.", + "enum": [ + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret) endpoints. Use integers when possible, as strings are supported only to maintain backwards compatibility and may be removed in the future.", + "items": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } } }, "required": [ - "name" - ], - "type": "object" + "visibility" + ] + }, + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] + } + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project-column" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/project-column" + "value": null } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "columns" + "category": "dependabot", + "subcategory": "secrets" } }, "delete": { - "summary": "Delete a project column", - "description": "", + "summary": "Delete an organization secret", + "description": "Deletes a secret in an organization using the secret name.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/delete-column", + "operationId": "dependabot/delete-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#delete-a-project-column" + "url": "https://docs.github.com/rest/dependabot/secrets#delete-an-organization-secret" }, "parameters": [ { - "$ref": "#/components/parameters/column-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "responses": { "204": { "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "columns" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/projects/columns/{column_id}/cards": { + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { "get": { - "summary": "List project cards", - "description": "", + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility`\nfor repository access to a secret is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/list-cards", + "operationId": "dependabot/list-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#list-project-cards" + "url": "https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret" }, "parameters": [ { - "$ref": "#/components/parameters/column-id" + "$ref": "#/components/parameters/org" }, { - "name": "archived_state", - "description": "Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "all", - "archived", - "not_archived" - ], - "default": "not_archived" - } + "$ref": "#/components/parameters/secret-name" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -16473,294 +18702,203 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/project-card" + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/project-card-items" + "$ref": "#/components/examples/public-repository-paginated" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "cards" + "category": "dependabot", + "subcategory": "secrets" } }, - "post": { - "summary": "Create a project card", - "description": "", + "put": { + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization secret when the `visibility`\nfor repository access is set to `selected`. The visibility is set when you [Create\nor update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret).\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/create-card", + "operationId": "dependabot/set-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#create-a-project-card" + "url": "https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret" }, "parameters": [ { - "$ref": "#/components/parameters/column-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "note": { - "description": "The project card's note", - "example": "Update all gems", - "type": "string", - "nullable": true - } - }, - "required": [ - "note" - ] - }, - { - "type": "object", - "properties": { - "content_id": { - "description": "The unique identifier of the content associated with the card", - "example": 42, - "type": "integer" - }, - "content_type": { - "description": "The piece of content associated with the card", - "example": "PullRequest", - "type": "string" - } - }, - "required": [ - "content_id", - "content_type" - ] + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "integer" + } } + }, + "required": [ + "selected_repository_ids" ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + 64780797 + ] + } + } } } } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/project-card" - }, - "examples": { - "default": { - "$ref": "#/components/examples/project-card" - } - } - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "422": { - "description": "Validation failed", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/validation-error" - }, - { - "$ref": "#/components/schemas/validation-error-simple" - } - ] - } - } - } - }, - "503": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - } - } - } - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "cards" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/projects/columns/{column_id}/moves": { - "post": { - "summary": "Move a project column", - "description": "", + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + "put": { + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization secret when the `visibility` for\nrepository access is set to `selected`. The visibility is set when you [Create or\nupdate an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret).\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "projects" + "dependabot" ], - "operationId": "projects/move-column", + "operationId": "dependabot/add-selected-repo-to-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#move-a-project-column" + "url": "https://docs.github.com/rest/dependabot/secrets#add-selected-repository-to-an-organization-secret" }, "parameters": [ { - "$ref": "#/components/parameters/column-id" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "position": { - "description": "The position of the column in a project. Can be one of: `first`, `last`, or `after:` to place after the specified column.", - "example": "last", - "type": "string", - "pattern": "^(?:first|last|after:\\d+)$" - } - }, - "required": [ - "position" - ], - "type": "object" - } + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" } } - }, + ], "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - }, - "additionalProperties": false - } - } - } + "204": { + "description": "No Content when repository was added to the selected list" }, - "304": { - "$ref": "#/components/responses/not_modified" + "409": { + "description": "Conflict when visibility type is not set to selected" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization secret when the `visibility`\nfor repository access is set to `selected`. The visibility is set when you [Create\nor update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret).\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/remove-selected-repo-from-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/secret-name" }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Response when repository was removed from the selected list" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "409": { + "description": "Conflict when visibility type not set to selected" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "columns" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/projects/{project_id}": { + "/orgs/{org}/docker/conflicts": { "get": { - "summary": "Get a project", - "description": "Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "summary": "Get list of conflicting packages during Docker migration for organization", + "description": "Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint.", "tags": [ - "projects" + "packages" ], - "operationId": "projects/get", + "operationId": "packages/list-docker-migration-conflicting-packages-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#get-a-project" + "url": "https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/project-id" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -16769,19 +18907,19 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project" + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } }, "examples": { "default": { - "$ref": "#/components/examples/project-3" + "$ref": "#/components/examples/packages-for-org" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "403": { "$ref": "#/components/responses/forbidden" }, @@ -16791,198 +18929,110 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } - }, - "patch": { - "summary": "Update a project", - "description": "Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", - "operationId": "projects/update", + } + }, + "/orgs/{org}/events": { + "get": { + "summary": "List public organization events", + "description": "> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", "tags": [ - "projects" + "activity" ], + "operationId": "activity/list-public-org-events", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#update-a-project" + "url": "https://docs.github.com/rest/activity/events#list-public-organization-events" }, "parameters": [ { - "$ref": "#/components/parameters/project-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "name": { - "description": "Name of the project", - "example": "Week One Sprint", - "type": "string" - }, - "body": { - "description": "Body of the project", - "example": "This project represents the sprint of the first week in January", - "type": "string", - "nullable": true - }, - "state": { - "description": "State of the project; either 'open' or 'closed'", - "example": "open", - "type": "string" - }, - "organization_permission": { - "description": "The baseline permission that all organization members have on this project", - "type": "string", - "enum": [ - "read", - "write", - "admin", - "none" - ] - }, - "private": { - "description": "Whether or not this project can be seen by everyone.", - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project" + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } }, "examples": { - "default": { - "$ref": "#/components/examples/project-3" - } - } - } - } - }, - "404": { - "description": "Not Found if the authenticated user does not have access to the project" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } + "200-response": { + "$ref": "#/components/examples/public-org-events-items" } } } } - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "category": "activity", + "subcategory": "events" } - }, - "delete": { - "summary": "Delete a project", - "description": "Deletes a project board. Returns a `404 Not Found` status if projects are disabled.", - "operationId": "projects/delete", + } + }, + "/orgs/{org}/failed_invitations": { + "get": { + "summary": "List failed organization invitations", + "description": "The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure.", "tags": [ - "projects" + "orgs" ], + "operationId": "orgs/list-failed-invitations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#delete-a-project" + "url": "https://docs.github.com/rest/orgs/members#list-failed-organization-invitations" }, "parameters": [ { - "$ref": "#/components/parameters/project-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Delete Success" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "description": "Forbidden", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-invitation-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "410": { - "$ref": "#/components/responses/gone" - }, "404": { "$ref": "#/components/responses/not_found" } @@ -16990,48 +19040,26 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "category": "orgs", + "subcategory": "members" } } }, - "/projects/{project_id}/collaborators": { + "/orgs/{org}/hooks": { "get": { - "summary": "List project collaborators", - "description": "Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators.", + "summary": "List organization webhooks", + "description": "List webhooks for an organization.\n\nThe authenticated user must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "projects" + "orgs" ], - "operationId": "projects/list-collaborators", + "operationId": "orgs/list-webhooks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#list-project-collaborators" + "url": "https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks" }, "parameters": [ { - "$ref": "#/components/parameters/project-id" - }, - { - "name": "affiliation", - "description": "Filters the collaborators by their affiliation. Can be one of: \n\\* `outside`: Outside collaborators of a project that are not a member of the project's organization. \n\\* `direct`: Collaborators with permissions to a project, regardless of organization membership status. \n\\* `all`: All collaborators the authenticated user can see.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "outside", - "direct", - "all" - ], - "default": "all" - } + "$ref": "#/components/parameters/org" }, { "$ref": "#/components/parameters/per-page" @@ -17048,12 +19076,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/org-hook" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/org-hook-items" } } } @@ -17066,266 +19094,168 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "collaborators" + "category": "orgs", + "subcategory": "webhooks" } - } - }, - "/projects/{project_id}/collaborators/{username}": { - "put": { - "summary": "Add project collaborator", - "description": "Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator.", + }, + "post": { + "summary": "Create an organization webhook", + "description": "Create a hook that posts payloads in JSON format.\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or\nedit webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "projects" + "orgs" ], - "operationId": "projects/add-collaborator", + "operationId": "orgs/create-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#add-project-collaborator" + "url": "https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/project-id" - }, - { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "permission": { - "description": "The permission to grant the collaborator.", - "enum": [ - "read", - "write", - "admin" + "name": { + "type": "string", + "description": "Must be passed as \"web\"." + }, + "config": { + "type": "object", + "description": "Key/value pairs to provide settings for this webhook.", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + }, + "username": { + "type": "string", + "example": "\"kdaigle\"" + }, + "password": { + "type": "string", + "example": "\"password\"" + } + }, + "required": [ + "url" + ] + }, + "events": { + "type": "array", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. Set to `[\"*\"]` to receive all possible events.", + "default": [ + "push" ], - "default": "write", - "example": "write", - "type": "string" + "items": { + "type": "string" + } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true } }, - "nullable": true + "required": [ + "name", + "config" + ] + }, + "examples": { + "default": { + "value": { + "name": "web", + "active": true, + "events": [ + "push", + "pull_request" + ], + "config": { + "url": "http://example.com/webhook", + "content_type": "json" + } + } + } } } } }, "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "collaborators" - } - }, - "delete": { - "summary": "Remove user as a collaborator", - "description": "Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator.", - "tags": [ - "projects" - ], - "operationId": "projects/remove-collaborator", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#remove-project-collaborator" - }, - "parameters": [ - { - "$ref": "#/components/parameters/project-id" - }, - { - "$ref": "#/components/parameters/username" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "collaborators" - } - } - }, - "/projects/{project_id}/collaborators/{username}/permission": { - "get": { - "summary": "Get project permission for a user", - "description": "Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level.", - "tags": [ - "projects" - ], - "operationId": "projects/get-permission-for-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#get-project-permission-for-a-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/project-id" - }, - { - "$ref": "#/components/parameters/username" - } - ], - "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-collaborator-permission" + "$ref": "#/components/schemas/org-hook" }, "examples": { "default": { - "$ref": "#/components/examples/repository-collaborator-permission" + "$ref": "#/components/examples/org-hook" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/orgs/octocat/hooks/1", + "schema": { + "type": "string" + } + } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, "422": { "$ref": "#/components/responses/validation_failed" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "collaborators" + "category": "orgs", + "subcategory": "webhooks" } } }, - "/projects/{project_id}/columns": { + "/orgs/{org}/hooks/{hook_id}": { "get": { - "summary": "List project columns", - "description": "", + "summary": "Get an organization webhook", + "description": "Returns a webhook configured in an organization. To get only the webhook\n`config` properties, see \"[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization).\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "projects" + "orgs" ], - "operationId": "projects/list-columns", + "operationId": "orgs/get-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#list-project-columns" + "url": "https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/project-id" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/hook-id" } ], "responses": { @@ -17334,176 +19264,126 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/project-column" - } + "$ref": "#/components/schemas/org-hook" }, "examples": { "default": { - "$ref": "#/components/examples/project-column-items" + "$ref": "#/components/examples/org-hook" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "columns" + "category": "orgs", + "subcategory": "webhooks" } }, - "post": { - "summary": "Create a project column", - "description": "", + "patch": { + "summary": "Update an organization webhook", + "description": "Updates a webhook configured in an organization. When you update a webhook,\nthe `secret` will be overwritten. If you previously had a `secret` set, you must\nprovide the same `secret` or set a new `secret` or the secret will be removed. If\nyou are only updating individual webhook `config` properties, use \"[Update a webhook\nconfiguration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)\".\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "projects" + "orgs" ], - "operationId": "projects/create-column", + "operationId": "orgs/update-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#create-a-project-column" + "url": "https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/project-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/hook-id" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { + "type": "object", "properties": { + "config": { + "type": "object", + "description": "Key/value pairs to provide settings for this webhook.", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + }, + "required": [ + "url" + ] + }, + "events": { + "type": "array", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", + "default": [ + "push" + ], + "items": { + "type": "string" + } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true + }, "name": { - "description": "Name of the project column", - "example": "Remaining tasks", - "type": "string" + "type": "string", + "example": "\"web\"" + } + } + }, + "examples": { + "default": { + "value": { + "active": true, + "events": [ + "pull_request" + ] } - }, - "required": [ - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/project-column" - }, - "example": { - "url": "https://api.github.com/projects/columns/367", - "project_url": "https://api.github.com/projects/120", - "cards_url": "https://api.github.com/projects/columns/367/cards", - "id": 367, - "node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=", - "name": "To Do", - "created_at": "2016-09-05T14:18:44Z", - "updated_at": "2016-09-05T14:22:28Z" } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": "columns" - } - } - }, - "/rate_limit": { - "get": { - "summary": "Get rate limit status for the authenticated user", - "description": "**Note:** Accessing this endpoint does not count against your REST API rate limit.\n\n**Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object.", - "tags": [ - "rate-limit" - ], - "operationId": "rate-limit/get", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/rate-limit#get-rate-limit-status-for-the-authenticated-user" - }, - "parameters": [ - - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/rate-limit-overview" + "$ref": "#/components/schemas/org-hook" }, "examples": { "default": { - "$ref": "#/components/examples/rate-limit-overview" + "$ref": "#/components/examples/org-hook-2" } } } - }, - "headers": { - "X-RateLimit-Limit": { - "$ref": "#/components/headers/x-rate-limit-limit" - }, - "X-RateLimit-Remaining": { - "$ref": "#/components/headers/x-rate-limit-remaining" - }, - "X-RateLimit-Reset": { - "$ref": "#/components/headers/x-rate-limit-reset" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "422": { + "$ref": "#/components/responses/validation_failed" }, "404": { "$ref": "#/components/responses/not_found" @@ -17512,87 +19392,63 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "rate-limit", - "subcategory": null + "category": "orgs", + "subcategory": "webhooks" } - } - }, - "/reactions/{reaction_id}": { + }, "delete": { - "summary": "Delete a reaction (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Reactions API. We recommend migrating your existing code to use the new delete reactions endpoints. For more information, see this [blog post](https://developer.github.com/changes/2020-02-26-new-delete-reactions-endpoints/).\n\nOAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), when deleting a [team discussion](https://docs.github.com/rest/reference/teams#discussions) or [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments).", + "summary": "Delete an organization webhook", + "description": "Delete a webhook for an organization.\n\nThe authenticated user must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "reactions" + "orgs" ], - "operationId": "reactions/delete-legacy", + "operationId": "orgs/delete-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy" + "url": "https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/reaction-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/hook-id" } ], "responses": { "204": { "description": "Response" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-21", - "deprecationDate": "2020-02-26", - "category": "reactions", - "subcategory": null - }, - "deprecated": true + "category": "orgs", + "subcategory": "webhooks" + } } }, - "/repos/{owner}/{repo}": { + "/orgs/{org}/hooks/{hook_id}/config": { "get": { - "summary": "Get a repository", - "description": "When you pass the `scarlet-witch-preview` media type, requests to get a repository will also return the repository's code of conduct if it can be detected from the repository's code of conduct file.\n\nThe `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network.", + "summary": "Get a webhook configuration for an organization", + "description": "Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use \"[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook).\"\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get", + "operationId": "orgs/get-webhook-config-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-repository" + "url": "https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/hook-id" } ], "responses": { @@ -17601,191 +19457,74 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "$ref": "#/components/schemas/webhook-config" }, "examples": { - "default-response": { - "$ref": "#/components/examples/full-repository-default-response" - }, - "response-with-scarlet-witch-preview-media-type": { - "$ref": "#/components/examples/full-repository-response-with-scarlet-witch-preview-media-type" + "default": { + "$ref": "#/components/examples/webhook-config" } } } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "301": { - "$ref": "#/components/responses/moved_permanently" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "nebula", - "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" - }, - { - "required": false, - "name": "scarlet-witch", - "note": "The Codes of Conduct API is currently available for developers to preview.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.scarlet-witch-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "orgs", + "subcategory": "webhooks" } }, "patch": { - "summary": "Update a repository", - "description": "**Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint.", + "summary": "Update a webhook configuration for an organization", + "description": "Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use \"[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook).\"\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/update", + "operationId": "orgs/update-webhook-config-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos/#update-a-repository" + "url": "https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/hook-id" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the repository." - }, - "description": { - "type": "string", - "description": "A short description of the repository." - }, - "homepage": { - "type": "string", - "description": "A URL with more information about the repository." - }, - "private": { - "type": "boolean", - "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.", - "default": false - }, - "visibility": { - "type": "string", - "description": "Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. The `visibility` parameter overrides the `private` parameter when you use both along with the `nebula-preview` preview header.", - "enum": [ - "public", - "private", - "visibility", - "internal" - ] - }, - "security_and_analysis": { - "type": "object", - "description": "Specify which security and analysis features to enable or disable. For example, to enable GitHub Advanced Security, use this data in the body of the PATCH request: `{\"security_and_analysis\": {\"advanced_security\": {\"status\": \"enabled\"}}}`. If you have admin permissions for a private repository covered by an Advanced Security license, you can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.", - "nullable": true, - "properties": { - "advanced_security": { - "type": "object", - "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository. For more information, see \"[About GitHub Advanced Security](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"", - "properties": { - "status": { - "type": "string", - "description": "Can be `enabled` or `disabled`." - } - } - }, - "secret_scanning": { - "type": "object", - "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"", - "properties": { - "status": { - "type": "string", - "description": "Can be `enabled` or `disabled`." - } - } - } - } - }, - "has_issues": { - "type": "boolean", - "description": "Either `true` to enable issues for this repository or `false` to disable them.", - "default": true - }, - "has_projects": { - "type": "boolean", - "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", - "default": true - }, - "has_wiki": { - "type": "boolean", - "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", - "default": true - }, - "is_template": { - "type": "boolean", - "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", - "default": false - }, - "default_branch": { - "type": "string", - "description": "Updates the default branch for this repository." - }, - "allow_squash_merge": { - "type": "boolean", - "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", - "default": true - }, - "allow_merge_commit": { - "type": "boolean", - "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", - "default": true - }, - "allow_rebase_merge": { - "type": "boolean", - "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", - "default": true + "url": { + "$ref": "#/components/schemas/webhook-config-url" }, - "allow_auto_merge": { - "type": "boolean", - "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.", - "default": false + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" }, - "delete_branch_on_merge": { - "type": "boolean", - "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.", - "default": false + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" }, - "archived": { - "type": "boolean", - "description": "`true` to archive this repository. **Note**: You cannot unarchive repositories through the API.", - "default": false + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" } } }, - "example": { - "name": "Hello-World", - "description": "This is your first repository", - "homepage": "https://github.com", - "private": true, - "has_issues": true, - "has_projects": true, - "has_wiki": true + "examples": { + "default": { + "summary": "Update an existing webhook", + "value": { + "url": "http://example.com/webhook", + "content_type": "json", + "insecure_ssl": "0", + "secret": "********" + } + } } } } @@ -17796,135 +19535,106 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "$ref": "#/components/schemas/webhook-config" }, "examples": { "default": { - "$ref": "#/components/examples/full-repository" + "$ref": "#/components/examples/webhook-config" } } } } - }, - "307": { - "$ref": "#/components/responses/temporary_redirect" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "nebula", - "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" - }, - { - "required": false, - "name": "baptiste", - "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/rest/reference/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n\n```shell\napplication/vnd.github.baptiste-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "orgs", + "subcategory": "webhooks" } - }, - "delete": { - "summary": "Delete a repository", - "description": "Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required.\n\nIf an organization owner has configured the organization to prevent members from deleting organization-owned\nrepositories, you will get a `403 Forbidden` response.", + } + }, + "/orgs/{org}/hooks/{hook_id}/deliveries": { + "get": { + "summary": "List deliveries for an organization webhook", + "description": "Returns a list of webhook deliveries for a webhook configured in an organization.\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/delete", + "operationId": "orgs/list-webhook-deliveries", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-repository" + "url": "https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/hook-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/cursor" } ], "responses": { - "204": { - "description": "Response" - }, - "403": { - "description": "If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response:", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } + "type": "array", + "items": { + "$ref": "#/components/schemas/hook-delivery-item" } }, - "example": { - "message": "Organization members cannot delete repositories.", - "documentation_url": "https://docs.github.com/rest/reference/repos#delete-a-repository" + "examples": { + "default": { + "$ref": "#/components/examples/hook-delivery-items" + } } } } }, - "307": { - "$ref": "#/components/responses/temporary_redirect" + "400": { + "$ref": "#/components/responses/bad_request" }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "category": "orgs", + "subcategory": "webhooks" } } }, - "/repos/{owner}/{repo}/actions/artifacts": { + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": { "get": { - "summary": "List artifacts for a repository", - "description": "Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "Get a webhook delivery for an organization webhook", + "description": "Returns a delivery for a webhook configured in an organization.\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/list-artifacts-for-repo", + "operationId": "orgs/get-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-artifacts-for-a-repository" + "url": "https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/hook-id" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/delivery-id" } ], "responses": { @@ -17933,209 +19643,213 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "artifacts" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "artifacts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/artifact" - } - } - } + "$ref": "#/components/schemas/hook-delivery" }, "examples": { "default": { - "$ref": "#/components/examples/artifact-paginated" + "$ref": "#/components/examples/hook-delivery" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "artifacts" + "category": "orgs", + "subcategory": "webhooks" } } }, - "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { - "get": { - "summary": "Get an artifact", - "description": "Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + "post": { + "summary": "Redeliver a delivery for an organization webhook", + "description": "Redeliver a delivery for a webhook configured in an organization.\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-artifact", + "operationId": "orgs/redeliver-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-an-artifact" + "url": "https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/hook-id" }, { - "$ref": "#/components/parameters/artifact-id" + "$ref": "#/components/parameters/delivery-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/artifact" - }, - "examples": { - "default": { - "$ref": "#/components/examples/artifact" - } - } - } - } + "202": { + "$ref": "#/components/responses/accepted" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "artifacts" + "category": "orgs", + "subcategory": "webhooks" } - }, - "delete": { - "summary": "Delete an artifact", - "description": "Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + } + }, + "/orgs/{org}/hooks/{hook_id}/pings": { + "post": { + "summary": "Ping an organization webhook", + "description": "This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event)\nto be sent to the hook.\n\nYou must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit\nwebhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/delete-artifact", + "operationId": "orgs/ping-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-an-artifact" + "url": "https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/artifact-id" + "$ref": "#/components/parameters/hook-id" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "artifacts" + "category": "orgs", + "subcategory": "webhooks" } } }, - "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { - "summary": "Download an artifact", - "description": "Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in\nthe response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to\nthe repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope.\nGitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "Get route stats by actor", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/download-artifact", + "operationId": "api-insights/get-route-stats-by-actor", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#download-an-artifact" + "url": "https://docs.github.com/rest/orgs/api-insights#get-route-stats-by-actor" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-actor-type" }, { - "$ref": "#/components/parameters/artifact-id" + "$ref": "#/components/parameters/api-insights-actor-id" }, { - "name": "archive_format", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/api-insights-route-stats-sort" + }, + { + "$ref": "#/components/parameters/api-insights-api-route-substring" } ], "responses": { - "302": { + "200": { "description": "Response", - "headers": { - "Location": { - "$ref": "#/components/headers/location" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/api-insights-route-stats" + }, + "examples": { + "default": { + "$ref": "#/components/examples/api-insights-route-stats" + } + } } } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "artifacts" + "category": "orgs", + "subcategory": "api-insights" } } }, - "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + "/orgs/{org}/insights/api/subject-stats": { "get": { - "summary": "Get a job for a workflow run", - "description": "Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "Get subject stats", + "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-job-for-workflow-run", + "operationId": "api-insights/get-subject-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-job-for-a-workflow-run" + "url": "https://docs.github.com/rest/orgs/api-insights#get-subject-stats" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "$ref": "#/components/parameters/job-id" + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/api-insights-sort" + }, + { + "$ref": "#/components/parameters/api-insights-subject-name-substring" } ], "responses": { @@ -18144,11 +19858,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/job" + "$ref": "#/components/schemas/api-insights-subject-stats" }, "examples": { "default": { - "$ref": "#/components/examples/job" + "$ref": "#/components/examples/api-insights-subject-stats" } } } @@ -18156,81 +19870,83 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-jobs" + "category": "orgs", + "subcategory": "api-insights" } } }, - "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + "/orgs/{org}/insights/api/summary-stats": { "get": { - "summary": "Download job logs for a workflow run", - "description": "Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look\nfor `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can\nuse this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must\nhave the `actions:read` permission to use this endpoint.", + "summary": "Get summary stats", + "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/download-job-logs-for-workflow-run", + "operationId": "api-insights/get-summary-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#download-job-logs-for-a-workflow-run" + "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "$ref": "#/components/parameters/job-id" + "$ref": "#/components/parameters/api-insights-max-timestamp" } ], "responses": { - "302": { + "200": { "description": "Response", - "headers": { - "Location": { - "example": "https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/jobs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D", + "content": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/api-insights-summary-stats" + }, + "examples": { + "default": { + "$ref": "#/components/examples/api-insights-summary-stats" + } } } } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-jobs" + "category": "orgs", + "subcategory": "api-insights" } } }, - "/repos/{owner}/{repo}/actions/permissions": { + "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "get": { - "summary": "Get GitHub Actions permissions for a repository", - "description": "Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository.\n\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint. GitHub Apps must have the `administration` repository permission to use this API.", - "operationId": "actions/get-github-actions-permissions-repository", + "summary": "Get summary stats by user", + "description": "Get overall statistics of API requests within the organization for a user.", "tags": [ - "actions" + "orgs" ], + "operationId": "api-insights/get-summary-stats-by-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-a-repository" + "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-user-id" + }, + { + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" } ], "responses": { @@ -18239,11 +19955,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-repository-permissions" + "$ref": "#/components/schemas/api-insights-summary-stats" }, "examples": { "default": { - "$ref": "#/components/examples/actions-repository-permissions" + "$ref": "#/components/examples/api-insights-summary-stats" } } } @@ -18252,91 +19968,88 @@ }, "x-github": { "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" + "category": "orgs", + "subcategory": "api-insights" } - }, - "put": { - "summary": "Set GitHub Actions permissions for a repository", - "description": "Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions in the repository.\n\nIf the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions, then you cannot override them for the repository.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API.", - "operationId": "actions/set-github-actions-permissions-repository", + } + }, + "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { + "get": { + "summary": "Get summary stats by actor", + "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.", "tags": [ - "actions" + "orgs" ], + "operationId": "api-insights/get-summary-stats-by-actor", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-a-repository" + "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-actor" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-actor-type" + }, + { + "$ref": "#/components/parameters/api-insights-actor-id" } ], "responses": { - "204": { - "description": "Response" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "$ref": "#/components/schemas/actions-enabled" - }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" - } + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/api-insights-summary-stats" }, - "required": [ - "enabled" - ] - }, - "example": { - "enabled": true, - "allowed_actions": "selected" + "examples": { + "default": { + "$ref": "#/components/examples/api-insights-summary-stats" + } + } } } } }, "x-github": { "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" + "category": "orgs", + "subcategory": "api-insights" } } }, - "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + "/orgs/{org}/insights/api/time-stats": { "get": { - "summary": "Get allowed actions for a repository", - "description": "Gets the settings for selected actions that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository).\"\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API.", - "operationId": "actions/get-allowed-actions-repository", + "summary": "Get time stats", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", "tags": [ - "actions" + "orgs" ], + "operationId": "api-insights/get-time-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-allowed-actions-for-a-repository" + "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-timestamp-increment" } ], "responses": { @@ -18345,11 +20058,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/selected-actions" + "$ref": "#/components/schemas/api-insights-time-stats" }, "examples": { "default": { - "$ref": "#/components/examples/selected-actions" + "$ref": "#/components/examples/api-insights-time-stats" } } } @@ -18358,47 +20071,52 @@ }, "x-github": { "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" + "category": "orgs", + "subcategory": "api-insights" } - }, - "put": { - "summary": "Set allowed actions for a repository", - "description": "Sets the actions that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository).\"\n\nIf the repository belongs to an organization or enterprise that has `selected` actions set at the organization or enterprise levels, then you cannot override any of the allowed actions settings.\n\nTo use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API.", - "operationId": "actions/set-allowed-actions-repository", + } + }, + "/orgs/{org}/insights/api/time-stats/users/{user_id}": { + "get": { + "summary": "Get time stats by user", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.", "tags": [ - "actions" + "orgs" ], + "operationId": "api-insights/get-time-stats-by-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#set-allowed-actions-for-a-repository" + "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-user-id" + }, + { + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-timestamp-increment" } ], "responses": { - "204": { - "description": "Response" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/selected-actions" - }, - "examples": { - "selected_actions": { - "$ref": "#/components/examples/selected-actions" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/api-insights-time-stats" + }, + "examples": { + "default": { + "$ref": "#/components/examples/api-insights-time-stats" + } } } } @@ -18406,39 +20124,41 @@ }, "x-github": { "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "permissions" + "category": "orgs", + "subcategory": "api-insights" } } }, - "/repos/{owner}/{repo}/actions/runners": { + "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { - "summary": "List self-hosted runners for a repository", - "description": "Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint.", + "summary": "Get time stats by actor", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/list-self-hosted-runners-for-repo", + "operationId": "api-insights/get-time-stats-by-actor", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-a-repository" + "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-actor" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-actor-type" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/api-insights-actor-id" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-timestamp-increment" } ], "responses": { @@ -18447,66 +20167,63 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "runners" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "runners": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner" - } - } - } + "$ref": "#/components/schemas/api-insights-time-stats" }, "examples": { "default": { - "$ref": "#/components/examples/runner-paginated" + "$ref": "#/components/examples/api-insights-time-stats" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "api-insights" } } }, - "/repos/{owner}/{repo}/actions/runners/downloads": { + "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { - "summary": "List runner applications for a repository", - "description": "Lists binaries for the runner application that you can download and run.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint.", + "summary": "Get user stats", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/list-runner-applications-for-repo", + "operationId": "api-insights/get-user-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-runner-applications-for-a-repository" + "url": "https://docs.github.com/rest/orgs/api-insights#get-user-stats" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/api-insights-user-id" + }, + { + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/api-insights-sort" + }, + { + "$ref": "#/components/parameters/api-insights-actor-name-substring" } ], "responses": { @@ -18515,14 +20232,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner-application" - } + "$ref": "#/components/schemas/api-insights-user-stats" }, "examples": { "default": { - "$ref": "#/components/examples/runner-application-items" + "$ref": "#/components/examples/api-insights-user-stats" } } } @@ -18530,47 +20244,40 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "api-insights" } } }, - "/repos/{owner}/{repo}/actions/runners/registration-token": { - "post": { - "summary": "Create a registration token for a repository", - "description": "Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate\nusing an access token with the `repo` scope to use this endpoint.\n\n#### Example using registration token\n \nConfigure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint.\n\n```\n./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN\n```", + "/orgs/{org}/installation": { + "get": { + "summary": "Get an organization installation for the authenticated app", + "description": "Enables an authenticated GitHub App to find the organization's installation information.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ - "actions" + "apps" ], - "operationId": "actions/create-registration-token-for-repo", + "operationId": "apps/get-org-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-a-registration-token-for-a-repository" + "url": "https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" } ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authentication-token" + "$ref": "#/components/schemas/installation" }, "examples": { "default": { - "$ref": "#/components/examples/authentication-token" + "$ref": "#/components/examples/installation" } } } @@ -18579,84 +20286,95 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "self-hosted-runners" + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "apps" } } }, - "/repos/{owner}/{repo}/actions/runners/remove-token": { - "post": { - "summary": "Create a remove token for a repository", - "description": "Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour.\nYou must authenticate using an access token with the `repo` scope to use this endpoint.\n\n#### Example using remove token\n \nTo remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint.\n\n```\n./config.sh remove --token TOKEN\n```", + "/orgs/{org}/installations": { + "get": { + "summary": "List app installations for an organization", + "description": "Lists all GitHub Apps in an organization. The installation count includes\nall GitHub Apps installed on repositories in the organization.\n\nThe authenticated user must be an organization owner to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/create-remove-token-for-repo", + "operationId": "orgs/list-app-installations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-a-remove-token-for-a-repository" + "url": "https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authentication-token" + "type": "object", + "required": [ + "total_count", + "installations" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "installations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/installation" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/authentication-token-2" + "$ref": "#/components/examples/installation-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + "/orgs/{org}/interaction-limits": { "get": { - "summary": "Get a self-hosted runner for a repository", - "description": "Gets a specific self-hosted runner configured in a repository.\n\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint.", + "summary": "Get interaction restrictions for an organization", + "description": "Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response.", "tags": [ - "actions" + "interactions" ], - "operationId": "actions/get-self-hosted-runner-for-repo", + "operationId": "interactions/get-restrictions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-a-repository" + "url": "https://docs.github.com/rest/interactions/orgs#get-interaction-restrictions-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -18665,11 +20383,20 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/runner" + "anyOf": [ + { + "$ref": "#/components/schemas/interaction-limit-response" + }, + { + "type": "object", + "properties": {}, + "additionalProperties": false + } + ] }, "examples": { "default": { - "$ref": "#/components/examples/runner" + "$ref": "#/components/examples/interaction-limit-response" } } } @@ -18679,33 +20406,85 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "interactions", + "subcategory": "orgs" } }, - "delete": { - "summary": "Delete a self-hosted runner from a repository", - "description": "Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nYou must authenticate using an access token with the `repo`\nscope to use this endpoint.", + "put": { + "summary": "Set interaction restrictions for an organization", + "description": "Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization.", "tags": [ - "actions" + "interactions" ], - "operationId": "actions/delete-self-hosted-runner-from-repo", + "operationId": "interactions/set-restrictions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-a-repository" + "url": "https://docs.github.com/rest/interactions/orgs#set-interaction-restrictions-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit" + }, + "examples": { + "default": { + "value": { + "limit": "collaborators_only", + "expiry": "one_month" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-response" + } + } + } + } }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "interactions", + "subcategory": "orgs" + } + }, + "delete": { + "summary": "Remove interaction restrictions for an organization", + "description": "Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions.", + "tags": [ + "interactions" + ], + "operationId": "interactions/remove-restrictions-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/interactions/orgs#remove-interaction-restrictions-for-an-organization" + }, + "parameters": [ { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -18716,44 +20495,26 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "interactions", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/actions/runs": { + "/orgs/{org}/invitations": { "get": { - "summary": "List workflow runs for a repository", - "description": "Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "List pending organization invitations", + "description": "The return hash contains a `role` field which refers to the Organization\nInvitation role and will be one of the following values: `direct_member`, `admin`,\n`billing_manager`, or `hiring_manager`. If the invitee is not a GitHub\nmember, the `login` field in the return hash will be `null`.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/list-workflow-runs-for-repo", + "operationId": "orgs/list-pending-invitations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-workflow-runs-for-a-repository" + "url": "https://docs.github.com/rest/orgs/members#list-pending-organization-invitations" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/actor" - }, - { - "$ref": "#/components/parameters/workflow-run-branch" - }, - { - "$ref": "#/components/parameters/event" - }, - { - "$ref": "#/components/parameters/workflow-run-status" + "$ref": "#/components/parameters/org" }, { "$ref": "#/components/parameters/per-page" @@ -18762,7 +20523,36 @@ "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/created" + "name": "role", + "description": "Filter invitations by their member role.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "admin", + "direct_member", + "billing_manager", + "hiring_manager" + ], + "default": "all" + } + }, + { + "name": "invitation_source", + "description": "Filter invitations by their invitation source.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "member", + "scim" + ], + "default": "all" + } } ], "responses": { @@ -18771,26 +20561,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "workflow_runs" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "workflow_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/workflow-run" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" } }, "examples": { "default": { - "$ref": "#/components/examples/workflow-run-paginated" + "$ref": "#/components/examples/organization-invitation-items" } } } @@ -18800,128 +20578,180 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "members" } - } - }, - "/repos/{owner}/{repo}/actions/runs/{run_id}": { - "get": { - "summary": "Get a workflow run", - "description": "Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + }, + "post": { + "summary": "Create an organization invitation", + "description": "Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\"\nand \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-workflow-run", + "operationId": "orgs/create-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-workflow-run" + "url": "https://docs.github.com/rest/orgs/members#create-an-organization-invitation" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/org" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "invitee_id": { + "type": "integer", + "description": "**Required unless you provide `email`**. GitHub user ID for the person you are inviting." + }, + "email": { + "type": "string", + "description": "**Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user." + }, + "role": { + "type": "string", + "description": "The role for the new member. \n * `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. \n * `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. \n * `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. \n * `reinstate` - The previous role assigned to the invitee before they were removed from your organization. Can be one of the roles listed above. Only works if the invitee was previously part of your organization.", + "enum": [ + "admin", + "direct_member", + "billing_manager", + "reinstate" + ], + "default": "direct_member" + }, + "team_ids": { + "type": "array", + "description": "Specify IDs for the teams you want to invite new members to.", + "items": { + "type": "integer" + } + } + } + }, + "examples": { + "default": { + "value": { + "email": "octocat@github.com", + "role": "direct_member", + "team_ids": [ + 12, + 26 + ] + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow-run" + "$ref": "#/components/schemas/organization-invitation" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-run" + "$ref": "#/components/examples/organization-invitation" } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "members" } - }, + } + }, + "/orgs/{org}/invitations/{invitation_id}": { "delete": { - "summary": "Delete a workflow run", - "description": "Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is\nprivate you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use\nthis endpoint.", - "operationId": "actions/delete-workflow-run", + "summary": "Cancel an organization invitation", + "description": "Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications).", "tags": [ - "actions" + "orgs" ], + "operationId": "orgs/cancel-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-a-workflow-run" + "url": "https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/invitation-id" } ], "responses": { "204": { "description": "Response" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { + "/orgs/{org}/invitations/{invitation_id}/teams": { "get": { - "summary": "Get the review history for a workflow run", - "description": "Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "List organization invitation teams", + "description": "List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-reviews-for-run", + "operationId": "orgs/list-invitation-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-the-review-history-for-a-workflow-run" + "url": "https://docs.github.com/rest/orgs/members#list-organization-invitation-teams" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/invitation-id" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -18932,59 +20762,129 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/environment-approvals" + "$ref": "#/components/schemas/team" } }, "examples": { "default": { - "$ref": "#/components/examples/environment-approvals-items" + "$ref": "#/components/examples/team-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": { - "post": { - "summary": "Approve a workflow run for a fork pull request", - "description": "Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see [\"Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks).\"\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "/orgs/{org}/issue-types": { + "get": { + "summary": "List issue types for an organization", + "description": "Lists all issue types for an organization. OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/approve-workflow-run", + "operationId": "orgs/list-issue-types", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#approve-a-workflow-run-for-a-fork-pull-request" + "url": "https://docs.github.com/rest/orgs/issue-types#list-issue-types-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-type" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-type-items" + } + } + } + } }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "issue-types" + } + }, + "post": { + "summary": "Create issue type for an organization", + "description": "Create a new issue type for an organization.\n\nYou can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization).\n\nTo use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and\npersonal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "orgs" + ], + "operationId": "orgs/create-issue-type", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/issue-types#create-issue-type-for-an-organization" + }, + "parameters": [ { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/org" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-create-issue-type" + }, + "examples": { + "default": { + "value": { + "name": "Epic", + "description": "An issue type for a multi-week tracking of work", + "is_enabled": true, + "color": "green" + } + } + } + } + } + }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/issue-type" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-type" + } } } } @@ -18992,181 +20892,295 @@ "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "issue-types" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { - "get": { - "summary": "List workflow run artifacts", - "description": "Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "/orgs/{org}/issue-types/{issue_type_id}": { + "put": { + "summary": "Update issue type for an organization", + "description": "Updates an issue type for an organization.\n\nYou can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization).\n\nTo use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and\npersonal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/list-workflow-run-artifacts", + "operationId": "orgs/update-issue-type", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-workflow-run-artifacts" + "url": "https://docs.github.com/rest/orgs/issue-types#update-issue-type-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/run-id" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-type-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-update-issue-type" + }, + "examples": { + "default": { + "value": { + "name": "Epic", + "description": "An issue type for a multi-week tracking of work", + "is_enabled": true, + "color": "green" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "artifacts" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "artifacts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/artifact" - } - } - } + "$ref": "#/components/schemas/issue-type" }, "examples": { "default": { - "$ref": "#/components/examples/artifact-paginated" + "$ref": "#/components/examples/issue-type" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "artifacts" + "category": "orgs", + "subcategory": "issue-types" + } + }, + "delete": { + "summary": "Delete issue type for an organization", + "description": "Deletes an issue type for an organization.\n\nYou can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization).\n\nTo use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and\npersonal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "orgs" + ], + "operationId": "orgs/delete-issue-type", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/issue-types#delete-issue-type-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/issue-type-id" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "issue-types" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { - "post": { - "summary": "Cancel a workflow run", - "description": "Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "/orgs/{org}/issues": { + "get": { + "summary": "List organization issues assigned to the authenticated user", + "description": "List issues in an organization assigned to the authenticated user.\n\n> [!NOTE]\n> GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull request id, use the \"[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)\" endpoint.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "actions" + "issues" ], - "operationId": "actions/cancel-workflow-run", + "operationId": "issues/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#cancel-a-workflow-run" + "url": "https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "filter", + "description": "Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "assigned", + "created", + "mentioned", + "subscribed", + "repos", + "all" + ], + "default": "assigned" + } }, { - "$ref": "#/components/parameters/run-id" + "name": "state", + "description": "Indicates the state of the issues to return.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "open", + "closed", + "all" + ], + "default": "open" + } + }, + { + "$ref": "#/components/parameters/labels" + }, + { + "name": "type", + "description": "Can be the name of an issue type.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "description": "What to sort results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "comments" + ], + "default": "created" + } + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/since" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - }, - "additionalProperties": false + "type": "array", + "items": { + "$ref": "#/components/schemas/issue" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-with-repo-items" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "enabledForGitHubApps": false, + "category": "issues", + "subcategory": "issues" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + "/orgs/{org}/members": { "get": { - "summary": "List jobs for a workflow run", - "description": "Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters).", + "summary": "List organization members", + "description": "List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/list-jobs-for-workflow-run", + "operationId": "orgs/list-members", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run" + "url": "https://docs.github.com/rest/orgs/members#list-organization-members" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/org" }, { "name": "filter", - "description": "Filters jobs by their `completed_at` timestamp. Can be one of: \n\\* `latest`: Returns jobs from the most recent execution of the workflow run. \n\\* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run.", + "description": "Filter members returned in the list. `2fa_disabled` means that only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. `2fa_insecure` means that only members with [insecure 2FA methods](https://docs.github.com/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization#requiring-secure-methods-of-two-factor-authentication-in-your-organization) will be returned. These options are only available for organization owners.", "in": "query", "required": false, "schema": { "type": "string", "enum": [ - "latest", + "2fa_disabled", + "2fa_insecure", "all" ], - "default": "latest" + "default": "all" + } + }, + { + "name": "role", + "description": "Filter members returned by their role.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "admin", + "member" + ], + "default": "all" } }, { @@ -19182,26 +21196,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "jobs" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/job" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/job-paginated" + "$ref": "#/components/examples/simple-user-items" } } } @@ -19211,124 +21213,124 @@ "$ref": "#/components/headers/link" } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-jobs" + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + "/orgs/{org}/members/{username}": { "get": { - "summary": "Download workflow run logs", - "description": "Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for\n`Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use\nthis endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have\nthe `actions:read` permission to use this endpoint.", + "summary": "Check organization membership for a user", + "description": "Check if a user is, publicly or privately, a member of the organization.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/download-workflow-run-logs", + "operationId": "orgs/check-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#download-workflow-run-logs" + "url": "https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/username" } ], "responses": { + "204": { + "description": "Response if requester is an organization member and user is a member" + }, "302": { - "description": "Response", + "description": "Response if requester is not an organization member", "headers": { "Location": { - "example": "https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D", + "example": "https://api.github.com/orgs/github/public_members/pezra", "schema": { "type": "string" } } } + }, + "404": { + "description": "Not Found if requester is an organization member and user is not a member" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "members" } }, "delete": { - "summary": "Delete workflow run logs", - "description": "Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "summary": "Remove an organization member", + "description": "Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories.\n\n> [!NOTE]\n> If a user has both direct membership in the organization as well as indirect membership via an enterprise team, only their direct membership will be removed. Their indirect membership via an enterprise team remains until the user is removed from the enterprise team.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/delete-workflow-run-logs", + "operationId": "orgs/remove-member", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-workflow-run-logs" + "url": "https://docs.github.com/rest/orgs/members#remove-an-organization-member" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/username" } ], "responses": { "204": { "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { + "/orgs/{org}/members/{username}/codespaces": { "get": { - "summary": "Get pending deployments for a workflow run", - "description": "Get all deployment environments for a workflow run that are waiting for protection rules to pass.\n\nAnyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "List codespaces for a user in organization", + "description": "Lists the codespaces that a member of an organization has for repositories in that organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "codespaces" ], - "operationId": "actions/get-pending-deployments-for-run", + "operationId": "codespaces/get-codespaces-for-user-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-pending-deployments-for-a-workflow-run" + "url": "https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" } ], "responses": { @@ -19337,241 +21339,247 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pending-deployment" + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/pending-deployment-items" + "$ref": "#/components/examples/codespaces-list" } } } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } - }, - "post": { - "summary": "Review pending deployments for a workflow run", - "description": "Approve or reject pending deployments that are waiting on approval by a required reviewer.\n\nAnyone with read access to the repository contents and deployments can use this endpoint.", + } + }, + "/orgs/{org}/members/{username}/codespaces/{codespace_name}": { + "delete": { + "summary": "Delete a codespace from the organization", + "description": "Deletes a user's codespace.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "codespaces" ], - "operationId": "actions/review-pending-deployments-for-run", + "operationId": "codespaces/delete-from-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#review-pending-deployments-for-a-workflow-run" + "url": "https://docs.github.com/rest/codespaces/organizations#delete-a-codespace-from-the-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/username" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/codespace-name" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "environment_ids": { - "type": "array", - "description": "The list of environment ids to approve or reject", - "example": [ - 161171787, - 161171795 - ], - "items": { - "type": "integer", - "example": 161171787 - } - }, - "state": { - "type": "string", - "description": "Whether to approve or reject deployment to the specified environments. Must be one of: `approved` or `rejected`", - "enum": [ - "approved", - "rejected" - ], - "example": "approved" - }, - "comment": { - "type": "string", - "description": "A comment to accompany the deployment review", - "example": "Ship it!" - } - }, - "required": [ - "environment_ids", - "state", - "comment" - ] - } - } - } - }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/deployment" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/deployment-items" - } - } - } - } + "202": { + "$ref": "#/components/responses/accepted" + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": { "post": { - "summary": "Re-run a workflow", - "description": "Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "summary": "Stop a codespace for an organization user", + "description": "Stops a user's codespace.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "codespaces" ], - "operationId": "actions/re-run-workflow", + "operationId": "codespaces/stop-in-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#re-run-a-workflow" + "url": "https://docs.github.com/rest/codespaces/organizations#stop-a-codespace-for-an-organization-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/username" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/codespace-name" } ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - }, - "additionalProperties": false + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } } } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "codespaces", + "subcategory": "organizations" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": { - "post": { - "summary": "Re-run failed jobs from a workflow run", - "description": "Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint.", + "/orgs/{org}/members/{username}/copilot": { + "get": { + "summary": "Get Copilot seat assignment details for a user", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets the GitHub Copilot seat details for a member of an organization who currently has access to GitHub Copilot.\n\nThe seat object contains information about the user's most recent Copilot activity. Users must have telemetry enabled in their IDE for Copilot in the IDE activity to be reflected in `last_activity_at`.\nFor more information about activity data, see [Metrics data properties for GitHub Copilot](https://docs.github.com/copilot/reference/metrics-data).\n\nOnly organization owners can view Copilot seat assignment details for members of their organization.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint.", "tags": [ - "actions" + "copilot" ], - "operationId": "actions/re-run-workflow-failed-jobs", + "operationId": "copilot/get-copilot-seat-details-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#re-run-workflow-failed-jobs" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/username" } ], "responses": { - "201": { - "description": "Response", + "200": { + "description": "The user's GitHub Copilot seat details, including usage.", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - }, - "additionalProperties": false + "$ref": "#/components/schemas/copilot-seat-details" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-seat-detail-active" + } } } } + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Copilot Business or Enterprise is not enabled for this organization or the user has a pending organization invitation." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + "/orgs/{org}/memberships/{username}": { "get": { - "summary": "Get workflow run usage", - "description": "Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAnyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "Get organization membership for a user", + "description": "In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-workflow-run-usage", + "operationId": "orgs/get-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-workflow-run-usage" + "url": "https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/username" } ], "responses": { @@ -19580,52 +21588,183 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow-run-usage" + "$ref": "#/components/schemas/org-membership" }, "examples": { - "default": { - "$ref": "#/components/examples/workflow-run-usage" + "response-if-user-has-an-active-admin-membership-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } + }, + "put": { + "summary": "Set organization membership for a user", + "description": "Only authenticated organization owners can add a member to the organization or update the member's role.\n\n* If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation.\n \n* Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent.\n\n**Rate limits**\n\nTo prevent abuse, organization owners are limited to creating 50 organization invitations for an organization within a 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period.", + "tags": [ + "orgs" + ], + "operationId": "orgs/set-membership-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "The role to give the user in the organization. Can be one of: \n * `admin` - The user will become an owner of the organization. \n * `member` - The user will become a non-owner member of the organization.", + "enum": [ + "admin", + "member" + ], + "default": "member" + } + } + }, + "examples": { + "default": { + "summary": "Set an organization membership role for a user", + "value": { + "role": "member" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-membership" + }, + "examples": { + "response-if-user-already-had-membership-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } + }, + "delete": { + "summary": "Remove organization membership for a user", + "description": "In order to remove a user's membership with an organization, the authenticated user must be an organization owner.\n\nIf the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases.\n\n> [!NOTE]\n> If a user has both direct membership in the organization as well as indirect membership via an enterprise team, only their direct membership will be removed. Their indirect membership via an enterprise team remains until the user is removed from the enterprise team.", + "tags": [ + "orgs" + ], + "operationId": "orgs/remove-membership-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/secrets": { + "/orgs/{org}/migrations": { "get": { - "summary": "List repository secrets", - "description": "Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "summary": "List organization migrations", + "description": "Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API).\n\nA list of `repositories` is only returned for export migrations.", "tags": [ - "actions" + "migrations" ], - "operationId": "actions/list-repo-secrets", + "operationId": "migrations/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-repository-secrets" + "url": "https://docs.github.com/rest/migrations/orgs#list-organization-migrations" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "name": "exclude", + "description": "Exclude attributes from the API response to improve performance", + "in": "query", + "schema": { + "type": "array", + "items": { + "description": "Allowed values that can be passed to the exclude param.", + "enum": [ + "repositories" + ], + "example": "repositories", + "type": "string" + } + } } ], "responses": { @@ -19634,26 +21773,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "secrets" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/actions-secret" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/migration" } }, "examples": { "default": { - "$ref": "#/components/examples/actions-secret-paginated" + "$ref": "#/components/examples/migration-with-short-org-items" } } } @@ -19667,243 +21794,331 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } - } - }, - "/repos/{owner}/{repo}/actions/secrets/public-key": { - "get": { - "summary": "Get a repository public key", - "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + }, + "post": { + "summary": "Start an organization migration", + "description": "Initiates the generation of a migration archive.", "tags": [ - "actions" + "migrations" ], - "operationId": "actions/get-repo-public-key", + "operationId": "migrations/start-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-repository-public-key" + "url": "https://docs.github.com/rest/migrations/orgs#start-an-organization-migration" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repositories": { + "type": "array", + "description": "A list of arrays indicating which repositories should be migrated.", + "items": { + "type": "string" + } + }, + "lock_repositories": { + "type": "boolean", + "example": true, + "description": "Indicates whether repositories should be locked (to prevent manipulation) while migrating data.", + "default": false + }, + "exclude_metadata": { + "type": "boolean", + "description": "Indicates whether metadata should be excluded and only git source should be included for the migration.", + "default": false + }, + "exclude_git_data": { + "type": "boolean", + "description": "Indicates whether the repository git data should be excluded from the migration.", + "default": false + }, + "exclude_attachments": { + "type": "boolean", + "example": true, + "description": "Indicates whether attachments should be excluded from the migration (to reduce migration archive file size).", + "default": false + }, + "exclude_releases": { + "type": "boolean", + "example": true, + "description": "Indicates whether releases should be excluded from the migration (to reduce migration archive file size).", + "default": false + }, + "exclude_owner_projects": { + "type": "boolean", + "example": true, + "description": "Indicates whether projects owned by the organization or users should be excluded. from the migration.", + "default": false + }, + "org_metadata_only": { + "type": "boolean", + "example": true, + "description": "Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags).", + "default": false + }, + "exclude": { + "type": "array", + "description": "Exclude related items from being returned in the response in order to improve performance of the request.", + "items": { + "type": "string", + "enum": [ + "repositories" + ] + } + } + }, + "required": [ + "repositories" + ] + }, + "examples": { + "default": { + "value": { + "repositories": [ + "github/Hello-World" + ], + "lock_repositories": true + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-public-key" + "$ref": "#/components/schemas/migration" }, "examples": { "default": { - "$ref": "#/components/examples/actions-public-key" + "$ref": "#/components/examples/migration-with-short-org-2" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + "/orgs/{org}/migrations/{migration_id}": { "get": { - "summary": "Get a repository secret", - "description": "Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "summary": "Get an organization migration status", + "description": "Fetches the status of a migration.\n\nThe `state` of a migration can be one of the following values:\n\n* `pending`, which means the migration hasn't started yet.\n* `exporting`, which means the migration is in progress.\n* `exported`, which means the migration finished successfully.\n* `failed`, which means the migration failed.", "tags": [ - "actions" + "migrations" ], - "operationId": "actions/get-repo-secret", + "operationId": "migrations/get-status-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-repository-secret" + "url": "https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/migration-id" }, { - "$ref": "#/components/parameters/secret-name" + "name": "exclude", + "description": "Exclude attributes from the API response to improve performance", + "in": "query", + "schema": { + "type": "array", + "items": { + "description": "Allowed values that can be passed to the exclude param.", + "enum": [ + "repositories" + ], + "example": "repositories", + "type": "string" + } + } } ], "responses": { "200": { - "description": "Response", + "description": "* `pending`, which means the migration hasn't started yet.\n* `exporting`, which means the migration is in progress.\n* `exported`, which means the migration finished successfully.\n* `failed`, which means the migration failed.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-secret" + "$ref": "#/components/schemas/migration" }, "examples": { "default": { - "$ref": "#/components/examples/actions-secret" + "$ref": "#/components/examples/migration-with-short-org" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } - }, - "put": { - "summary": "Create or update a repository secret", - "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use\nthis endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + } + }, + "/orgs/{org}/migrations/{migration_id}/archive": { + "get": { + "summary": "Download an organization migration archive", + "description": "Fetches the URL to a migration archive.", "tags": [ - "actions" + "migrations" ], - "operationId": "actions/create-or-update-repo-secret", + "operationId": "migrations/download-archive-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-or-update-a-repository-secret" + "url": "https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/migration-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "encrypted_value": { - "type": "string", - "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/actions#get-a-repository-public-key) endpoint.", - "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" - }, - "key_id": { - "type": "string", - "description": "ID of the key you used to encrypt the secret." - } - } - }, - "example": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678" - } - } + "responses": { + "302": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, - "responses": { - "201": { - "description": "Response when creating a secret", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - }, - "additionalProperties": false - } - } - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" + } + }, + "delete": { + "summary": "Delete an organization migration archive", + "description": "Deletes a previous migration archive. Migration archives are automatically deleted after seven days.", + "tags": [ + "migrations" + ], + "operationId": "migrations/delete-archive-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, + { + "$ref": "#/components/parameters/migration-id" + } + ], + "responses": { "204": { - "description": "Response when updating a secret" + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } - }, + } + }, + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { "delete": { - "summary": "Delete a repository secret", - "description": "Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "summary": "Unlock an organization repository", + "description": "Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data.", "tags": [ - "actions" + "migrations" ], - "operationId": "actions/delete-repo-secret", + "operationId": "migrations/unlock-repo-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-a-repository-secret" + "url": "https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/migration-id" }, { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/repo-name" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/actions/workflows": { + "/orgs/{org}/migrations/{migration_id}/repositories": { "get": { - "summary": "List repository workflows", - "description": "Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "List repositories in an organization migration", + "description": "List all the repositories for this organization migration.", "tags": [ - "actions" + "migrations" ], - "operationId": "actions/list-repo-workflows", + "operationId": "migrations/list-repos-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-repository-workflows" + "url": "https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/migration-id" }, { "$ref": "#/components/parameters/per-page" @@ -19918,26 +22133,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "workflows" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "workflows": { - "type": "array", - "items": { - "$ref": "#/components/schemas/workflow" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/workflow-paginated" + "$ref": "#/components/examples/minimal-repository-items" } } } @@ -19947,91 +22150,98 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflows" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + "/orgs/{org}/organization-roles": { "get": { - "summary": "Get a workflow", - "description": "Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "Get all organization roles for an organization", + "description": "Lists the organization roles available in this organization. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nTo use this endpoint, the authenticated user must be one of:\n\n- An administrator for the organization.\n- A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-workflow", + "operationId": "orgs/list-org-roles", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-a-workflow" + "url": "https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/org" } ], "responses": { "200": { - "description": "Response", + "description": "Response - list of organization roles", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow" + "type": "object", + "properties": { + "total_count": { + "type": "integer", + "description": "The total number of organization roles available to the organization." + }, + "roles": { + "type": "array", + "description": "The list of organization roles available to the organization.", + "items": { + "$ref": "#/components/schemas/organization-role" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/workflow" + "$ref": "#/components/examples/organization-role-list" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflows" + "category": "orgs", + "subcategory": "organization-roles" } } }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { - "put": { - "summary": "Disable a workflow", - "description": "Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "/orgs/{org}/organization-roles/teams/{team_slug}": { + "delete": { + "summary": "Remove all organization roles for a team", + "description": "Removes all assigned organization roles from a team. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nThe authenticated user must be an administrator for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/disable-workflow", + "operationId": "orgs/revoke-all-org-roles-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#disable-a-workflow" + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/team-slug" } ], "responses": { @@ -20042,107 +22252,72 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflows" + "category": "orgs", + "subcategory": "organization-roles" } } }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { - "post": { - "summary": "Create a workflow dispatch event", - "description": "You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nYou must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see \"[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch).\"\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see \"[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line).\"", - "operationId": "actions/create-workflow-dispatch", + "/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": { + "put": { + "summary": "Assign an organization role to a team", + "description": "Assigns an organization role to a team in an organization. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nThe authenticated user must be an administrator for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], + "operationId": "orgs/assign-team-to-org-role", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-a-workflow-dispatch-event" + "url": "https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/role-id" } ], "responses": { "204": { "description": "Response" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "ref": { - "type": "string", - "description": "The git reference for the workflow. The reference can be a branch or tag name." - }, - "inputs": { - "type": "object", - "description": "Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when `inputs` are omitted.", - "additionalProperties": { - "type": "string" - }, - "maxProperties": 10 - } - }, - "required": [ - "ref" - ] - }, - "example": { - "ref": "topic-branch", - "inputs": { - "name": "Mona the Octocat", - "home": "San Francisco, CA" - } - } - } + }, + "404": { + "description": "Response if the organization, team or role does not exist." + }, + "422": { + "description": "Response if the organization roles feature is not enabled for the organization, or validation failed." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflows" + "category": "orgs", + "subcategory": "organization-roles" } - } - }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { - "put": { - "summary": "Enable a workflow", - "description": "Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + }, + "delete": { + "summary": "Remove an organization role from a team", + "description": "Removes an organization role from a team. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nThe authenticated user must be an administrator for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/enable-workflow", + "operationId": "orgs/revoke-org-role-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#enable-a-workflow" + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/role-id" } ], "responses": { @@ -20153,127 +22328,138 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflows" + "category": "orgs", + "subcategory": "organization-roles" } } }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { - "get": { - "summary": "List workflow runs", - "description": "List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope.", + "/orgs/{org}/organization-roles/users/{username}": { + "delete": { + "summary": "Remove all organization roles for a user", + "description": "Revokes all assigned organization roles from a user. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nThe authenticated user must be an administrator for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/list-workflow-runs", + "operationId": "orgs/revoke-all-org-roles-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-workflow-runs" + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/workflow-id" - }, + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "organization-roles" + } + } + }, + "/orgs/{org}/organization-roles/users/{username}/{role_id}": { + "put": { + "summary": "Assign an organization role to a user", + "description": "Assigns an organization role to a member of an organization. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nThe authenticated user must be an administrator for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "orgs" + ], + "operationId": "orgs/assign-user-to-org-role", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user" + }, + "parameters": [ { - "$ref": "#/components/parameters/actor" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/workflow-run-branch" + "$ref": "#/components/parameters/username" }, { - "$ref": "#/components/parameters/event" + "$ref": "#/components/parameters/role-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "$ref": "#/components/parameters/workflow-run-status" + "404": { + "description": "Response if the organization, user or role does not exist." }, + "422": { + "description": "Response if the organization roles feature is not enabled enabled for the organization, the validation failed, or the user is not an organization member." + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "organization-roles" + } + }, + "delete": { + "summary": "Remove an organization role from a user", + "description": "Remove an organization role from a user. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nThe authenticated user must be an administrator for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "orgs" + ], + "operationId": "orgs/revoke-org-role-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user" + }, + "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/username" }, { - "$ref": "#/components/parameters/created" + "$ref": "#/components/parameters/role-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "total_count", - "workflow_runs" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "workflow_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/workflow-run" - } - } - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/workflow-run-paginated" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "organization-roles" } } }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + "/orgs/{org}/organization-roles/{role_id}": { "get": { - "summary": "Get workflow usage", - "description": "Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nYou can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "Get an organization role", + "description": "Gets an organization role that is available to this organization. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nTo use this endpoint, the authenticated user must be one of:\n\n- An administrator for the organization.\n- A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-workflow-usage", + "operationId": "orgs/get-org-role", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-workflow-usage" + "url": "https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/role-id" } ], "responses": { @@ -20282,46 +22468,49 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow-usage" + "$ref": "#/components/schemas/organization-role" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-usage" + "$ref": "#/components/examples/organization-role" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "actions", - "subcategory": "workflows" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "organization-roles" } } }, - "/repos/{owner}/{repo}/assignees": { + "/orgs/{org}/organization-roles/{role_id}/teams": { "get": { - "summary": "List assignees", - "description": "Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository.", + "summary": "List teams that are assigned to an organization role", + "description": "Lists the teams that are assigned to an organization role. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nTo use this endpoint, you must be an administrator for the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "issues" + "orgs" ], - "operationId": "issues/list-assignees", + "operationId": "orgs/list-org-role-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-assignees" + "url": "https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/role-id" }, { "$ref": "#/components/parameters/per-page" @@ -20332,18 +22521,19 @@ ], "responses": { "200": { - "description": "Response", + "description": "Response - List of assigned teams", "content": { "application/json": { "schema": { "type": "array", + "description": "List of teams assigned to the organization role", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/team-role-assignment" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/team-items" } } } @@ -20355,92 +22545,119 @@ } }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Response if the organization or role does not exist." + }, + "422": { + "description": "Response if the organization roles feature is not enabled or validation failed." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "assignees" + "category": "orgs", + "subcategory": "organization-roles" } } }, - "/repos/{owner}/{repo}/assignees/{assignee}": { + "/orgs/{org}/organization-roles/{role_id}/users": { "get": { - "summary": "Check if a user can be assigned", - "description": "Checks if a user has permission to be assigned to an issue in this repository.\n\nIf the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned.\n\nOtherwise a `404` status code is returned.", + "summary": "List users that are assigned to an organization role", + "description": "Lists organization members that are assigned to an organization role. For more information on organization roles, see \"[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles).\"\n\nTo use this endpoint, you must be an administrator for the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "issues" + "orgs" ], - "operationId": "issues/check-user-can-be-assigned", + "operationId": "orgs/list-org-role-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#check-if-a-user-can-be-assigned" + "url": "https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/role-id" }, { - "name": "assignee", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned." - }, - "404": { - "description": "Otherwise a `404` status code is returned.", + "200": { + "description": "Response - List of assigned users", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "type": "array", + "description": "List of users assigned to the organization role", + "items": { + "$ref": "#/components/schemas/user-role-assignment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "description": "Response if the organization or role does not exist." + }, + "422": { + "description": "Response if the organization roles feature is not enabled or validation failed." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "assignees" + "category": "orgs", + "subcategory": "organization-roles" } } }, - "/repos/{owner}/{repo}/autolinks": { + "/orgs/{org}/outside_collaborators": { "get": { - "summary": "List all autolinks of a repository", - "description": "This returns a list of autolinks configured for the given repository.\n\nInformation about autolinks are only available to repository administrators.", + "summary": "List outside collaborators for an organization", + "description": "List all users who are outside collaborators of an organization.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/list-autolinks", + "operationId": "orgs/list-outside-collaborators", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/v3/repos#list-autolinks" + "url": "https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "filter", + "description": "Filter the list of outside collaborators. `2fa_disabled` means that only outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. `2fa_insecure` means that only outside collaborators with [insecure 2FA methods](https://docs.github.com/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization#requiring-secure-methods-of-two-factor-authentication-in-your-organization) will be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "2fa_disabled", + "2fa_insecure", + "all" + ], + "default": "all" + } + }, + { + "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" @@ -20454,380 +22671,451 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/autolink" + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/autolink-items" + "$ref": "#/components/examples/simple-user-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "autolinks" + "category": "orgs", + "subcategory": "outside-collaborators" } - }, - "post": { - "summary": "Create an autolink reference for a repository", - "description": "Users with admin access to the repository can create an autolink.", + } + }, + "/orgs/{org}/outside_collaborators/{username}": { + "put": { + "summary": "Convert an organization member to outside collaborator", + "description": "When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see \"[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)\". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see \"[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories).\"", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/create-autolink", + "operationId": "orgs/convert-member-to-outside-collaborator", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/v3/repos#create-an-autolink" + "url": "https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/username" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "key_prefix": { - "type": "string", - "description": "The prefix appended by a number will generate a link any time it is found in an issue, pull request, or commit." - }, - "url_template": { - "type": "string", - "description": "The URL must contain for the reference number." + "async": { + "type": "boolean", + "description": "When set to `true`, the request will be performed asynchronously. Returns a 202 status code when the job is successfully queued.", + "default": false } - }, - "required": [ - "key_prefix", - "url_template" - ] + } }, - "example": { - "key_prefix": "TICKET-", - "url_template": "https://example.com/TICKET?query=" + "examples": { + "202": { + "summary": "Status code 202, asynchronous request", + "value": { + "async": true + } + }, + "204": { + "summary": "Status code 204, synchronous request", + "value": null + } } } } }, "responses": { - "201": { - "description": "response", + "202": { + "description": "User is getting converted asynchronously", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/autolink" + "type": "object", + "properties": {}, + "additionalProperties": false }, "examples": { - "default": { - "$ref": "#/components/examples/autolink" + "202": { + "value": null } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/autolinks/1", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "User was converted" + }, + "403": { + "description": "Forbidden if user is the last owner of the organization, not a member of the organization, or if the enterprise enforces a policy for inviting outside collaborators. For more information, see \"[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories).\"" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "autolinks" + "category": "orgs", + "subcategory": "outside-collaborators" } - } - }, - "/repos/{owner}/{repo}/autolinks/{autolink_id}": { - "get": { - "summary": "Get an autolink reference of a repository", - "description": "This returns a single autolink reference by ID that was configured for the given repository.\n\nInformation about autolinks are only available to repository administrators.", + }, + "delete": { + "summary": "Remove outside collaborator from an organization", + "description": "Removing a user from this list will remove them from all the organization's repositories.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get-autolink", + "operationId": "orgs/remove-outside-collaborator", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/v3/repos#get-autolink" + "url": "https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/autolink-id" + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "description": "Response", + "204": { + "description": "Response" + }, + "422": { + "description": "Unprocessable Entity if user is a member of the organization", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/autolink" + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } }, "examples": { - "default": { - "$ref": "#/components/examples/autolink" + "response-if-user-is-a-member-of-the-organization": { + "value": { + "message": "You cannot specify an organization member to remove as an outside collaborator.", + "documentation_url": "https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization" + } } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "autolinks" + "category": "orgs", + "subcategory": "outside-collaborators" } - }, - "delete": { - "summary": "Delete an autolink reference from a repository", - "description": "This deletes a single autolink reference by ID that was configured for the given repository.\n\nInformation about autolinks are only available to repository administrators.", + } + }, + "/orgs/{org}/packages": { + "get": { + "summary": "List packages for an organization", + "description": "Lists packages in an organization readable by the user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/delete-autolink", + "operationId": "packages/list-packages-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/v3/repos#delete-autolink" + "url": "https://docs.github.com/rest/packages/packages#list-packages-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "name": "package_type", + "description": "The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry.", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/autolink-id" + "$ref": "#/components/parameters/package-visibility" + }, + { + "name": "page", + "description": "The page number of the results to fetch. For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-for-org" + } + } + } + } }, - "404": { - "$ref": "#/components/responses/not_found" - } + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "400": { + "$ref": "#/components/responses/package_es_list_error" + } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "autolinks" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/repos/{owner}/{repo}/automated-security-fixes": { - "put": { - "summary": "Enable automated security fixes", - "description": "Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)\".", + "/orgs/{org}/packages/{package_type}/{package_name}": { + "get": { + "summary": "Get a package for an organization", + "description": "Gets a specific package in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/enable-automated-security-fixes", + "operationId": "packages/get-package-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#enable-automated-security-fixes" + "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/org" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-org" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "london", - "note": "Enabling or disabling automated security fixes is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.london-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } }, "delete": { - "summary": "Disable automated security fixes", - "description": "Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)\".", + "summary": "Delete a package for an organization", + "description": "Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.\n\nThe authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/disable-automated-security-fixes", + "operationId": "packages/delete-package-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#disable-automated-security-fixes" + "url": "https://docs.github.com/rest/packages/packages#delete-a-package-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/org" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "london", - "note": "Enabling or disabling automated security fixes is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.london-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/repos/{owner}/{repo}/branches": { - "get": { - "summary": "List branches", - "description": "", + "/orgs/{org}/packages/{package_type}/{package_name}/restore": { + "post": { + "summary": "Restore a package for an organization", + "description": "Restores an entire package in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nThe authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/list-branches", + "operationId": "packages/restore-package-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-branches" + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/package-type" }, { - "name": "protected", - "description": "Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches.", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } + "$ref": "#/components/parameters/package-name" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "name": "token", + "description": "package token", + "schema": { + "type": "string" + }, + "required": false, + "in": "query" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/short-branch" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/short-branch-with-protection-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/repos/{owner}/{repo}/branches/{branch}": { + "/orgs/{org}/packages/{package_type}/{package_name}/versions": { "get": { - "summary": "Get a branch", - "description": "", + "summary": "List package versions for a package owned by an organization", + "description": "Lists package versions for a package owned by an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/get-branch", + "operationId": "packages/get-all-package-versions-for-package-owned-by-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-branch" + "url": "https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/package-name" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "name": "state", + "in": "query", + "required": false, + "description": "The state of the package, either active or deleted.", + "schema": { + "type": "string", + "enum": [ + "active", + "deleted" + ], + "default": "active" + } } ], "responses": { @@ -20836,53 +23124,61 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/branch-with-protection" + "type": "array", + "items": { + "$ref": "#/components/schemas/package-version" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-versions-for-org" + } } } } }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection": { + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { "get": { - "summary": "Get branch protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "summary": "Get a package version for an organization", + "description": "Gets a specific package version in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/get-branch-protection", + "operationId": "packages/get-package-version-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-branch-protection" + "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/package-name" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/package-version-id" } ], "responses": { @@ -20891,591 +23187,629 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/branch-protection" + "$ref": "#/components/schemas/package-version" }, "examples": { "default": { - "$ref": "#/components/examples/branch-protection" + "$ref": "#/components/examples/package-version-org" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "luke-cage", - "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "branches" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } }, - "put": { - "summary": "Update branch protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nProtecting a branch requires admin or owner permissions to the repository.\n\n**Note**: Passing new arrays of `users` and `teams` replaces their previous values.\n\n**Note**: The list of users, apps, and teams in total is limited to 100 items.", + "delete": { + "summary": "Delete package version for an organization", + "description": "Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nThe authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/update-branch-protection", + "operationId": "packages/delete-package-version-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-branch-protection" + "url": "https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/package-name" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/package-version-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "required_status_checks": { - "type": "object", - "description": "Require status checks to pass before merging. Set to `null` to disable.", - "nullable": true, - "properties": { - "strict": { - "type": "boolean", - "description": "Require branches to be up to date before merging." - }, - "contexts": { - "type": "array", - "description": "The list of status checks to require in order to merge into this branch", - "items": { - "type": "string" - } - } - }, - "required": [ - "strict", - "contexts" - ] - }, - "enforce_admins": { - "type": "boolean", - "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.", - "nullable": true - }, - "required_pull_request_reviews": { - "type": "object", - "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.", - "nullable": true, - "properties": { - "dismissal_restrictions": { - "type": "object", - "description": "Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", - "properties": { - "users": { - "type": "array", - "description": "The list of user `login`s with dismissal access", - "items": { - "type": "string" - } - }, - "teams": { - "type": "array", - "description": "The list of team `slug`s with dismissal access", - "items": { - "type": "string" - } - } - } - }, - "dismiss_stale_reviews": { - "type": "boolean", - "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit." - }, - "require_code_owner_reviews": { - "type": "boolean", - "description": "Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) review them." - }, - "required_approving_review_count": { - "type": "integer", - "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6." - } - } - }, - "restrictions": { - "type": "object", - "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.", - "nullable": true, - "properties": { - "users": { - "type": "array", - "description": "The list of user `login`s with push access", - "items": { - "type": "string" - } - }, - "teams": { - "type": "array", - "description": "The list of team `slug`s with push access", - "items": { - "type": "string" - } - }, - "apps": { - "type": "array", - "description": "The list of app `slug`s with push access", - "items": { - "type": "string" - } - } - }, - "required": [ - "users", - "teams" - ] - }, - "required_linear_history": { - "type": "boolean", - "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://help.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation." - }, - "allow_force_pushes": { - "type": "boolean", - "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"", - "nullable": true - }, - "allow_deletions": { - "type": "boolean", - "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation." - }, - "required_conversation_resolution": { - "type": "boolean", - "description": "Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`." - } - }, - "required": [ - "required_status_checks", - "enforce_admins", - "required_pull_request_reviews", - "restrictions" - ] - }, - "example": { - "required_status_checks": { - "strict": true, - "contexts": [ - "continuous-integration/travis-ci" - ] - }, - "enforce_admins": true, - "required_pull_request_reviews": { - "dismissal_restrictions": { - "users": [ - "octocat" - ], - "teams": [ - "justice-league" - ] - }, - "dismiss_stale_reviews": true, - "require_code_owner_reviews": true, - "required_approving_review_count": 2 - }, - "restrictions": { - "users": [ - "octocat" - ], - "teams": [ - "justice-league" - ], - "apps": [ - "super-ci" - ] - }, - "required_linear_history": true, - "allow_force_pushes": true, - "allow_deletions": true, - "required_conversation_resolution": true - } - } - } - }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/protected-branch" - } - } - } + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" }, "403": { "$ref": "#/components/responses/forbidden" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" - }, - "404": { - "$ref": "#/components/responses/not_found" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "luke-cage", - "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "branches" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } - }, - "delete": { - "summary": "Delete branch protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + } + }, + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + "post": { + "summary": "Restore package version for an organization", + "description": "Restores a specific package version in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nThe authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", "tags": [ - "repos" + "packages" ], - "operationId": "repos/delete-branch-protection", + "operationId": "packages/restore-package-version-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-branch-protection" + "url": "https://docs.github.com/rest/packages/packages#restore-package-version-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/package-name" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/package-version-id" } ], "responses": { "204": { "description": "Response" }, + "404": { + "$ref": "#/components/responses/not_found" + }, "403": { "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + "/orgs/{org}/personal-access-token-requests": { "get": { - "summary": "Get admin branch protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "summary": "List requests to access organization resources with fine-grained personal access tokens", + "description": "Lists requests from organization members to access organization resources with a fine-grained personal access token.\n\nOnly GitHub Apps can use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get-admin-branch-protection", + "operationId": "orgs/list-pat-grant-requests", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-admin-branch-protection" + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/personal-access-token-sort" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/personal-access-token-owner" + }, + { + "$ref": "#/components/parameters/personal-access-token-repository" + }, + { + "$ref": "#/components/parameters/personal-access-token-permission" + }, + { + "$ref": "#/components/parameters/personal-access-token-before" + }, + { + "$ref": "#/components/parameters/personal-access-token-after" + }, + { + "$ref": "#/components/parameters/personal-access-token-token-id" } ], "responses": { + "500": { + "$ref": "#/components/responses/internal_error" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-programmatic-access-grant-request" + } }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced-2" + "$ref": "#/components/examples/org-pat-grant-request-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "personal-access-tokens" } }, "post": { - "summary": "Set admin branch protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nAdding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.", + "summary": "Review requests to access organization resources with fine-grained personal access tokens", + "description": "Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token.\n\nOnly GitHub Apps can use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/set-admin-branch-protection", + "operationId": "orgs/review-pat-grant-requests-in-bulk", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#set-admin-branch-protection" + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pat_request_ids": { + "type": "array", + "description": "Unique identifiers of the requests for access via fine-grained personal access token. Must be formed of between 1 and 100 `pat_request_id` values.", + "items": { + "type": "integer" + }, + "minItems": 1, + "maxItems": 100 + }, + "action": { + "type": "string", + "description": "Action to apply to the requests.", + "enum": [ + "approve", + "deny" + ] + }, + "reason": { + "type": "string", + "description": "Reason for approving or denying the requests. Max 1024 characters.", + "maxLength": 1024, + "nullable": true + } + }, + "required": [ + "action" + ] + }, + "examples": { + "204": { + "summary": "Example of denying a request", + "value": { + "pat_request_ids": [ + 42, + 73 + ], + "action": "deny", + "reason": "Access is too broad." + } + } + } + } + } + }, + "responses": { + "500": { + "$ref": "#/components/responses/internal_error" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, + "202": { + "$ref": "#/components/responses/accepted" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "personal-access-tokens" + } + } + }, + "/orgs/{org}/personal-access-token-requests/{pat_request_id}": { + "post": { + "summary": "Review a request to access organization resources with a fine-grained personal access token", + "description": "Approves or denies a pending request to access organization resources via a fine-grained personal access token.\n\nOnly GitHub Apps can use this endpoint.", + "tags": [ + "orgs" + ], + "operationId": "orgs/review-pat-grant-request", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#review-a-request-to-access-organization-resources-with-a-fine-grained-personal-access-token" + }, + "parameters": [ { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "name": "pat_request_id", + "in": "path", + "description": "Unique identifier of the request for access via fine-grained personal access token.", + "required": true, + "schema": { + "type": "integer" + } } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "Action to apply to the request.", + "enum": [ + "approve", + "deny" + ] + }, + "reason": { + "type": "string", + "description": "Reason for approving or denying the request. Max 1024 characters.", + "maxLength": 1024, + "nullable": true + } }, - "examples": { - "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced-2" + "required": [ + "action" + ] + }, + "examples": { + "204": { + "summary": "Example of denying a request", + "value": { + "action": "deny", + "reason": "This request is denied because the access is too broad." } } } } } }, + "responses": { + "500": { + "$ref": "#/components/responses/internal_error" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "204": { + "$ref": "#/components/responses/no_content" + } + }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "personal-access-tokens" } - }, - "delete": { - "summary": "Delete admin branch protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoving admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.", + } + }, + "/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": { + "get": { + "summary": "List repositories requested to be accessed by a fine-grained personal access token", + "description": "Lists the repositories a fine-grained personal access token request is requesting access to.\n\nOnly GitHub Apps can use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/delete-admin-branch-protection", + "operationId": "orgs/list-pat-grant-request-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-admin-branch-protection" + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "pat_request_id", + "in": "path", + "description": "Unique identifier of the request for access via fine-grained personal access token.", + "required": true, + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" + "500": { + "$ref": "#/components/responses/internal_error" }, "404": { "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "personal-access-tokens" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + "/orgs/{org}/personal-access-tokens": { "get": { - "summary": "Get pull request review protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "summary": "List fine-grained personal access tokens with access to organization resources", + "description": "Lists approved fine-grained personal access tokens owned by organization members that can access organization resources.\n\nOnly GitHub Apps can use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get-pull-request-review-protection", + "operationId": "orgs/list-pat-grants", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-pull-request-review-protection" + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/personal-access-token-sort" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/personal-access-token-owner" + }, + { + "$ref": "#/components/parameters/personal-access-token-repository" + }, + { + "$ref": "#/components/parameters/personal-access-token-permission" + }, + { + "$ref": "#/components/parameters/personal-access-token-before" + }, + { + "$ref": "#/components/parameters/personal-access-token-after" + }, + { + "$ref": "#/components/parameters/personal-access-token-token-id" } ], "responses": { + "500": { + "$ref": "#/components/responses/internal_error" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-pull-request-review" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-programmatic-access-grant" + } }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-pull-request-review" + "$ref": "#/components/examples/org-pat-grant-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "luke-cage", - "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "personal-access-tokens" } }, - "patch": { - "summary": "Update pull request review protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nUpdating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.\n\n**Note**: Passing new arrays of `users` and `teams` replaces their previous values.", + "post": { + "summary": "Update the access to organization resources via fine-grained personal access tokens", + "description": "Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access.\n\nOnly GitHub Apps can use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/update-pull-request-review-protection", + "operationId": "orgs/update-pat-accesses", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-pull-request-review-protection" + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "dismissal_restrictions": { - "type": "object", - "description": "Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", - "properties": { - "users": { - "type": "array", - "description": "The list of user `login`s with dismissal access", - "items": { - "type": "string" - } - }, - "teams": { - "type": "array", - "description": "The list of team `slug`s with dismissal access", - "items": { - "type": "string" - } - } - } - }, - "dismiss_stale_reviews": { - "type": "boolean", - "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit." - }, - "require_code_owner_reviews": { - "type": "boolean", - "description": "Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed." + "action": { + "type": "string", + "description": "Action to apply to the fine-grained personal access token.", + "enum": [ + "revoke" + ] }, - "required_approving_review_count": { - "type": "integer", - "description": "Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6." + "pat_ids": { + "description": "The IDs of the fine-grained personal access tokens.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the fine-grained personal access token." + }, + "minItems": 1, + "maxItems": 100 } - } - }, - "example": { - "dismissal_restrictions": { - "users": [ - "octocat" - ], - "teams": [ - "justice-league" - ] }, - "dismiss_stale_reviews": true, - "require_code_owner_reviews": true, - "required_approving_review_count": 2 + "required": [ + "action", + "pat_ids" + ] + }, + "examples": { + "204": { + "summary": "Example of revoking a fine-grained personal access token.", + "value": { + "action": "revoke", + "pat_ids": [ + 1296269, + 1296280 + ] + } + } } } } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/protected-branch-pull-request-review" - }, - "examples": { - "default": { - "$ref": "#/components/examples/protected-branch-pull-request-review" - } - } - } - } + "500": { + "$ref": "#/components/responses/internal_error" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "202": { + "$ref": "#/components/responses/accepted" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "422": { "$ref": "#/components/responses/validation_failed" @@ -21484,135 +23818,181 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "luke-cage", - "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "personal-access-tokens" } - }, - "delete": { - "summary": "Delete pull request review protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + } + }, + "/orgs/{org}/personal-access-tokens/{pat_id}": { + "post": { + "summary": "Update the access a fine-grained personal access token has to organization resources", + "description": "Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access.\n\nOnly GitHub Apps can use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/delete-pull-request-review-protection", + "operationId": "orgs/update-pat-access", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-pull-request-review-protection" + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/fine-grained-personal-access-token-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "Action to apply to the fine-grained personal access token.", + "enum": [ + "revoke" + ] + } + }, + "required": [ + "action" + ] + }, + "examples": { + "204": { + "summary": "Example of revoking a fine-grained personal access token.", + "value": { + "action": "revoke" + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "500": { + "$ref": "#/components/responses/internal_error" }, "404": { "$ref": "#/components/responses/not_found" + }, + "204": { + "$ref": "#/components/responses/no_content" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "personal-access-tokens" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { + "/orgs/{org}/personal-access-tokens/{pat_id}/repositories": { "get": { - "summary": "Get commit signature protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://help.github.com/articles/signing-commits-with-gpg) in GitHub Help.\n\n**Note**: You must enable branch protection to require signed commits.", + "summary": "List repositories a fine-grained personal access token has access to", + "description": "Lists the repositories a fine-grained personal access token has access to.\n\nOnly GitHub Apps can use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get-commit-signature-protection", + "operationId": "orgs/list-pat-grant-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-commit-signature-protection" + "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "pat_id", + "in": "path", + "description": "Unique identifier of the fine-grained personal access token.", + "required": true, + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { + "500": { + "$ref": "#/components/responses/internal_error" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced" + "$ref": "#/components/examples/minimal-repository-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "zzzax", - "note": "Protected Branches API can now manage a setting for requiring signed commits. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-02-22-protected-branches-required-signatures) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.zzzax-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "personal-access-tokens" } - }, - "post": { - "summary": "Create commit signature protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.", + } + }, + "/orgs/{org}/private-registries": { + "get": { + "summary": "List private registries for an organization", + "description": "\nLists all private registry configurations available at the organization-level without revealing their encrypted\nvalues.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "repos" + "private-registries" ], - "operationId": "repos/create-commit-signature-protection", + "operationId": "private-registries/list-org-private-registries", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-commit-signature-protection" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#list-private-registries-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -21621,16 +24001,39 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "type": "object", + "required": [ + "total_count", + "configurations" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "configurations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/org-private-registry-configuration" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced" + "$ref": "#/components/examples/org-private-registry-configurations-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, + "400": { + "$ref": "#/components/responses/bad_request" + }, "404": { "$ref": "#/components/responses/not_found" } @@ -21638,96 +24041,266 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "zzzax", - "note": "Protected Branches API can now manage a setting for requiring signed commits. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-02-22-protected-branches-required-signatures) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.zzzax-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "branches" + "category": "private-registries", + "subcategory": "organization-configurations" } }, - "delete": { - "summary": "Delete commit signature protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits.", + "post": { + "summary": "Create a private registry for an organization", + "description": "\nCreates a private registry configuration with an encrypted value for an organization. Encrypt your secret using [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "repos" + "private-registries" ], - "operationId": "repos/delete-commit-signature-protection", + "operationId": "private-registries/create-org-private-registry", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-commit-signature-protection" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#create-a-private-registry-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" } ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "zzzax", - "note": "Protected Branches API can now manage a setting for requiring signed commits. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-02-22-protected-branches-required-signatures) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.zzzax-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "branches" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "registry_type": { + "description": "The registry type.", + "type": "string", + "enum": [ + "maven_repository", + "nuget_feed", + "goproxy_server", + "npm_registry", + "rubygems_server", + "cargo_registry", + "composer_repository", + "docker_registry", + "git_source", + "helm_registry", + "hex_organization", + "hex_repository", + "pub_repository", + "python_index", + "terraform_registry" + ] + }, + "url": { + "description": "The URL of the private registry.", + "type": "string", + "format": "uri" + }, + "username": { + "description": "The username to use when authenticating with the private registry. This field should be omitted if the private registry does not require a username for authentication.", + "type": "string", + "nullable": true + }, + "replaces_base": { + "description": "Whether this private registry should replace the base registry (e.g., npmjs.org for npm, rubygems.org for rubygems). When set to `true`, Dependabot will only use this registry and will not fall back to the public registry. When set to `false` (default), Dependabot will use this registry for scoped packages but may fall back to the public registry for other packages.", + "type": "boolean", + "default": false + }, + "encrypted_value": { + "description": "The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get private registries public key for an organization](https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization) endpoint.", + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "description": "The ID of the key you used to encrypt the secret.", + "type": "string" + }, + "visibility": { + "description": "Which type of organization repositories have access to the private registry. `selected` means only the repositories specified by `selected_repository_ids` can access the private registry.", + "type": "string", + "enum": [ + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "description": "An array of repository IDs that can access the organization private registry. You can only provide a list of repository IDs when `visibility` is set to `selected`. You can manage the list of selected repositories using the [Update a private registry for an organization](https://docs.github.com/rest/private-registries/organization-configurations#update-a-private-registry-for-an-organization) endpoint. This field should be omitted if `visibility` is set to `all` or `private`.", + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "registry_type", + "url", + "encrypted_value", + "key_id", + "visibility" + ] + }, + "examples": { + "org-private-registry-with-private-visibility": { + "summary": "Example of a private registry configuration with private visibility", + "value": { + "registry_type": "maven_repository", + "url": "https://maven.pkg.github.com/organization/", + "username": "monalisa", + "replaces_base": true, + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "private" + } + }, + "org-private-registry-with-selected-visibility": { + "summary": "Example of a private registry configuration with selected visibility", + "value": { + "registry_type": "maven_repository", + "url": "https://maven.pkg.github.com/organization/", + "username": "monalisa", + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "The organization private registry configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-private-registry-configuration-with-selected-repositories" + }, + "examples": { + "org-private-registry-with-selected-visibility": { + "$ref": "#/components/examples/org-private-registry-configuration" + }, + "org-private-registry-with-private-visibility": { + "$ref": "#/components/examples/org-private-registry-configuration-with-selected-repositories" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "private-registries", + "subcategory": "organization-configurations" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + "/orgs/{org}/private-registries/public-key": { "get": { - "summary": "Get status checks protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "summary": "Get private registries public key for an organization", + "description": "\nGets the org public key, which is needed to encrypt private registry secrets. You need to encrypt a secret before you can create or update secrets.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "repos" + "private-registries" ], - "operationId": "repos/get-status-checks-protection", + "operationId": "private-registries/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-status-checks-protection" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "key_id", + "key" + ], + "properties": { + "key_id": { + "description": "The identifier for the key.", + "example": "012345678912345678", + "type": "string" + }, + "key": { + "description": "The Base64 encoded public key.", + "example": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", + "type": "string" + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/private-registries-public-key" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "private-registries", + "subcategory": "organization-configurations" + } + } + }, + "/orgs/{org}/private-registries/{secret_name}": { + "get": { + "summary": "Get a private registry for an organization", + "description": "\nGet the configuration of a single private registry defined for an organization, omitting its encrypted value.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "private-registries" + ], + "operationId": "private-registries/get-org-private-registry", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/private-registries/organization-configurations#get-a-private-registry-for-an-organization" + }, + "parameters": [ { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/secret-name" } ], "responses": { "200": { - "description": "Response", + "description": "The specified private registry configuration for the organization", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/status-check-policy" + "$ref": "#/components/schemas/org-private-registry-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/status-check-policy" + "$ref": "#/components/examples/org-private-registry-configuration" } } } @@ -21740,78 +24313,114 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "private-registries", + "subcategory": "organization-configurations" } }, "patch": { - "summary": "Update status check protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nUpdating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.", + "summary": "Update a private registry for an organization", + "description": "\nUpdates a private registry configuration with an encrypted value for an organization. Encrypt your secret using [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "repos" + "private-registries" ], - "operationId": "repos/update-status-check-protection", + "operationId": "private-registries/update-org-private-registry", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-status-check-potection" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#update-a-private-registry-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "strict": { + "registry_type": { + "description": "The registry type.", + "type": "string", + "enum": [ + "maven_repository", + "nuget_feed", + "goproxy_server", + "npm_registry", + "rubygems_server", + "cargo_registry", + "composer_repository", + "docker_registry", + "git_source", + "helm_registry", + "hex_organization", + "hex_repository", + "pub_repository", + "python_index", + "terraform_registry" + ] + }, + "url": { + "description": "The URL of the private registry.", + "type": "string", + "format": "uri" + }, + "username": { + "description": "The username to use when authenticating with the private registry. This field should be omitted if the private registry does not require a username for authentication.", + "type": "string", + "nullable": true + }, + "replaces_base": { + "description": "Whether this private registry should replace the base registry (e.g., npmjs.org for npm, rubygems.org for rubygems). When set to `true`, Dependabot will only use this registry and will not fall back to the public registry. When set to `false` (default), Dependabot will use this registry for scoped packages but may fall back to the public registry for other packages.", "type": "boolean", - "description": "Require branches to be up to date before merging." + "default": false }, - "contexts": { + "encrypted_value": { + "description": "The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get private registries public key for an organization](https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization) endpoint.", + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "description": "The ID of the key you used to encrypt the secret.", + "type": "string" + }, + "visibility": { + "description": "Which type of organization repositories have access to the private registry. `selected` means only the repositories specified by `selected_repository_ids` can access the private registry.", + "type": "string", + "enum": [ + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "description": "An array of repository IDs that can access the organization private registry. You can only provide a list of repository IDs when `visibility` is set to `selected`. This field should be omitted if `visibility` is set to `all` or `private`.", "type": "array", - "description": "The list of status checks to require in order to merge into this branch", "items": { - "type": "string" + "type": "integer" } } } }, - "example": { - "strict": true, - "contexts": [ - "continuous-integration/travis-ci" - ] + "examples": { + "default": { + "value": { + "username": "monalisa", + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } } } } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/status-check-policy" - }, - "examples": { - "default": { - "$ref": "#/components/examples/status-check-policy" - } - } - } - } + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" @@ -21823,72 +24432,81 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "private-registries", + "subcategory": "organization-configurations" } }, "delete": { - "summary": "Remove status check protection", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "summary": "Delete a private registry for an organization", + "description": "\nDelete a private registry configuration at the organization-level.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "repos" + "private-registries" ], - "operationId": "repos/remove-status-check-protection", + "operationId": "private-registries/delete-org-private-registry", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#remove-status-check-protection" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#delete-a-private-registry-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/secret-name" } ], "responses": { "204": { "description": "Response" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "private-registries", + "subcategory": "organization-configurations" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + "/orgs/{org}/projectsV2": { "get": { - "summary": "Get all status check contexts", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "summary": "List projects for organization", + "description": "List all projects owned by a specific organization accessible by the authenticated user.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/get-all-status-check-contexts", + "operationId": "projects/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-all-status-check-contexts" + "url": "https://docs.github.com/rest/projects/projects#list-projects-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "q", + "description": "Limit results to projects of the specified type.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -21899,186 +24517,221 @@ "schema": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/projects-v2" } }, - "example": [ - "continuous-integration/travis-ci" - ] + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } }, - "404": { - "$ref": "#/components/responses/not_found" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "projects" } - }, - "post": { - "summary": "Add status check contexts", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + } + }, + "/orgs/{org}/projectsV2/{project_number}": { + "get": { + "summary": "Get project for organization", + "description": "Get a specific organization-owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/add-status-check-contexts", + "operationId": "projects/get-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#add-status-check-contexts" + "url": "https://docs.github.com/rest/projects/projects#get-project-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2" + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "projects" + } + } + }, + "/orgs/{org}/projectsV2/{project_number}/drafts": { + "post": { + "summary": "Create draft item for organization owned project", + "description": "Create draft issue item for the specified organization owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/create-draft-item-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/drafts#create-draft-item-for-organization-owned-project" + }, + "parameters": [ { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/project-number" } ], "requestBody": { + "required": true, + "description": "Details of the draft item to create in the project.", "content": { "application/json": { "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "contexts": { - "type": "array", - "description": "contexts parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "contexts" - ], - "example": { - "contexts": [ - "contexts" - ] - } + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the draft issue item to create in the project." }, - { - "type": "array", - "description": "contexts parameter", - "items": { - "type": "string" - } + "body": { + "type": "string", + "description": "The body content of the draft issue item to create in the project." } + }, + "required": [ + "title" ] + }, + "examples": { + "title": { + "summary": "Example with Sample Draft Issue Title", + "value": { + "title": "Sample Draft Issue Title" + } + }, + "body": { + "summary": "Example with Sample Draft Issue Title and Body", + "value": { + "title": "Sample Draft Issue Title", + "body": "This is the body content of the draft issue." + } + } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/components/schemas/projects-v2-item-simple" }, - "example": [ - "continuous-integration/travis-ci", - "continuous-integration/jenkins" - ] + "examples": { + "draft_issue": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "304": { + "$ref": "#/components/responses/not_modified" }, "403": { "$ref": "#/components/responses/forbidden" }, - "404": { - "$ref": "#/components/responses/not_found" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "contexts", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "drafts" } - }, - "put": { - "summary": "Set status check contexts", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + } + }, + "/orgs/{org}/projectsV2/{project_number}/fields": { + "get": { + "summary": "List project fields for organization", + "description": "List all fields for a specific organization-owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/set-status-check-contexts", + "operationId": "projects/list-fields-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#set-status-check-contexts" + "url": "https://docs.github.com/rest/projects/fields#list-project-fields-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "contexts": { - "type": "array", - "description": "contexts parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "contexts" - ], - "example": { - "contexts": [ - "contexts" - ] - } - }, - { - "type": "array", - "description": "contexts parameter", - "items": { - "type": "string" - } - } - ] - } - } - } - }, "responses": { "200": { "description": "Response", @@ -22087,56 +24740,60 @@ "schema": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/projects-v2-field" } }, - "example": [ - "continuous-integration/travis-ci" - ] + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2-field-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "304": { + "$ref": "#/components/responses/not_modified" }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "contexts", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "fields" } }, - "delete": { - "summary": "Remove status check contexts", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "post": { + "summary": "Add a field to an organization-owned project.", + "description": "Add a field to an organization-owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/remove-status-check-contexts", + "operationId": "projects/add-field-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#remove-status-check-contexts" + "url": "https://docs.github.com/rest/projects/fields#add-a-field-to-an-organization-owned-project" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -22144,54 +24801,163 @@ { "type": "object", "properties": { - "contexts": { + "issue_field_id": { + "type": "integer", + "description": "The ID of the IssueField to create the field for." + } + }, + "required": [ + "issue_field_id" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + }, + "data_type": { + "type": "string", + "description": "The field's data type.", + "enum": [ + "text", + "number", + "date" + ] + } + }, + "required": [ + "name", + "data_type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + }, + "data_type": { + "type": "string", + "description": "The field's data type.", + "enum": [ + "single_select" + ] + }, + "single_select_options": { "type": "array", - "description": "contexts parameter", + "description": "The options available for single select fields. At least one option must be provided when creating a single select field.", "items": { - "type": "string" + "$ref": "#/components/schemas/projects-v2-field-single-select-option" } } }, "required": [ - "contexts" + "name", + "data_type", + "single_select_options" ], - "example": { - "contexts": [ - "contexts" - ] - } + "additionalProperties": false }, { - "type": "array", - "description": "contexts parameter", - "items": { - "type": "string" - } + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + }, + "data_type": { + "type": "string", + "description": "The field's data type.", + "enum": [ + "iteration" + ] + }, + "iteration_configuration": { + "$ref": "#/components/schemas/projects-v2-field-iteration-configuration" + } + }, + "required": [ + "name", + "data_type", + "iteration_configuration" + ], + "additionalProperties": false } ] + }, + "examples": { + "text_field": { + "summary": "Create a text field", + "value": { + "name": "Team notes", + "data_type": "text" + } + }, + "number_field": { + "summary": "Create a number field", + "value": { + "name": "Story points", + "data_type": "number" + } + }, + "date_field": { + "summary": "Create a date field", + "value": { + "name": "Due date", + "data_type": "date" + } + }, + "single_select_field": { + "$ref": "#/components/examples/projects-v2-field-single-select-request" + }, + "iteration_field": { + "$ref": "#/components/examples/projects-v2-field-iteration-request" + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response for adding a field to an organization-owned project.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/components/schemas/projects-v2-field" }, - "example": [ - "continuous-integration/travis-ci" - ] + "examples": { + "text_field": { + "$ref": "#/components/examples/projects-v2-field-text" + }, + "number_field": { + "$ref": "#/components/examples/projects-v2-field-number" + }, + "date_field": { + "$ref": "#/components/examples/projects-v2-field-date" + }, + "single_select_field": { + "$ref": "#/components/examples/projects-v2-field-single-select" + }, + "iteration_field": { + "$ref": "#/components/examples/projects-v2-field-iteration" + } + } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" }, "422": { "$ref": "#/components/responses/validation_failed" @@ -22200,36 +24966,32 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "contexts", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "fields" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + "/orgs/{org}/projectsV2/{project_number}/fields/{field_id}": { "get": { - "summary": "Get access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists who has access to this protected branch.\n\n**Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories.", + "summary": "Get project field for organization", + "description": "Get a specific field for an organization-owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/get-access-restrictions", + "operationId": "projects/get-field-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-access-restrictions" + "url": "https://docs.github.com/rest/projects/fields#get-project-field-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/field-id" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -22238,89 +25000,95 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/branch-restriction-policy" + "$ref": "#/components/schemas/projects-v2-field" }, "examples": { "default": { - "$ref": "#/components/examples/branch-restriction-policy" + "$ref": "#/components/examples/projects-v2-field" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" - } - }, - "delete": { - "summary": "Delete access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nDisables the ability to restrict who can push to this branch.", - "tags": [ - "repos" - ], - "operationId": "repos/delete-access-restrictions", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-access-restrictions" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "$ref": "#/components/parameters/repo" + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "$ref": "#/components/parameters/branch" - } - ], - "responses": { - "204": { - "description": "Response" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "fields" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + "/orgs/{org}/projectsV2/{project_number}/items": { "get": { - "summary": "Get apps with access to the protected branch", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.", + "summary": "List items for an organization owned project", + "description": "List all items for a specific organization-owned project accessible by the authenticated user.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/get-apps-with-access-to-protected-branch", + "operationId": "projects/list-items-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-apps-with-access-to-the-protected-branch" + "url": "https://docs.github.com/rest/projects/items#list-items-for-an-organization-owned-project" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "name": "q", + "description": "Search query to filter items, see [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) for more information.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "fields", + "description": "Limit results to specific fields, by their IDs. If not specified, the title field will be returned.\n\nExample: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" + } + } + ] + } + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -22331,269 +25099,403 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/integration" + "$ref": "#/components/schemas/projects-v2-item-with-content" } }, "examples": { "default": { - "$ref": "#/components/examples/integration-items" + "$ref": "#/components/examples/projects-v2-item-with-content" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "404": { - "$ref": "#/components/responses/not_found" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "items" } }, "post": { - "summary": "Add app access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.\n\n| Type | Description |\n| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "summary": "Add item to organization owned project", + "description": "Add an issue or pull request item to the specified organization owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/add-app-access-restrictions", + "operationId": "projects/add-item-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#add-app-access-restrictions" + "url": "https://docs.github.com/rest/projects/items#add-item-to-organization-owned-project" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/project-number" } ], "requestBody": { + "required": true, + "description": "Details of the item to add to the project. You can specify either the unique ID or the repository owner, name, and issue/PR number.", "content": { "application/json": { "schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": [ + "Issue", + "PullRequest" + ], + "description": "The type of item to add to the project. Must be either Issue or PullRequest." + }, + "id": { + "type": "integer", + "description": "The unique identifier of the issue or pull request to add to the project." + }, + "owner": { + "type": "string", + "description": "The repository owner login." + }, + "repo": { + "type": "string", + "description": "The repository name." + }, + "number": { + "type": "integer", + "description": "The issue or pull request number." + } + }, + "required": [ + "type" + ], "oneOf": [ { - "type": "object", - "properties": { - "apps": { - "type": "array", - "description": "apps parameter", - "items": { - "type": "string" - } - } - }, "required": [ - "apps" - ], - "example": { - "apps": [ - "my-app" - ] - } + "id" + ] }, { - "type": "array", - "items": { - "type": "string" - } + "required": [ + "owner", + "repo", + "number" + ] } ] + }, + "examples": { + "issue_with_id": { + "summary": "Add an issue using its unique ID", + "value": { + "type": "Issue", + "id": 3 + } + }, + "pull_request_with_id": { + "summary": "Add a pull request using its unique ID", + "value": { + "type": "PullRequest", + "id": 3 + } + }, + "issue_with_nwo": { + "summary": "Add an issue using repository owner, name, and issue number", + "value": { + "type": "Issue", + "owner": "octocat", + "repo": "hello-world", + "number": 42 + } + }, + "pull_request_with_nwo": { + "summary": "Add a pull request using repository owner, name, and PR number", + "value": { + "type": "PullRequest", + "owner": "octocat", + "repo": "hello-world", + "number": 123 + } + } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/integration" - } + "$ref": "#/components/schemas/projects-v2-item-simple" }, "examples": { - "default": { - "$ref": "#/components/examples/integration-items" + "issue_with_id": { + "summary": "Response for adding an issue using its unique ID", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + }, + "pull_request_with_id": { + "summary": "Response for adding a pull request using its unique ID", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + }, + "issue_with_nwo": { + "summary": "Response for adding an issue using repository owner, name, and issue number", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + }, + "pull_request_with_nwo": { + "summary": "Response for adding a pull request using repository owner, name, and PR number", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "apps", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "items" } - }, - "put": { - "summary": "Set app access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.\n\n| Type | Description |\n| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + } + }, + "/orgs/{org}/projectsV2/{project_number}/items/{item_id}": { + "get": { + "summary": "Get an item for an organization owned project", + "description": "Get a specific item from an organization-owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/set-app-access-restrictions", + "operationId": "projects/get-org-item", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#set-app-access-restrictions" + "url": "https://docs.github.com/rest/projects/items#get-an-item-for-an-organization-owned-project" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "apps": { - "type": "array", - "description": "apps parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "apps" - ], - "example": { - "apps": [ - "my-app" - ] - } - }, - { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/components/parameters/item-id" + }, + { + "name": "fields", + "description": "Limit results to specific fields, by their IDs. If not specified, the title field will be returned.\n\nExample: fields[]=123&fields[]=456&fields[]=789 or fields=123,456,789", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" } - ] - } + } + ] } } - }, + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/integration" - } + "$ref": "#/components/schemas/projects-v2-item-with-content" }, "examples": { "default": { - "$ref": "#/components/examples/integration-items" + "$ref": "#/components/examples/projects-v2-item-with-content" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "apps", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "items" } }, - "delete": { - "summary": "Remove app access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.\n\n| Type | Description |\n| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "patch": { + "summary": "Update project item for organization", + "description": "Update a specific item in an organization-owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/remove-app-access-restrictions", + "operationId": "projects/update-item-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#remove-app-access-restrictions" + "url": "https://docs.github.com/rest/projects/items#update-project-item-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/item-id" } ], "requestBody": { + "required": true, + "description": "Field updates to apply to the project item. Only text, number, date, single select, and iteration fields are supported.", "content": { "application/json": { "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "apps": { - "type": "array", - "description": "apps parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "apps" - ], - "example": { - "apps": [ - "my-app" - ] - } - }, - { + "type": "object", + "properties": { + "fields": { "type": "array", + "description": "A list of field updates to apply.", "items": { - "type": "string" + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the project field to update." + }, + "value": { + "description": "The new value for the field:\n- For text, number, and date fields, provide the new value directly.\n- For single select and iteration fields, provide the ID of the option or iteration.\n- To clear the field, set this to null.", + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "required": [ + "id", + "value" + ] } } + }, + "required": [ + "fields" ] + }, + "examples": { + "text_field": { + "summary": "Update a text field", + "value": { + "fields": [ + { + "id": 123, + "value": "Updated text value" + } + ] + } + }, + "number_field": { + "summary": "Update a number field", + "value": { + "fields": [ + { + "id": 456, + "value": 42.5 + } + ] + } + }, + "date_field": { + "summary": "Update a date field", + "value": { + "fields": [ + { + "id": 789, + "value": "2023-10-05" + } + ] + } + }, + "single_select_field": { + "summary": "Update a single select field", + "value": { + "fields": [ + { + "id": 789, + "value": "47fc9ee4" + } + ] + } + }, + "iteration_field": { + "summary": "Update an iteration field", + "value": { + "fields": [ + { + "id": 1011, + "value": "866ee5b8" + } + ] + } + } } } } @@ -22604,19 +25506,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/integration" - } + "$ref": "#/components/schemas/projects-v2-item-with-content" }, "examples": { - "default": { - "$ref": "#/components/examples/integration-items" + "text_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "number_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "date_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "single_select_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "iteration_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" } } } } }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, "422": { "$ref": "#/components/responses/validation_failed" } @@ -22624,316 +25544,272 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "apps", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "items" } - } - }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { - "get": { - "summary": "Get teams with access to the protected branch", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the teams who have push access to this branch. The list includes child teams.", + }, + "delete": { + "summary": "Delete project item for organization", + "description": "Delete a specific item from an organization-owned project.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/get-teams-with-access-to-protected-branch", + "operationId": "projects/delete-item-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-teams-with-access-to-the-protected-branch" + "url": "https://docs.github.com/rest/projects/items#delete-project-item-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/item-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-items" - } - } - } - } + "204": { + "description": "Response" }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "items" } - }, + } + }, + "/orgs/{org}/projectsV2/{project_number}/views": { "post": { - "summary": "Add team access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified teams push access for this branch. You can also give push access to child teams.\n\n| Type | Description |\n| ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n| `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "summary": "Create a view for an organization-owned project", + "description": "Create a new view in an organization-owned project. Views allow you to customize how items in a project are displayed and filtered.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/add-team-access-restrictions", + "operationId": "projects/create-view-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#add-team-access-restrictions" + "url": "https://docs.github.com/rest/projects/views#create-a-view-for-an-organization-owned-project" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/project-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "teams": { - "type": "array", - "description": "teams parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "teams" + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the view.", + "example": "Sprint Board" + }, + "layout": { + "type": "string", + "description": "The layout of the view.", + "enum": [ + "table", + "board", + "roadmap" ], - "example": { - "teams": [ - "my-team" - ] - } + "example": "board" }, - { + "filter": { + "type": "string", + "description": "The filter query for the view. See [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) for more information.", + "example": "is:issue is:open" + }, + "visible_fields": { "type": "array", - "description": "teams parameter", + "description": "`visible_fields` is not applicable to `roadmap` layout views.\nFor `table` and `board` layouts, this represents the field IDs that should be visible in the view. If not provided, the default visible fields will be used.", "items": { - "type": "string" - } + "type": "integer" + }, + "example": [ + 123, + 456, + 789 + ] } - ] + }, + "required": [ + "name", + "layout" + ], + "additionalProperties": false + }, + "examples": { + "table_view": { + "summary": "Create a table view", + "value": { + "name": "All Issues", + "layout": "table", + "filter": "is:issue", + "visible_fields": [ + 123, + 456, + 789 + ] + } + }, + "board_view": { + "summary": "Create a board view with filter", + "value": { + "name": "Sprint Board", + "layout": "board", + "filter": "is:issue is:open label:sprint", + "visible_fields": [ + 123, + 456, + 789 + ] + } + }, + "roadmap_view": { + "summary": "Create a roadmap view", + "value": { + "name": "Product Roadmap", + "layout": "roadmap" + } + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response for creating a view in an organization-owned project.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "$ref": "#/components/schemas/projects-v2-view" }, "examples": { - "default": { - "$ref": "#/components/examples/team-items" + "table_view": { + "summary": "Response for creating a table view", + "value": { + "$ref": "#/components/examples/projects-v2-view" + } + }, + "board_view": { + "summary": "Response for creating a board view with filter", + "value": { + "$ref": "#/components/examples/projects-v2-view" + } + }, + "roadmap_view": { + "summary": "Response for creating a roadmap view", + "value": { + "$ref": "#/components/examples/projects-v2-view" + } } } } } }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "teams", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "views" } - }, - "put": { - "summary": "Set team access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.\n\n| Type | Description |\n| ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n| `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + } + }, + "/orgs/{org}/projectsV2/{project_number}/views/{view_number}/items": { + "get": { + "summary": "List items for an organization project view", + "description": "List items in an organization project with the saved view's filter applied.", "tags": [ - "repos" + "projects" ], - "operationId": "repos/set-team-access-restrictions", + "operationId": "projects/list-view-items-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#set-team-access-restrictions" + "url": "https://docs.github.com/rest/projects/items#list-items-for-an-organization-project-view" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "teams": { - "type": "array", - "description": "teams parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "teams" - ], - "example": { - "teams": [ - "my-team" - ] - } - }, - { - "type": "array", - "description": "teams parameter", - "items": { - "type": "string" - } - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { + "$ref": "#/components/parameters/view-number" + }, + { + "name": "fields", + "description": "Limit results to specific fields, by their IDs. If not specified, the\ntitle field will be returned.\n\nExample: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { "type": "array", + "maxItems": 50, "items": { - "$ref": "#/components/schemas/team" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-items" + "type": "string" } } - } + ] } }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "teams", - "category": "repos", - "subcategory": "branches" - } - }, - "delete": { - "summary": "Remove team access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of a team to push to this branch. You can also remove push access for child teams.\n\n| Type | Description |\n| ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", - "tags": [ - "repos" - ], - "operationId": "repos/remove-team-access-restrictions", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#remove-team-access-restrictions" - }, - "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/pagination-before" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/pagination-after" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/per-page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "teams": { - "type": "array", - "description": "teams parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "teams" - ], - "example": { - "teams": [ - "my-team" - ] - } - }, - { - "type": "array", - "description": "teams parameter", - "items": { - "type": "string" - } - } - ] - } - } - } - }, "responses": { "200": { "description": "Response", @@ -22942,54 +25818,58 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/team" + "$ref": "#/components/schemas/projects-v2-item-with-content" } }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/projects-v2-item-with-content" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "teams", - "category": "repos", - "subcategory": "branches" + "category": "projects", + "subcategory": "items" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { + "/orgs/{org}/properties/schema": { "get": { - "summary": "Get users with access to the protected branch", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the people who have push access to this branch.", + "summary": "Get all custom properties for an organization", + "description": "Gets all custom properties defined for an organization.\nOrganization members can read these properties.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get-users-with-access-to-protected-branch", + "operationId": "orgs/custom-properties-for-repos-get-organization-definitions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-users-with-access-to-the-protected-branch" + "url": "https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -23000,17 +25880,20 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/custom-property" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/custom-properties" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } @@ -23018,67 +25901,75 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "custom-properties" } }, - "post": { - "summary": "Add user access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified people push access for this branch.\n\n| Type | Description |\n| ------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "patch": { + "summary": "Create or update custom properties for an organization", + "description": "Creates new or updates existing custom properties defined for an organization in a batch.\n\nIf the property already exists, the existing property will be replaced with the new values.\nMissing optional values will fall back to default values, previous values will be overwritten.\nE.g. if a property exists with `values_editable_by: org_and_repo_actors` and it's updated without specifying `values_editable_by`, it will be updated to default value `org_actors`.\n\nTo use this endpoint, the authenticated user must be one of:\n - An administrator for the organization.\n - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/add-user-access-restrictions", + "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-definitions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#add-user-access-restrictions" + "url": "https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "users": { - "type": "array", - "description": "users parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "users" - ], - "example": { - "users": [ - "mona" - ] - } - }, - { + "type": "object", + "properties": { + "properties": { "type": "array", + "description": "The array of custom properties to create or update.", "items": { - "type": "string" - } + "$ref": "#/components/schemas/custom-property" + }, + "minItems": 1, + "maxItems": 100 } + }, + "required": [ + "properties" ] + }, + "examples": { + "default": { + "value": { + "properties": [ + { + "property_name": "environment", + "value_type": "single_select", + "required": true, + "default_value": "production", + "description": "Prod or dev environment", + "allowed_values": [ + "production", + "development" + ], + "values_editable_by": "org_actors" + }, + { + "property_name": "service", + "value_type": "string" + }, + { + "property_name": "team", + "value_type": "string", + "description": "Team owning the repository" + } + ] + } + } } } } @@ -23091,178 +25982,121 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/custom-property" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/custom-properties" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "users", - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "custom-properties" } - }, - "put": { - "summary": "Set user access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.\n\n| Type | Description |\n| ------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + } + }, + "/orgs/{org}/properties/schema/{custom_property_name}": { + "get": { + "summary": "Get a custom property for an organization", + "description": "Gets a custom property that is defined for an organization.\nOrganization members can read these properties.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/set-user-access-restrictions", + "operationId": "orgs/custom-properties-for-repos-get-organization-definition", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#set-user-access-restrictions" + "url": "https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/custom-property-name" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "users": { - "type": "array", - "description": "users parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "users" - ], - "example": { - "users": [ - "mona" - ] - } - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/custom-property" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/custom-property" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "users", - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "custom-properties" } }, - "delete": { - "summary": "Remove user access restrictions", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of a user to push to this branch.\n\n| Type | Description |\n| ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "put": { + "summary": "Create or update a custom property for an organization", + "description": "Creates a new or updates an existing custom property that is defined for an organization.\n\nTo use this endpoint, the authenticated user must be one of:\n- An administrator for the organization.\n- A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/remove-user-access-restrictions", + "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-definition", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#remove-user-access-restrictions" + "url": "https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/custom-property-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "users": { - "type": "array", - "description": "users parameter", - "items": { - "type": "string" - } - } - }, - "required": [ - "users" - ], - "example": { - "users": [ - "mona" - ] - } - }, - { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/components/schemas/custom-property-set-payload" + }, + "examples": { + "default": { + "value": { + "value_type": "single_select", + "required": true, + "default_value": "production", + "description": "Prod or dev environment", + "allowed_values": [ + "production", + "development" + ] } - ] + } } } } @@ -23273,93 +26107,122 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/custom-property" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/custom-property" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "requestBodyParameterName": "users", - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "custom-properties" + } + }, + "delete": { + "summary": "Remove a custom property for an organization", + "description": "Removes a custom property that is defined for an organization.\n\nTo use this endpoint, the authenticated user must be one of:\n - An administrator for the organization.\n - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization.", + "tags": [ + "orgs" + ], + "operationId": "orgs/custom-properties-for-repos-delete-organization-definition", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/custom-property-name" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "custom-properties" } } }, - "/repos/{owner}/{repo}/branches/{branch}/rename": { - "post": { - "summary": "Rename a branch", - "description": "Renames a branch in a repository.\n\n**Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see \"[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)\".\n\nThe permissions required to use this endpoint depends on whether you are renaming the default branch.\n\nTo rename a non-default branch:\n\n* Users must have push access.\n* GitHub Apps must have the `contents:write` repository permission.\n\nTo rename the default branch:\n\n* Users must have admin or owner permissions.\n* GitHub Apps must have the `administration:write` repository permission.", + "/orgs/{org}/properties/values": { + "get": { + "summary": "List custom property values for organization repositories", + "description": "Lists organization repositories with all of their custom property values.\nOrganization members can read these properties.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/rename-branch", + "operationId": "orgs/custom-properties-for-repos-get-organization-values", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#rename-a-branch" + "url": "https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/branch" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_name": { - "type": "string", - "description": "The new name of the branch." - } - }, - "required": [ - "new_name" - ] - }, - "example": { - "new_name": "my_renamed_branch" - } + "$ref": "#/components/parameters/page" + }, + { + "name": "repository_query", + "description": "Finds repositories in the organization with a query containing one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See \"[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)\" for a detailed list of qualifiers.", + "in": "query", + "required": false, + "schema": { + "type": "string" } } - }, + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/branch-with-protection" + "type": "array", + "items": { + "$ref": "#/components/schemas/org-repo-custom-property-values" + } }, "examples": { "default": { - "$ref": "#/components/examples/branch-with-protection" + "$ref": "#/components/examples/org-repo-custom-property-values" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "403": { @@ -23367,386 +26230,111 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "branches" + "category": "orgs", + "subcategory": "custom-properties" } - } - }, - "/repos/{owner}/{repo}/check-runs": { - "post": { - "summary": "Create a check run", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nCreates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs.\n\nIn a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs.", + }, + "patch": { + "summary": "Create or update custom property values for organization repositories", + "description": "Create new or update existing custom property values for repositories in a batch that belong to an organization.\nEach target repository will have its custom property values updated to match the values provided in the request.\n\nA maximum of 30 repositories can be updated in a single request.\n\nUsing a value of `null` for a custom property will remove or 'unset' the property value from the repository.\n\nTo use this endpoint, the authenticated user must be one of:\n - An administrator for the organization.\n - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization.", "tags": [ - "checks" + "orgs" ], - "operationId": "checks/create", + "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-values", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#create-a-check-run" + "url": "https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the check. For example, \"code-coverage\"." - }, - "head_sha": { - "type": "string", - "description": "The SHA of the commit." - }, - "details_url": { - "type": "string", - "description": "The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used." - }, - "external_id": { - "type": "string", - "description": "A reference for the run on the integrator's system." - }, - "status": { - "type": "string", - "description": "The current status. Can be one of `queued`, `in_progress`, or `completed`.", - "enum": [ - "queued", - "in_progress", - "completed" - ], - "default": "queued" - }, - "started_at": { - "type": "string", - "format": "date-time", - "description": "The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." - }, - "conclusion": { - "type": "string", - "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `action_required`, `cancelled`, `failure`, `neutral`, `success`, `skipped`, `stale`, or `timed_out`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this.", - "enum": [ - "action_required", - "cancelled", - "failure", - "neutral", - "success", - "skipped", - "stale", - "timed_out" - ] - }, - "completed_at": { - "type": "string", - "format": "date-time", - "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." - }, - "output": { - "type": "object", - "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object) description.", - "properties": { - "title": { - "type": "string", - "description": "The title of the check run." - }, - "summary": { - "type": "string", - "maxLength": 65535, - "description": "The summary of the check run. This parameter supports Markdown." - }, - "text": { - "type": "string", - "maxLength": 65535, - "description": "The details of the check run. This parameter supports Markdown." - }, - "annotations": { - "type": "array", - "description": "Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about how you can view annotations on GitHub, see \"[About status checks](https://help.github.com/articles/about-status-checks#checks)\". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object) description for details about how to use this parameter.", - "maxItems": 50, - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`." - }, - "start_line": { - "type": "integer", - "description": "The start line of the annotation." - }, - "end_line": { - "type": "integer", - "description": "The end line of the annotation." - }, - "start_column": { - "type": "integer", - "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." - }, - "end_column": { - "type": "integer", - "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." - }, - "annotation_level": { - "type": "string", - "description": "The level of the annotation. Can be one of `notice`, `warning`, or `failure`.", - "enum": [ - "notice", - "warning", - "failure" - ] - }, - "message": { - "type": "string", - "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB." - }, - "title": { - "type": "string", - "description": "The title that represents the annotation. The maximum size is 255 characters." - }, - "raw_details": { - "type": "string", - "description": "Details about this annotation. The maximum size is 64 KB." - } - }, - "required": [ - "path", - "start_line", - "end_line", - "annotation_level", - "message" - ] - } - }, - "images": { - "type": "array", - "description": "Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#images-object) description for details.", - "items": { - "type": "object", - "properties": { - "alt": { - "type": "string", - "description": "The alternative text for the image." - }, - "image_url": { - "type": "string", - "description": "The full URL of the image." - }, - "caption": { - "type": "string", - "description": "A short image description." - } - }, - "required": [ - "alt", - "image_url" - ] - } - } + "repository_names": { + "type": "array", + "description": "The names of repositories that the custom property values will be applied to.", + "items": { + "type": "string" }, - "required": [ - "title", - "summary" - ] + "minItems": 1, + "maxItems": 30 }, - "actions": { + "properties": { "type": "array", - "description": "Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions).\" To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions).\"", - "maxItems": 3, + "description": "List of custom property names and associated values to apply to the repositories.", "items": { - "type": "object", - "properties": { - "label": { - "type": "string", - "maxLength": 20, - "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters." - }, - "description": { - "type": "string", - "maxLength": 40, - "description": "A short explanation of what this action would do. The maximum size is 40 characters." - }, - "identifier": { - "type": "string", - "maxLength": 20, - "description": "A reference for the action on the integrator's system. The maximum size is 20 characters." - } - }, - "required": [ - "label", - "description", - "identifier" - ] + "$ref": "#/components/schemas/custom-property-value" } } }, "required": [ - "name", - "head_sha" - ], - "oneOf": [ - { - "properties": { - "status": { - "enum": [ - "completed" - ] - } - }, - "required": [ - "status", - "conclusion" - ], - "additionalProperties": true - }, - { - "properties": { - "status": { - "enum": [ - "queued", - "in_progress" - ] - } - }, - "additionalProperties": true - } + "repository_names", + "properties" ] }, "examples": { - "example-of-in-progress-conclusion": { - "summary": "Response for in_progress conclusion", - "value": { - "name": "mighty_readme", - "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", - "status": "in_progress", - "external_id": "42", - "started_at": "2018-05-04T01:14:52Z", - "output": { - "title": "Mighty Readme report", - "summary": "", - "text": "" - } - } - }, - "example-of-completed-conclusion": { - "summary": "Response for completed conclusion", - "value": { - "name": "mighty_readme", - "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", - "status": "completed", - "started_at": "2017-11-30T19:39:10Z", - "conclusion": "success", - "completed_at": "2017-11-30T19:49:10Z", - "output": { - "title": "Mighty Readme report", - "summary": "There are 0 failures, 2 warnings, and 1 notices.", - "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", - "annotations": [ - { - "path": "README.md", - "annotation_level": "warning", - "title": "Spell Checker", - "message": "Check your spelling for 'banaas'.", - "raw_details": "Do you mean 'bananas' or 'banana'?", - "start_line": 2, - "end_line": 2 - }, - { - "path": "README.md", - "annotation_level": "warning", - "title": "Spell Checker", - "message": "Check your spelling for 'aples'", - "raw_details": "Do you mean 'apples' or 'Naples'", - "start_line": 4, - "end_line": 4 - } - ], - "images": [ - { - "alt": "Super bananas", - "image_url": "http://example.com/images/42" - } - ] - }, - "actions": [ - { - "label": "Fix", - "identifier": "fix_errors", - "description": "Allow us to fix these errors for you" - } - ] - } + "default": { + "$ref": "#/components/examples/org-repo-update-custom-property-values" } } } } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/check-run" - }, - "examples": { - "example-of-completed-conclusion": { - "$ref": "#/components/examples/check-run-example-of-completed-conclusion" - } - } - } - } + "204": { + "description": "No Content when custom property values are successfully created or updated" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "runs" + "category": "orgs", + "subcategory": "custom-properties" } } }, - "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + "/orgs/{org}/public_members": { "get": { - "summary": "Get a check run", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nGets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository.", + "summary": "List public organization members", + "description": "Members of an organization can choose to have their membership publicized or not.", "tags": [ - "checks" + "orgs" ], - "operationId": "checks/get", + "operationId": "orgs/list-public-members", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#get-a-check-run" + "url": "https://docs.github.com/rest/orgs/members#list-public-organization-members" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/check-run-id" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -23755,354 +26343,196 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-run" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/check-run" + "$ref": "#/components/examples/simple-user-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "runs" + "category": "orgs", + "subcategory": "members" } - }, - "patch": { - "summary": "Update a check run", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nUpdates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs.", + } + }, + "/orgs/{org}/public_members/{username}": { + "get": { + "summary": "Check public organization membership for a user", + "description": "Check if the provided user is a public member of the organization.", "tags": [ - "checks" + "orgs" ], - "operationId": "checks/update", + "operationId": "orgs/check-public-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#update-a-check-run" + "url": "https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response if user is a public member" + }, + "404": { + "description": "Not Found if user is not a public member" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } + }, + "put": { + "summary": "Set public organization membership for the authenticated user", + "description": "The user can publicize their own membership. (A user cannot publicize the membership for another user.)\n\nNote that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"", + "tags": [ + "orgs" + ], + "operationId": "orgs/set-public-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/check-run-id" + "$ref": "#/components/parameters/username" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the check. For example, \"code-coverage\"." - }, - "details_url": { - "type": "string", - "description": "The URL of the integrator's site that has the full details of the check." - }, - "external_id": { - "type": "string", - "description": "A reference for the run on the integrator's system." - }, - "started_at": { - "type": "string", - "format": "date-time", - "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." - }, - "status": { - "type": "string", - "description": "The current status. Can be one of `queued`, `in_progress`, or `completed`.", - "enum": [ - "queued", - "in_progress", - "completed" - ] - }, - "conclusion": { - "type": "string", - "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `action_required`, `cancelled`, `failure`, `neutral`, `success`, `skipped`, `stale`, or `timed_out`. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this.", - "enum": [ - "action_required", - "cancelled", - "failure", - "neutral", - "success", - "skipped", - "stale", - "timed_out" - ] - }, - "completed_at": { - "type": "string", - "format": "date-time", - "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." - }, - "output": { - "type": "object", - "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object-1) description.", - "properties": { - "title": { - "type": "string", - "description": "**Required**." - }, - "summary": { - "type": "string", - "description": "Can contain Markdown.", - "maxLength": 65535 - }, - "text": { - "type": "string", - "description": "Can contain Markdown.", - "maxLength": 65535 - }, - "annotations": { - "type": "array", - "description": "Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about annotations in the UI, see \"[About status checks](https://help.github.com/articles/about-status-checks#checks)\". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details.", - "maxItems": 50, - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`." - }, - "start_line": { - "type": "integer", - "description": "The start line of the annotation." - }, - "end_line": { - "type": "integer", - "description": "The end line of the annotation." - }, - "start_column": { - "type": "integer", - "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." - }, - "end_column": { - "type": "integer", - "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." - }, - "annotation_level": { - "type": "string", - "description": "The level of the annotation. Can be one of `notice`, `warning`, or `failure`.", - "enum": [ - "notice", - "warning", - "failure" - ] - }, - "message": { - "type": "string", - "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB." - }, - "title": { - "type": "string", - "description": "The title that represents the annotation. The maximum size is 255 characters." - }, - "raw_details": { - "type": "string", - "description": "Details about this annotation. The maximum size is 64 KB." - } - }, - "required": [ - "path", - "start_line", - "end_line", - "annotation_level", - "message" - ] - } - }, - "images": { - "type": "array", - "description": "Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details.", - "items": { - "type": "object", - "properties": { - "alt": { - "type": "string", - "description": "The alternative text for the image." - }, - "image_url": { - "type": "string", - "description": "The full URL of the image." - }, - "caption": { - "type": "string", - "description": "A short image description." - } - }, - "required": [ - "alt", - "image_url" - ] - } - } - }, - "required": [ - "summary" - ] - }, - "actions": { - "type": "array", - "description": "Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions).\"", - "maxItems": 3, - "items": { - "type": "object", - "properties": { - "label": { - "type": "string", - "maxLength": 20, - "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters." - }, - "description": { - "type": "string", - "maxLength": 40, - "description": "A short explanation of what this action would do. The maximum size is 40 characters." - }, - "identifier": { - "type": "string", - "maxLength": 20, - "description": "A reference for the action on the integrator's system. The maximum size is 20 characters." - } - }, - "required": [ - "label", - "description", - "identifier" - ] - } - } - }, - "anyOf": [ - { - "properties": { - "status": { - "enum": [ - "completed" - ] - } - }, - "required": [ - "conclusion" - ], - "additionalProperties": true - }, - { - "properties": { - "status": { - "enum": [ - "queued", - "in_progress" - ] - } - }, - "additionalProperties": true - } - ] - }, - "example": { - "name": "mighty_readme", - "started_at": "2018-05-04T01:14:52Z", - "status": "completed", - "conclusion": "success", - "completed_at": "2018-05-04T01:14:52Z", - "output": { - "title": "Mighty Readme report", - "summary": "There are 0 failures, 2 warnings, and 1 notices.", - "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", - "annotations": [ - { - "path": "README.md", - "annotation_level": "warning", - "title": "Spell Checker", - "message": "Check your spelling for 'banaas'.", - "raw_details": "Do you mean 'bananas' or 'banana'?", - "start_line": 2, - "end_line": 2 - }, - { - "path": "README.md", - "annotation_level": "warning", - "title": "Spell Checker", - "message": "Check your spelling for 'aples'", - "raw_details": "Do you mean 'apples' or 'Naples'", - "start_line": 4, - "end_line": 4 - } - ], - "images": [ - { - "alt": "Super bananas", - "image_url": "http://example.com/images/42" - } - ] - } - } - } + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "orgs", + "subcategory": "members" + } + }, + "delete": { + "summary": "Remove public organization membership for the authenticated user", + "description": "Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default.", + "tags": [ + "orgs" + ], + "operationId": "orgs/remove-public-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" + } + ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/check-run" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-run" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "runs" + "enabledForGitHubApps": false, + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + "/orgs/{org}/repos": { "get": { - "summary": "List check run annotations", - "description": "Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository.", + "summary": "List organization repositories", + "description": "Lists repositories for the specified organization.\n\n> [!NOTE]\n> In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"", "tags": [ - "checks" + "repos" ], - "operationId": "checks/list-annotations", + "operationId": "repos/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#list-check-run-annotations" + "url": "https://docs.github.com/rest/repos/repos#list-organization-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "type", + "description": "Specifies the types of repositories you want returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "public", + "private", + "forks", + "sources", + "member" + ], + "default": "all" + } }, { - "$ref": "#/components/parameters/check-run-id" + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "pushed", + "full_name" + ], + "default": "created" + } + }, + { + "name": "direction", + "description": "The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } }, { "$ref": "#/components/parameters/per-page" @@ -24119,12 +26549,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/check-annotation" + "$ref": "#/components/schemas/minimal-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/check-annotation-items" + "$ref": "#/components/examples/minimal-repository-items" } } } @@ -24139,279 +26569,465 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "runs" + "category": "repos", + "subcategory": "repos" } - } - }, - "/repos/{owner}/{repo}/check-suites": { + }, "post": { - "summary": "Create a check suite", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nBy default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using \"[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)\". Your GitHub App must have the `checks:write` permission to create check suites.", + "summary": "Create an organization repository", + "description": "Creates a new repository in the specified organization. The authenticated user must be a member of the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository.", "tags": [ - "checks" + "repos" ], - "operationId": "checks/create-suite", + "operationId": "repos/create-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#create-a-check-suite" + "url": "https://docs.github.com/rest/repos/repos#create-an-organization-repository" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "head_sha": { + "name": { "type": "string", - "description": "The sha of the head commit." + "description": "The name of the repository." + }, + "description": { + "type": "string", + "description": "A short description of the repository." + }, + "homepage": { + "type": "string", + "description": "A URL with more information about the repository." + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private.", + "default": false + }, + "visibility": { + "type": "string", + "description": "The visibility of the repository.", + "enum": [ + "public", + "private" + ] + }, + "has_issues": { + "type": "boolean", + "description": "Either `true` to enable issues for this repository or `false` to disable them.", + "default": true + }, + "has_projects": { + "type": "boolean", + "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", + "default": true + }, + "has_wiki": { + "type": "boolean", + "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", + "default": true + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "is_template": { + "type": "boolean", + "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", + "default": false + }, + "team_id": { + "type": "integer", + "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization." + }, + "auto_init": { + "type": "boolean", + "description": "Pass `true` to create an initial commit with empty README.", + "default": false + }, + "gitignore_template": { + "type": "string", + "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, \"Haskell\"." + }, + "license_template": { + "type": "string", + "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://docs.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, \"mit\" or \"mpl-2.0\"." + }, + "allow_squash_merge": { + "type": "boolean", + "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "default": true + }, + "allow_merge_commit": { + "type": "boolean", + "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "default": true + }, + "allow_rebase_merge": { + "type": "boolean", + "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "default": true + }, + "allow_auto_merge": { + "type": "boolean", + "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.", + "default": false + }, + "delete_branch_on_merge": { + "type": "boolean", + "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. **The authenticated user must be an organization owner to set this property to `true`.**", + "default": false + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "default": false, + "deprecated": true + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "custom_properties": { + "type": "object", + "description": "The custom properties for the new repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true } }, "required": [ - "head_sha" + "name" ] }, - "example": { - "head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3" + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repository", + "homepage": "https://github.com", + "private": false, + "has_issues": true, + "has_projects": true, + "has_wiki": true + } + } } } } }, "responses": { - "200": { - "description": "when the suite already existed", + "201": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-suite" + "$ref": "#/components/schemas/full-repository" }, "examples": { "default": { - "$ref": "#/components/examples/check-suite" + "$ref": "#/components/examples/full-repository" } } } - } - }, - "201": { - "description": "Response when the suite was created", - "content": { - "application/json": { + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", "schema": { - "$ref": "#/components/schemas/check-suite" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-suite" - } + "type": "string" } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "suites" + "category": "repos", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/check-suites/preferences": { - "patch": { - "summary": "Update repository preferences for check suites", - "description": "Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites.", + "/orgs/{org}/rulesets": { + "get": { + "summary": "Get all organization repository rulesets", + "description": "Get all the repository rulesets for an organization.", "tags": [ - "checks" + "repos" ], - "operationId": "checks/set-suites-preferences", + "operationId": "repos/get-org-rulesets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites" + "url": "https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "rules" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/ruleset-targets" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "auto_trigger_checks": { - "type": "array", - "description": "Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://docs.github.com/rest/reference/checks#auto_trigger_checks-object) description for details.", - "items": { - "type": "object", - "properties": { - "app_id": { - "type": "integer", - "description": "The `id` of the GitHub App." - }, - "setting": { - "type": "boolean", - "description": "Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them.", - "default": true - } - }, - "required": [ - "app_id", - "setting" - ] - } - } - } - }, - "example": { - "auto_trigger_checks": [ - { - "app_id": 4, - "setting": false - } - ] - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-suite-preference" + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-ruleset" + } }, "examples": { "default": { - "$ref": "#/components/examples/check-suite-preference" + "$ref": "#/components/examples/org-ruleset-items" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "suites" } - } - }, - "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { - "get": { - "summary": "Get a check suite", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nGets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository.", + }, + "post": { + "summary": "Create an organization repository ruleset", + "description": "Create a repository ruleset for an organization.", "tags": [ - "checks" + "repos" ], - "operationId": "checks/get-suite", + "operationId": "repos/create-org-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#get-a-check-suite" + "url": "https://docs.github.com/rest/orgs/rules#create-an-organization-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "rules" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/check-suite-id" + "$ref": "#/components/parameters/org" } ], + "requestBody": { + "description": "Request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the ruleset." + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag", + "push", + "repository" + ], + "default": "branch" + }, + "enforcement": { + "$ref": "#/components/schemas/repository-rule-enforcement" + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + } + }, + "conditions": { + "$ref": "#/components/schemas/org-ruleset-conditions" + }, + "rules": { + "type": "array", + "description": "An array of rules within the ruleset.", + "items": { + "$ref": "#/components/schemas/org-rules" + } + } + }, + "required": [ + "name", + "enforcement" + ] + }, + "examples": { + "default": { + "value": { + "name": "super cool ruleset", + "target": "branch", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ] + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-suite" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/check-suite" + "$ref": "#/components/examples/org-ruleset" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "suites" } } }, - "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + "/orgs/{org}/rulesets/rule-suites": { "get": { - "summary": "List check runs in a check suite", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nLists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository.", + "summary": "List organization rule suites", + "description": "Lists suites of rule evaluations at the organization level.\nFor more information, see \"[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets).\"", "tags": [ - "checks" + "repos" ], - "operationId": "checks/list-for-suite", + "operationId": "repos/get-org-rule-suites", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite" + "url": "https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/ref-in-query" }, { - "$ref": "#/components/parameters/check-suite-id" + "$ref": "#/components/parameters/repository-name-in-query" }, { - "$ref": "#/components/parameters/check-name" + "$ref": "#/components/parameters/time-period" }, { - "$ref": "#/components/parameters/status" + "$ref": "#/components/parameters/actor-name-in-query" }, { - "name": "filter", - "description": "Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "latest", - "all" - ], - "default": "latest" - } + "$ref": "#/components/parameters/rule-suite-result" }, { "$ref": "#/components/parameters/per-page" @@ -24426,139 +27042,49 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "check_runs" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "check_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/check-run" - } - } - } + "$ref": "#/components/schemas/rule-suites" }, "examples": { "default": { - "$ref": "#/components/examples/check-run-paginated" + "$ref": "#/components/examples/rule-suite-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "runs" - } - } - }, - "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { - "post": { - "summary": "Rerequest a check suite", - "description": "Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared.\n\nTo rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository.", - "tags": [ - "checks" - ], - "operationId": "checks/rerequest-suite", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#rerequest-a-check-suite" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" }, - { - "$ref": "#/components/parameters/repo" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/check-suite-id" - } - ], - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - }, - "additionalProperties": false - } - } - } + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "suites" + "category": "orgs", + "subcategory": "rule-suites" } } }, - "/repos/{owner}/{repo}/code-scanning/alerts": { + "/orgs/{org}/rulesets/rule-suites/{rule_suite_id}": { "get": { - "summary": "List code scanning alerts for a repository", - "description": "Lists all open code scanning alerts for the default branch (usually `main`\nor `master`). You must use an access token with the `security_events` scope to use\nthis endpoint. GitHub Apps must have the `security_events` read permission to use\nthis endpoint.\n\nThe response includes a `most_recent_instance` object.\nThis provides details of the most recent instance of this alert\nfor the default branch or for the specified Git reference\n(if you used `ref` in the request).", + "summary": "Get an organization rule suite", + "description": "Gets information about a suite of rule evaluations from within an organization.\nFor more information, see \"[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets).\"", "tags": [ - "code-scanning" + "repos" ], - "operationId": "code-scanning/list-alerts-for-repo", + "operationId": "repos/get-org-rule-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository" + "url": "https://docs.github.com/rest/orgs/rule-suites#get-an-organization-rule-suite" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/tool-name" - }, - { - "$ref": "#/components/parameters/tool-guid" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/git-ref" + "$ref": "#/components/parameters/org" }, { - "name": "state", - "description": "Set to `open`, `fixed`, or `dismissed` to list code scanning alerts in a specific state.", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/code-scanning-alert-state" - } + "$ref": "#/components/parameters/rule-suite-id" } ], "responses": { @@ -24567,61 +27093,61 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-scanning-alert-items" - } + "$ref": "#/components/schemas/rule-suite" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-alert-items" + "$ref": "#/components/examples/rule-suite" } } } } }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_read" - }, "404": { "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "code-scanning", - "subcategory": null + "category": "orgs", + "subcategory": "rule-suites" } } }, - "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { + "/orgs/{org}/rulesets/{ruleset_id}": { "get": { - "summary": "Get a code scanning alert", - "description": "Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint.\n\n**Deprecation notice**:\nThe instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by `instances_url`.", + "summary": "Get an organization repository ruleset", + "description": "Get a repository ruleset for an organization.\n\n**Note:** To prevent leaking sensitive information, the `bypass_actors` property is only returned if the user\nmaking the API request has write access to the ruleset.", "tags": [ - "code-scanning" + "repos" ], - "operationId": "code-scanning/get-alert", + "operationId": "repos/get-org-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#get-a-code-scanning-alert" + "url": "https://docs.github.com/rest/orgs/rules#get-an-organization-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "rules" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/alert-number" + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -24630,78 +27156,144 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-alert" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-alert" + "$ref": "#/components/examples/org-ruleset" } } } } }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_read" - }, "404": { "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "code-scanning", - "subcategory": null } }, - "patch": { - "summary": "Update a code scanning alert", - "description": "Updates the status of a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint.", - "operationId": "code-scanning/update-alert", + "put": { + "summary": "Update an organization repository ruleset", + "description": "Update a ruleset for an organization.", "tags": [ - "code-scanning" + "repos" ], + "operationId": "repos/update-org-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#update-a-code-scanning-alert" + "url": "https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "rules" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/alert-number" + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "requestBody": { + "description": "Request body", + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "state": { - "$ref": "#/components/schemas/code-scanning-alert-set-state" + "name": { + "type": "string", + "description": "The name of the ruleset." }, - "dismissed_reason": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag", + "push", + "repository" + ] + }, + "enforcement": { + "$ref": "#/components/schemas/repository-rule-enforcement" + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + } + }, + "conditions": { + "$ref": "#/components/schemas/org-ruleset-conditions" + }, + "rules": { + "description": "An array of rules within the ruleset.", + "type": "array", + "items": { + "$ref": "#/components/schemas/org-rules" + } } - }, - "required": [ - "state" - ] + } }, - "example": { - "state": "dismissed", - "dismissed_reason": "false positive" + "examples": { + "default": { + "value": { + "name": "super cool ruleset", + "target": "branch", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ] + } + } } } } @@ -24712,66 +27304,98 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-alert" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-alert-dismissed" + "$ref": "#/components/examples/org-ruleset" } } } } }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_write" - }, "404": { "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "500": { + "$ref": "#/components/responses/internal_error" } + } + }, + "delete": { + "summary": "Delete an organization repository ruleset", + "description": "Delete a ruleset for an organization.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-org-ruleset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset" }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "code-scanning" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "rules" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" + } } } }, - "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + "/orgs/{org}/rulesets/{ruleset_id}/history": { "get": { - "summary": "List instances of a code scanning alert", - "description": "Lists all instances of the specified code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint.", + "summary": "Get organization ruleset history", + "description": "Get the history of an organization ruleset.", "tags": [ - "code-scanning" + "orgs" ], - "operationId": "code-scanning/list-alert-instances", + "operationId": "orgs/get-org-ruleset-history", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#list-instances-of-a-code-scanning-alert" + "url": "https://docs.github.com/rest/orgs/rules#get-organization-ruleset-history" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/git-ref" + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -24782,85 +27406,64 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/code-scanning-alert-instance" + "$ref": "#/components/schemas/ruleset-version" } }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-alert-instances" + "$ref": "#/components/examples/ruleset-history" } } } } }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_read" - }, "404": { "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "code-scanning", - "subcategory": null + "category": "orgs", + "subcategory": "rules" } } }, - "/repos/{owner}/{repo}/code-scanning/analyses": { + "/orgs/{org}/rulesets/{ruleset_id}/history/{version_id}": { "get": { - "summary": "List code scanning analyses for a repository", - "description": "Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the `page` and `per_page` parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.\n\nThe `rules_count` field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand `0` is returned in this field.\n\nYou must use an access token with the `security_events` scope to use this endpoint.\nGitHub Apps must have the `security_events` read permission to use this endpoint.\n\n**Deprecation notice**:\nThe `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field.", - "operationId": "code-scanning/list-recent-analyses", + "summary": "Get organization ruleset version", + "description": "Get a version of an organization ruleset.", "tags": [ - "code-scanning" + "orgs" ], + "operationId": "orgs/get-org-ruleset-version", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#list-code-scanning-analyses-for-a-repository" + "url": "https://docs.github.com/rest/orgs/rules#get-organization-ruleset-version" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/tool-name" - }, - { - "$ref": "#/components/parameters/tool-guid" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "name": "ref", - "in": "query", - "description": "The Git reference for the analyses you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`.", - "required": false, + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, "schema": { - "$ref": "#/components/schemas/code-scanning-ref" + "type": "integer" } }, { - "name": "sarif_id", - "in": "query", - "description": "Filter analyses belonging to the same SARIF upload.", - "required": false, + "name": "version_id", + "description": "The ID of the version", + "in": "path", + "required": true, "schema": { - "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + "type": "integer" } } ], @@ -24870,92 +27473,114 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-scanning-analysis" - } + "$ref": "#/components/schemas/ruleset-version-with-state" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-analysis-items" + "$ref": "#/components/examples/org-ruleset-version-with-state" } } } } }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_read" - }, "404": { "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "code-scanning" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "rules" } } }, - "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { + "/orgs/{org}/secret-scanning/alerts": { "get": { - "summary": "Get a code scanning analysis for a repository", - "description": "Gets a specified code scanning analysis for a repository.\nYou must use an access token with the `security_events` scope to use this endpoint.\nGitHub Apps must have the `security_events` read permission to use this endpoint.\n\nThe default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.\n\nThe `rules_count` field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand `0` is returned in this field.\n\nIf you use the Accept header `application/sarif+json`,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\n[SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html).\n\n**Deprecation notice**:\nThe `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field.", - "operationId": "code-scanning/get-analysis", + "summary": "List secret scanning alerts for an organization", + "description": "Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", "tags": [ - "code-scanning" + "secret-scanning" ], + "operationId": "secret-scanning/list-alerts-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository" + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/secret-scanning-alert-state" }, { - "name": "analysis_id", - "in": "path", - "description": "The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation.", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/secret-scanning-alert-secret-type" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-resolution" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-assignee" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-sort" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/secret-scanning-pagination-before-org-repo" + }, + { + "$ref": "#/components/parameters/secret-scanning-pagination-after-org-repo" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-validity" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-publicly-leaked" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-multi-repo" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" } ], "responses": { "200": { "description": "Response", "content": { - "application/json+sarif": { - "schema": { - "type": "string" - } - }, "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-analysis" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-secret-scanning-alert" + } }, "examples": { - "response": { - "$ref": "#/components/examples/code-scanning-analysis-default" + "default": { + "$ref": "#/components/examples/organization-secret-scanning-alert-list" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_read" - }, "404": { "$ref": "#/components/responses/not_found" }, @@ -24964,50 +27589,34 @@ } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "code-scanning" + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "secret-scanning" } - }, - "delete": { - "summary": "Delete a code scanning analysis from a repository", - "description": "Deletes a specified code scanning analysis from a repository. For\nprivate repositories, you must use an access token with the `repo` scope. For public repositories,\nyou must use an access token with `public_repo` and `repo:security_events` scopes.\nGitHub Apps must have the `security_events` write permission to use this endpoint.\n\nYou can delete one analysis at a time.\nTo delete a series of analyses, start with the most recent analysis and work backwards.\nConceptually, the process is similar to the undo function in a text editor.\n\nWhen you list the analyses for a repository,\none or more will be identified as deletable in the response:\n\n```\n\"deletable\": true\n```\n\nAn analysis is deletable when it's the most recent in a set of analyses.\nTypically, a repository will have multiple sets of analyses\nfor each enabled code scanning tool,\nwhere a set is determined by a unique combination of analysis values:\n\n* `ref`\n* `tool`\n* `analysis_key`\n* `environment`\n\nIf you attempt to delete an analysis that is not the most recent in a set,\nyou'll get a 400 response with the message:\n\n```\nAnalysis specified is not deletable.\n```\n\nThe response from a successful `DELETE` operation provides you with\ntwo alternative URLs for deleting the next analysis in the set\n(see the example default response below).\nUse the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis\nin the set. This is a useful option if you want to preserve at least one analysis\nfor the specified tool in your repository.\nUse the `confirm_delete_url` URL if you are content to remove all analyses for a tool.\nWhen you delete the last analysis in a set the value of `next_analysis_url` and `confirm_delete_url`\nin the 200 response is `null`.\n\nAs an example of the deletion process,\nlet's imagine that you added a workflow that configured a particular code scanning tool\nto analyze the code in a repository. This tool has added 15 analyses:\n10 on the default branch, and another 5 on a topic branch.\nYou therefore have two separate sets of analyses for this tool.\nYou've now decided that you want to remove all of the analyses for the tool.\nTo do this you must make 15 separate deletion requests.\nTo start, you must find the deletable analysis for one of the sets,\nstep through deleting the analyses in that set,\nand then repeat the process for the second set.\nThe procedure therefore consists of a nested loop:\n\n**Outer loop**:\n* List the analyses for the repository, filtered by tool.\n* Parse this list to find a deletable analysis. If found:\n\n **Inner loop**:\n * Delete the identified analysis.\n * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration.\n\nThe above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely.", - "operationId": "code-scanning/delete-analysis", + } + }, + "/orgs/{org}/secret-scanning/pattern-configurations": { + "get": { + "summary": "List organization pattern configurations", + "description": "Lists the secret scanning pattern configurations for an organization.\n\nPersonal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ - "code-scanning" + "secret-scanning" ], + "operationId": "secret-scanning/list-org-pattern-configs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#delete-a-code-scanning-analysis-from-a-repository" + "url": "https://docs.github.com/rest/secret-scanning/push-protection#list-organization-pattern-configurations" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "push-protection" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "name": "analysis_id", - "in": "path", - "description": "The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "confirm_delete", - "in": "query", - "description": "Allow deletion if the specified analysis is the last in a set. If you attempt to delete the final analysis in a set without setting this parameter to `true`, you'll get a 400 response with the message: `Analysis is last of its type and deletion may result in the loss of historical alert data. Please specify confirm_delete.`", - "required": false, - "schema": { - "type": "string", - "nullable": true - } + "$ref": "#/components/parameters/org" } ], "responses": { @@ -25016,168 +27625,235 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-analysis-deletion" + "$ref": "#/components/schemas/secret-scanning-pattern-configuration" }, "examples": { - "default-response": { - "$ref": "#/components/examples/code-scanning-analysis-deletion" + "default": { + "$ref": "#/components/examples/secret-scanning-pattern-configuration" } } } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, "403": { - "$ref": "#/components/responses/code_scanning_forbidden_write" + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } - }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "code-scanning" } - } - }, - "/repos/{owner}/{repo}/code-scanning/sarifs": { - "post": { - "summary": "Upload an analysis as SARIF data", - "description": "Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint.\n\nThere are two places where you can upload code scanning results.\n - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see \"[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests).\"\n - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see \"[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository).\"\n\nYou must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example:\n\n```\ngzip -c analysis-data.sarif | base64 -w0\n```\n\nSARIF upload supports a maximum of 5000 results per analysis run. Any results over this limit are ignored and any SARIF uploads with more than 25,000 results are rejected. Typically, but not necessarily, a SARIF file contains a single run of a single tool. If a code scanning tool generates too many results, you should update the analysis configuration to run only the most important rules or queries.\n\nThe `202 Accepted`, response includes an `id` value.\nYou can use this ID to check the status of the upload by using this for the `/sarifs/{sarif_id}` endpoint.\nFor more information, see \"[Get information about a SARIF upload](/rest/reference/code-scanning#get-information-about-a-sarif-upload).\"", - "operationId": "code-scanning/upload-sarif", + }, + "patch": { + "summary": "Update organization pattern configurations", + "description": "Updates the secret scanning pattern configurations for an organization.\n\nPersonal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "code-scanning" + "secret-scanning" ], + "operationId": "secret-scanning/update-org-pattern-configs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#upload-a-sarif-file" + "url": "https://docs.github.com/rest/secret-scanning/push-protection#update-organization-pattern-configurations" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "push-protection" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "commit_sha": { - "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" - }, - "ref": { - "$ref": "#/components/schemas/code-scanning-ref" - }, - "sarif": { - "$ref": "#/components/schemas/code-scanning-analysis-sarif-file" - }, - "checkout_uri": { - "description": "The base directory used in the analysis, as it appears in the SARIF file.\nThis property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository.", - "example": "file:///github/workspace/", - "type": "string", - "format": "uri" + "pattern_config_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" }, - "started_at": { - "description": "The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", - "format": "date-time", - "type": "string" + "provider_pattern_settings": { + "type": "array", + "description": "Pattern settings for provider patterns.", + "items": { + "type": "object", + "properties": { + "token_type": { + "type": "string", + "description": "The ID of the pattern to configure." + }, + "push_protection_setting": { + "type": "string", + "description": "Push protection setting to set for the pattern.", + "enum": [ + "not-set", + "disabled", + "enabled" + ] + } + } + } }, - "tool_name": { - "description": "The name of the tool used to generate the code scanning analysis. If this parameter is not used, the tool name defaults to \"API\". If the uploaded SARIF contains a tool GUID, this will be available for filtering using the `tool_guid` parameter of operations such as `GET /repos/{owner}/{repo}/code-scanning/alerts`.", - "type": "string" + "custom_pattern_settings": { + "type": "array", + "description": "Pattern settings for custom patterns.", + "items": { + "type": "object", + "properties": { + "token_type": { + "type": "string", + "description": "The ID of the pattern to configure." + }, + "custom_pattern_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" + }, + "push_protection_setting": { + "type": "string", + "description": "Push protection setting to set for the pattern.", + "enum": [ + "disabled", + "enabled" + ] + } + } + } } - }, - "required": [ - "commit_sha", - "ref", - "sarif" - ] + } + }, + "examples": { + "default": { + "value": { + "pattern_config_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", + "provider_pattern_settings": [ + { + "token_type": "GITHUB_PERSONAL_ACCESS_TOKEN", + "push_protection_setting": "enabled" + } + ], + "custom_pattern_settings": [ + { + "token_type": "cp_2", + "custom_pattern_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", + "push_protection_setting": "enabled" + } + ] + } + } } } } }, "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-sarifs-receipt" + "type": "object", + "properties": { + "pattern_config_version": { + "type": "string", + "description": "The updated pattern configuration version." + } + } }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-sarif-upload" + "value": { + "pattern_config_version": "0ujsswThIGTUYm2K8FjOOfXtY1K" + } } } } } }, "400": { - "description": "Bad Request if the sarif field is invalid" + "$ref": "#/components/responses/bad_request" }, "403": { - "$ref": "#/components/responses/code_scanning_forbidden_write" + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, - "413": { - "description": "Payload Too Large if the sarif field is too large" + "409": { + "$ref": "#/components/responses/conflict" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "422": { + "$ref": "#/components/responses/validation_failed" } - }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "previews": [ - - ], - "category": "code-scanning" } } }, - "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": { + "/orgs/{org}/security-advisories": { "get": { - "summary": "Get information about a SARIF upload", - "description": "Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"[Get a code scanning analysis for a repository](/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository).\" You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint.", - "operationId": "code-scanning/get-sarif", + "summary": "List repository security advisories for an organization", + "description": "Lists repository security advisories for an organization.\n\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint.", "tags": [ - "code-scanning" + "security-advisories" ], + "operationId": "security-advisories/list-org-repository-advisories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/code-scanning#list-recent-code-scanning-analyses-for-a-repository" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/direction" }, { - "name": "sarif_id", - "description": "The SARIF ID obtained after uploading.", - "in": "path", + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, "schema": { - "type": "string" - }, - "required": true + "type": "string", + "enum": [ + "created", + "updated", + "published" + ], + "default": "created" + } + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "name": "per_page", + "description": "The number of advisories to return per page. For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } + }, + { + "name": "state", + "description": "Filter by the state of the repository advisories. Only advisories of this state will be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "triage", + "draft", + "published", + "closed" + ] + } } ], "responses": { @@ -25186,75 +27862,49 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-sarifs-status" + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-advisory" + } }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-sarif-upload-status" + "$ref": "#/components/examples/list-repository-advisories" } } } } }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_read" + "400": { + "$ref": "#/components/responses/bad_request" }, "404": { - "description": "Not Found if the sarif id does not match any upload" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "$ref": "#/components/responses/not_found" } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "code-scanning" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } } }, - "/repos/{owner}/{repo}/collaborators": { + "/orgs/{org}/security-managers": { "get": { - "summary": "List repository collaborators", - "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\n\nTeam members will include the members of child teams.", + "summary": "List security manager teams", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the \"[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)\" endpoints instead.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/list-collaborators", + "operationId": "orgs/list-security-manager-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-collaborators" + "url": "https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "name": "affiliation", - "description": "Filter collaborators returned by their affiliation. Can be one of: \n\\* `outside`: All outside collaborators of an organization-owned repository. \n\\* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. \n\\* `all`: All collaborators the authenticated user can see.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "outside", - "direct", - "all" - ], - "default": "all" - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -25265,184 +27915,159 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/collaborator" + "$ref": "#/components/schemas/team-simple" } }, "examples": { "default": { - "$ref": "#/components/examples/collaborator-items" + "$ref": "#/components/examples/team-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "collaborators" - } + "previews": [], + "category": "orgs", + "subcategory": "security-managers", + "deprecationDate": "2024-12-01", + "removalDate": "2026-01-01" + }, + "deprecated": true } }, - "/repos/{owner}/{repo}/collaborators/{username}": { - "get": { - "summary": "Check if a user is a repository collaborator", - "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\n\nTeam members will include the members of child teams.", + "/orgs/{org}/security-managers/teams/{team_slug}": { + "put": { + "summary": "Add a security manager team", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the \"[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)\" endpoints instead.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/check-collaborator", + "operationId": "orgs/add-security-manager-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#check-if-a-user-is-a-repository-collaborator" + "url": "https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/team-slug" } ], "responses": { "204": { - "description": "Response if user is a collaborator" - }, - "404": { - "description": "Not Found if user is not a collaborator" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "collaborators" - } + "previews": [], + "category": "orgs", + "subcategory": "security-managers", + "deprecationDate": "2024-12-01", + "removalDate": "2026-01-01" + }, + "deprecated": true }, - "put": { - "summary": "Add a repository collaborator", - "description": "This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.\n\nFor more information the permission levels, see \"[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)\".\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"\n\nThe invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations).\n\n**Rate limits**\n\nYou are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.", + "delete": { + "summary": "Remove a security manager team", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the \"[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)\" endpoints instead.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/add-collaborator", + "operationId": "orgs/remove-security-manager-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#add-a-repository-collaborator" + "url": "https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/team-slug" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permission": { - "type": "string", - "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: \n\\* `pull` - can pull, but not push to or administer this repository. \n\\* `push` - can pull and push, but not administer this repository. \n\\* `admin` - can pull, push and administer this repository. \n\\* `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions. \n\\* `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access.", - "enum": [ - "pull", - "push", - "admin", - "maintain", - "triage" - ], - "default": "push" - }, - "permissions": { - "type": "string", - "example": "\"push\"" - } - } - } - } + "responses": { + "204": { + "description": "Response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "security-managers", + "deprecationDate": "2024-12-01", + "removalDate": "2026-01-01" + }, + "deprecated": true + } + }, + "/orgs/{org}/settings/immutable-releases": { + "get": { + "summary": "Get immutable releases settings for an organization", + "description": "Gets the immutable releases policy for repositories in an organization.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-immutable-releases-settings", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/orgs#get-immutable-releases-settings-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], "responses": { - "201": { - "description": "Response when a new invitation is created", + "200": { + "description": "Immutable releases settings response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-invitation" + "$ref": "#/components/schemas/immutable-releases-organization-settings" }, "examples": { - "response-when-a-new-invitation-is-created": { - "$ref": "#/components/examples/repository-invitation-response-when-a-new-invitation-is-created" + "default": { + "value": { + "enforced_repositories": "all" + } } } } } - }, - "204": { - "description": "Response when person is already a collaborator" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "collaborators" + "category": "orgs", + "subcategory": "orgs" } }, - "delete": { - "summary": "Remove a repository collaborator", - "description": "", + "put": { + "summary": "Set immutable releases settings for an organization", + "description": "Sets the immutable releases policy for repositories in an organization.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/remove-collaborator", + "operationId": "orgs/set-immutable-releases-settings", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#remove-a-repository-collaborator" + "url": "https://docs.github.com/rest/orgs/orgs#set-immutable-releases-settings-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -25450,158 +28075,260 @@ "description": "Response" } }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enforced_repositories": { + "type": "string", + "description": "The policy that controls how immutable releases are enforced in the organization.", + "enum": [ + "all", + "none", + "selected" + ], + "example": "all" + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids for which immutable releases enforcement should be applied. You can only provide a list of repository ids when the `enforced_repositories` is set to `selected`. You can add and remove individual repositories using the [Enable a selected repository for immutable releases in an organization](https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization) and [Disable a selected repository for immutable releases in an organization](https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization) endpoints.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "enforced_repositories" + ] + }, + "examples": { + "default": { + "value": { + "enforced_repositories": "all" + } + } + } + } + } + }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "collaborators" + "category": "orgs", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/collaborators/{username}/permission": { + "/orgs/{org}/settings/immutable-releases/repositories": { "get": { - "summary": "Get repository permissions for a user", - "description": "Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`.", + "summary": "List selected repositories for immutable releases enforcement", + "description": "List all of the repositories that have been selected for immutable releases enforcement in an organization.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get-collaborator-permission-level", + "operationId": "orgs/get-immutable-releases-settings-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-repository-permissions-for-a-user" + "url": "https://docs.github.com/rest/orgs/orgs#list-selected-repositories-for-immutable-releases-enforcement" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/per-page" } ], "responses": { "200": { - "description": "if user has admin permissions", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-collaborator-permission" + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } + } }, "examples": { - "response-if-user-has-admin-permissions": { - "$ref": "#/components/examples/repository-collaborator-permission-response-if-user-has-admin-permissions" + "default": { + "$ref": "#/components/examples/public-repository-paginated" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "collaborators" + "category": "orgs", + "subcategory": "orgs" + } + }, + "put": { + "summary": "Set selected repositories for immutable releases enforcement", + "description": "Replaces all repositories that have been selected for immutable releases enforcement in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "tags": [ + "orgs" + ], + "operationId": "orgs/set-immutable-releases-settings-repositories", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/orgs#set-selected-repositories-for-immutable-releases-enforcement" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids for which immutable releases enforcement should be applied. You can only provide a list of repository ids when the `enforced_repositories` is set to `selected`. You can add and remove individual repositories using the [Enable a selected repository for immutable releases in an organization](https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization) and [Disable a selected repository for immutable releases in an organization](https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization) endpoints.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "selected_repository_ids" + ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + 64780797 + ] + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/comments": { - "get": { - "summary": "List commit comments for a repository", - "description": "Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/).\n\nComments are ordered by ascending ID.", + "/orgs/{org}/settings/immutable-releases/repositories/{repository_id}": { + "put": { + "summary": "Enable a selected repository for immutable releases in an organization", + "description": "Adds a repository to the list of selected repositories that are enforced for immutable releases in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "orgs/enable-selected-repository-immutable-releases-organization", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/list-commit-comments-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-commit-comments-for-a-repository" + "url": "https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" - }, + "$ref": "#/components/parameters/repository-id" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "orgs" + } + }, + "delete": { + "summary": "Disable a selected repository for immutable releases in an organization", + "description": "Removes a repository from the list of selected repositories that are enforced for immutable releases in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`.\n\nOAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "operationId": "orgs/disable-selected-repository-immutable-releases-organization", + "tags": [ + "orgs" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization" + }, + "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repository-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit-comment" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/commit-comment-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "repos", - "subcategory": "comments" + "category": "orgs", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/comments/{comment_id}": { + "/orgs/{org}/settings/network-configurations": { "get": { - "summary": "Get a commit comment", - "description": "", + "summary": "List hosted compute network configurations for an organization", + "description": "Lists all hosted compute network configurations configured in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint.", "tags": [ - "repos" + "hosted-compute" ], - "operationId": "repos/get-commit-comment", + "operationId": "hosted-compute/list-network-configurations-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-commit-comment" + "url": "https://docs.github.com/rest/orgs/network-configurations#list-hosted-compute-network-configurations-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -25610,194 +28337,151 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comment" + "type": "object", + "required": [ + "total_count", + "network_configurations" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "network_configurations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/network-configuration" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment" + "$ref": "#/components/examples/network-configurations-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "repos", - "subcategory": "comments" + "category": "orgs", + "subcategory": "network-configurations" } }, - "patch": { - "summary": "Update a commit comment", - "description": "", + "post": { + "summary": "Create a hosted compute network configuration for an organization", + "description": "Creates a hosted compute network configuration for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint.", "tags": [ - "repos" + "hosted-compute" ], - "operationId": "repos/update-commit-comment", + "operationId": "hosted-compute/create-network-configuration-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-a-commit-comment" + "url": "https://docs.github.com/rest/orgs/network-configurations#create-a-hosted-compute-network-configuration-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/org" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { + "name": { + "description": "Name of the network configuration. Must be between 1 and 100 characters and may only contain upper and lowercase letters a-z, numbers 0-9, '.', '-', and '_'.", + "type": "string" + }, + "compute_service": { + "description": "The hosted compute service to use for the network configuration.", "type": "string", - "description": "The contents of the comment" + "enum": [ + "none", + "actions" + ] + }, + "network_settings_ids": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "description": "A list of identifiers of the network settings resources to use for the network configuration. Exactly one resource identifier must be specified in the list.", + "items": { + "type": "string" + } } }, "required": [ - "body" + "name", + "network_settings_ids" ] }, - "example": { - "body": "Nice change" + "examples": { + "default": { + "value": { + "name": "my-network-configuration", + "network_settings_ids": [ + "23456789ABDCEF1" + ], + "compute_service": "actions" + } + } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comment" + "$ref": "#/components/schemas/network-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment-2" + "$ref": "#/components/examples/network-configuration" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "comments" - } - }, - "delete": { - "summary": "Delete a commit comment", - "description": "", - "tags": [ - "repos" - ], - "operationId": "repos/delete-commit-comment", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-commit-comment" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "comments" + "category": "orgs", + "subcategory": "network-configurations" } } }, - "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + "/orgs/{org}/settings/network-configurations/{network_configuration_id}": { "get": { - "summary": "List reactions for a commit comment", - "description": "List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments).", + "summary": "Get a hosted compute network configuration for an organization", + "description": "Gets a hosted compute network configuration configured in an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint.", "tags": [ - "reactions" + "hosted-compute" ], - "operationId": "reactions/list-for-commit-comment", + "operationId": "hosted-compute/get-network-configuration-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#list-reactions-for-a-commit-comment" + "url": "https://docs.github.com/rest/orgs/network-configurations#get-a-hosted-compute-network-configuration-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" - }, - { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a commit comment.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/network-configuration-id" } ], "responses": { @@ -25806,14 +28490,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "$ref": "#/components/schemas/network-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/network-configuration" } } } @@ -25823,158 +28504,119 @@ "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "orgs", + "subcategory": "network-configurations" } }, - "post": { - "summary": "Create reaction for a commit comment", - "description": "Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with an HTTP `200` status means that you already added the reaction type to this commit comment.", + "patch": { + "summary": "Update a hosted compute network configuration for an organization", + "description": "Updates a hosted compute network configuration for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint.", "tags": [ - "reactions" + "hosted-compute" ], - "operationId": "reactions/create-for-commit-comment", + "operationId": "hosted-compute/update-network-configuration-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#create-reaction-for-a-commit-comment" + "url": "https://docs.github.com/rest/orgs/network-configurations#update-a-hosted-compute-network-configuration-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/network-configuration-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "content": { + "name": { + "description": "Name of the network configuration. Must be between 1 and 100 characters and may only contain upper and lowercase letters a-z, numbers 0-9, '.', '-', and '_'.", + "type": "string" + }, + "compute_service": { + "description": "The hosted compute service to use for the network configuration.", "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the commit comment.", "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" + "none", + "actions" ] + }, + "network_settings_ids": { + "type": "array", + "minItems": 0, + "maxItems": 1, + "description": "A list of identifiers of the network settings resources to use for the network configuration. Exactly one resource identifier must be specified in the list.", + "items": { + "type": "string" + } } - }, - "required": [ - "content" - ] + } }, - "example": { - "content": "heart" + "examples": { + "default": { + "value": { + "name": "my-network-configuration", + "network_settings_ids": [ + "23456789ABDCEF1" + ], + "compute_service": "actions" + } + } } } } }, "responses": { "200": { - "description": "Reaction exists", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } - }, - "201": { - "description": "Reaction created", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/network-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "$ref": "#/components/examples/network-configuration" } } } } - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "orgs", + "subcategory": "network-configurations" } - } - }, - "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + }, "delete": { - "summary": "Delete a commit comment reaction", - "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`.\n\nDelete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments).", + "summary": "Delete a hosted compute network configuration from an organization", + "description": "Deletes a hosted compute network configuration from an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint.", "tags": [ - "reactions" + "hosted-compute" ], - "operationId": "reactions/delete-for-commit-comment", + "operationId": "hosted-compute/delete-network-configuration-from-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#delete-a-commit-comment-reaction" + "url": "https://docs.github.com/rest/orgs/network-configurations#delete-a-hosted-compute-network-configuration-from-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/reaction-id" + "$ref": "#/components/parameters/network-configuration-id" } ], "responses": { @@ -25985,49 +28627,83 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "orgs", + "subcategory": "network-configurations" } } }, - "/repos/{owner}/{repo}/commits": { + "/orgs/{org}/settings/network-settings/{network_settings_id}": { "get": { - "summary": "List commits", - "description": "**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "summary": "Get a hosted compute network settings resource for an organization", + "description": "Gets a hosted compute network settings resource configured for an organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint.", "tags": [ - "repos" + "hosted-compute" ], - "operationId": "repos/list-commits", + "operationId": "hosted-compute/get-network-settings-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-commits" + "url": "https://docs.github.com/rest/orgs/network-configurations#get-a-hosted-compute-network-settings-resource-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/network-settings-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/network-settings" + }, + "examples": { + "default": { + "$ref": "#/components/examples/network-settings" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "network-configurations" + } + } + }, + "/orgs/{org}/team/{team_slug}/copilot/metrics": { + "get": { + "summary": "Get Copilot metrics for a team", + "description": "Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions.\n\n> [!NOTE]\n> This endpoint will only return results for a given day if the team had **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day.\n\nThe response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day,\nand the response will only include data up until yesterday. In order for an end user to be counted towards these metrics,\nthey must have telemetry enabled in their IDE.\n\nTo access this endpoint, the Copilot Metrics API access policy must be enabled for the organization containing the team within GitHub settings.\nOnly organization owners for the organization that contains this team and owners and billing managers of the parent enterprise can view Copilot metrics for a team.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint.", + "tags": [ + "copilot" + ], + "operationId": "copilot/copilot-metrics-for-team", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-a-team" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, { - "name": "sha", - "description": "SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`).", - "in": "query", - "required": false, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/team-slug" }, { - "name": "path", - "description": "Only commits containing this file path will be returned.", + "name": "since", + "description": "Show usage metrics since this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). Maximum value is 100 days ago.", "in": "query", "required": false, "schema": { @@ -26035,8 +28711,8 @@ } }, { - "name": "author", - "description": "GitHub login or email address by which to filter by commit author.", + "name": "until", + "description": "Show usage metrics until this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) and should not preceed the `since` date if it is passed.", "in": "query", "required": false, "schema": { @@ -26044,23 +28720,16 @@ } }, { - "$ref": "#/components/parameters/since" + "$ref": "#/components/parameters/page" }, { - "name": "until", - "description": "Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "name": "per_page", + "description": "The number of days of metrics to display per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", "in": "query", - "required": false, "schema": { - "type": "string", - "format": "date-time" + "type": "integer", + "default": 100 } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -26071,67 +28740,59 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/commit" + "$ref": "#/components/schemas/copilot-usage-metrics-day" } }, "examples": { "default": { - "$ref": "#/components/examples/commit-items" + "$ref": "#/components/examples/copilot-usage-metrics-for-day" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "500": { "$ref": "#/components/responses/internal_error" }, - "400": { - "$ref": "#/components/responses/bad_request" + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, - "409": { - "$ref": "#/components/responses/conflict" + "422": { + "$ref": "#/components/responses/usage_metrics_api_disabled" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "commits" + "category": "copilot", + "subcategory": "copilot-metrics" } } }, - "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + "/orgs/{org}/teams": { "get": { - "summary": "List branches for HEAD commit", - "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReturns all branches where the given commit SHA is the HEAD, or latest commit for the branch.", + "summary": "List teams", + "description": "Lists all teams in an organization that are visible to the authenticated user.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/list-branches-for-head-commit", + "operationId": "teams/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-branches-for-head-commit" + "url": "https://docs.github.com/rest/teams/teams#list-teams" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/commit-sha" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -26142,66 +28803,175 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/branch-short" + "$ref": "#/components/schemas/team" } }, "examples": { "default": { - "$ref": "#/components/examples/branch-short-items" + "$ref": "#/components/examples/team-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "teams", + "subcategory": "teams" + } + }, + "post": { + "summary": "Create a team", + "description": "To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see \"[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization).\"\n\nWhen you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see \"[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)\".", + "tags": [ + "teams" + ], + "operationId": "teams/create", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#create-a-team" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the team." + }, + "description": { + "type": "string", + "description": "The description of the team." + }, + "maintainers": { + "type": "array", + "description": "List GitHub usernames for organization members who will become team maintainers.", + "items": { + "type": "string" + } + }, + "repo_names": { + "type": "array", + "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.", + "items": { + "type": "string" + } + }, + "privacy": { + "type": "string", + "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`", + "enum": [ + "secret", + "closed" + ] + }, + "notification_setting": { + "type": "string", + "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] + }, + "permission": { + "type": "string", + "description": "**Closing down notice**. The permission that new repositories will be added to the team with when none is specified.", + "enum": [ + "pull", + "push" + ], + "default": "pull" + }, + "parent_team_id": { + "type": "integer", + "description": "The ID of a team to set as the parent team." + } + }, + "required": [ + "name" + ] + }, + "examples": { + "default": { + "value": { + "name": "Justice League", + "description": "A great team", + "permission": "push", + "notification_setting": "notifications_enabled", + "privacy": "closed" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-full" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-full" + } + } + } + } }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "groot", - "note": "Listing branches or pull requests for a commit in the Commits API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-04-11-pulls-branches-for-commit/) for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.groot-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "commits" + "category": "teams", + "subcategory": "teams" } } }, - "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { + "/orgs/{org}/teams/{team_slug}": { "get": { - "summary": "List commit comments", - "description": "Use the `:commit_sha` to specify the commit that will have its comments listed.", + "summary": "Get a team by name", + "description": "Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `\"My TEam Näme\"` would become `my-team-name`.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/list-comments-for-commit", + "operationId": "teams/get-by-name", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-commit-comments" + "url": "https://docs.github.com/rest/teams/teams#get-a-team-by-name" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/commit-sha" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/team-slug" } ], "responses": { @@ -26210,246 +28980,211 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit-comment" - } + "$ref": "#/components/schemas/team-full" }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment-items" + "$ref": "#/components/examples/team-full" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "repos", - "subcategory": "comments" + "category": "teams", + "subcategory": "teams" } }, - "post": { - "summary": "Create a commit comment", - "description": "Create a comment for a commit using its `:commit_sha`.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "patch": { + "summary": "Update a team", + "description": "To edit a team, the authenticated user must either be an organization owner or a team maintainer.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/create-commit-comment", + "operationId": "teams/update-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-commit-comment" + "url": "https://docs.github.com/rest/teams/teams#update-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/commit-sha" + "$ref": "#/components/parameters/team-slug" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { + "name": { "type": "string", - "description": "The contents of the comment." + "description": "The name of the team." }, - "path": { + "description": { "type": "string", - "description": "Relative path of the file to comment on." + "description": "The description of the team." }, - "position": { - "type": "integer", - "description": "Line index in the diff to comment on." + "privacy": { + "type": "string", + "description": "The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \n**For a parent or child team:** \n * `closed` - visible to all members of this organization.", + "enum": [ + "secret", + "closed" + ] }, - "line": { + "notification_setting": { + "type": "string", + "description": "The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications.", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] + }, + "permission": { + "type": "string", + "description": "**Closing down notice**. The permission that new repositories will be added to the team with when none is specified.", + "enum": [ + "pull", + "push", + "admin" + ], + "default": "pull" + }, + "parent_team_id": { "type": "integer", - "description": "**Deprecated**. Use **position** parameter instead. Line number in the file to comment on." + "description": "The ID of a team to set as the parent team.", + "nullable": true } - }, - "required": [ - "body" - ] + } }, - "example": { - "body": "Great stuff", - "path": "file1.txt", - "position": 4, - "line": 1 + "examples": { + "default": { + "value": { + "name": "new team name", + "description": "new team description", + "privacy": "closed", + "notification_setting": "notifications_enabled" + } + } } } } }, "responses": { - "201": { - "description": "Response", + "200": { + "description": "Response when the updated information already exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comment" + "$ref": "#/components/schemas/team-full" }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment" + "$ref": "#/components/examples/team-full" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/comments/1", + } + }, + "201": { + "description": "Response", + "content": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/team-full" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-full" + } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "comments" + "category": "teams", + "subcategory": "teams" } - } - }, - "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { - "get": { - "summary": "List pull requests associated with a commit", - "description": "Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests) endpoint.", + }, + "delete": { + "summary": "Delete a team", + "description": "To delete a team, the authenticated user must be an organization owner or team maintainer.\n\nIf you are an organization owner, deleting a parent team will delete all of its child teams as well.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/list-pull-requests-associated-with-commit", + "operationId": "teams/delete-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-pull-requests-associated-with-a-commit" + "url": "https://docs.github.com/rest/teams/teams#delete-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/commit-sha" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/team-slug" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-simple" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/pull-request-simple-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "groot", - "note": "Listing branches or pull requests for a commit in the Commits API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-04-11-pulls-branches-for-commit/) for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.groot-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "commits" + "category": "teams", + "subcategory": "teams" } } }, - "/repos/{owner}/{repo}/commits/{ref}": { + "/orgs/{org}/teams/{team_slug}/invitations": { "get": { - "summary": "Get a commit", - "description": "Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint.\n\n**Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.\n\nYou can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property.\n\nTo return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "summary": "List pending team invitations", + "description": "The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/get-commit", + "operationId": "teams/list-pending-invitations-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-commit" + "url": "https://docs.github.com/rest/teams/members#list-pending-team-invitations" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/team-slug" }, { "$ref": "#/components/parameters/per-page" }, { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/page" } ], "responses": { @@ -26458,84 +29193,65 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } }, "examples": { "default": { - "$ref": "#/components/examples/commit" + "$ref": "#/components/examples/organization-invitation-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "500": { - "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "commits" + "category": "teams", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/commits/{ref}/check-runs": { + "/orgs/{org}/teams/{team_slug}/members": { "get": { - "summary": "List check runs for a Git reference", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nLists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository.", + "summary": "List team members", + "description": "Team members will include the members of child teams.\n\nTo list members in a team, the team must be visible to the authenticated user.", "tags": [ - "checks" + "teams" ], - "operationId": "checks/list-for-ref", + "operationId": "teams/list-members-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#list-check-runs-for-a-git-reference" + "url": "https://docs.github.com/rest/teams/members#list-team-members" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true - }, - { - "$ref": "#/components/parameters/check-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/status" + "$ref": "#/components/parameters/team-slug" }, { - "name": "filter", - "description": "Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`.", + "name": "role", + "description": "Filters members returned by their role in the team.", "in": "query", "required": false, "schema": { "type": "string", "enum": [ - "latest", + "member", + "maintainer", "all" ], - "default": "latest" + "default": "all" } }, { @@ -26543,14 +29259,6 @@ }, { "$ref": "#/components/parameters/page" - }, - { - "name": "app_id", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } } ], "responses": { @@ -26559,26 +29267,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "check_runs" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "check_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/check-run" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/check-run-paginated" + "$ref": "#/components/examples/simple-user-items" } } } @@ -26593,61 +29289,32 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "runs" + "category": "teams", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + "/orgs/{org}/teams/{team_slug}/memberships/{username}": { "get": { - "summary": "List check suites for a Git reference", - "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nLists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository.", + "summary": "Get team membership for a user", + "description": "Team members will include the members of child teams.\n\nTo get a user's membership with a team, the team must be visible to the authenticated user.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`.\n\n> [!NOTE]\n> The response contains the `state` of the membership and the member's `role`.\n\nThe `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team).", "tags": [ - "checks" + "teams" ], - "operationId": "checks/list-suites-for-ref", + "operationId": "teams/get-membership-for-user-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference" + "url": "https://docs.github.com/rest/teams/members#get-team-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true - }, - { - "name": "app_id", - "description": "Filters check suites by GitHub App `id`.", - "in": "query", - "required": false, - "schema": { - "type": "integer" - }, - "example": 1 - }, - { - "$ref": "#/components/parameters/check-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/username" } ], "responses": { @@ -26656,143 +29323,164 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "check_suites" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "check_suites": { - "type": "array", - "items": { - "$ref": "#/components/schemas/check-suite" - } - } - } + "$ref": "#/components/schemas/team-membership" }, "examples": { - "default": { - "$ref": "#/components/examples/check-suite-paginated" + "response-if-user-is-a-team-maintainer": { + "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "description": "if user has no team membership" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "checks", - "subcategory": "suites" + "category": "teams", + "subcategory": "members" } - } - }, - "/repos/{owner}/{repo}/commits/{ref}/status": { - "get": { - "summary": "Get the combined status for a specific reference", - "description": "Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name.\n\nThe most recent status for each context is returned, up to 100. This field [paginates](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination) if there are over 100 contexts.\n\nAdditionally, a combined `state` is returned. The `state` is one of:\n\n* **failure** if any of the contexts report as `error` or `failure`\n* **pending** if there are no statuses or a context is `pending`\n* **success** if the latest status for all contexts is `success`", + }, + "put": { + "summary": "Add or update team membership for a user", + "description": "Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\n> [!NOTE]\n> When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nAn organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the \"pending\" state until the person accepts the invitation, at which point the membership will transition to the \"active\" state and the user will be added as a member of the team.\n\nIf the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/get-combined-status-for-ref", + "operationId": "teams/add-or-update-membership-for-user-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-the-combined-status-for-a-specific-reference" + "url": "https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/username" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "The role that this user should have in the team.", + "enum": [ + "member", + "maintainer" + ], + "default": "member" + } + } + }, + "examples": { + "default": { + "summary": "Add or update team membership for an organization member", + "value": { + "role": "maintainer" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/combined-commit-status" + "$ref": "#/components/schemas/team-membership" }, "examples": { - "default": { - "$ref": "#/components/examples/combined-commit-status" + "response-if-users-membership-with-team-is-now-pending": { + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "description": "Forbidden if team synchronization is set up" + }, + "422": { + "description": "Unprocessable Entity if you attempt to add an organization to a team" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statuses" + "category": "teams", + "subcategory": "members" + } + }, + "delete": { + "summary": "Remove team membership for a user", + "description": "To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\n> [!NOTE]\n> When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`.", + "tags": [ + "teams" + ], + "operationId": "teams/remove-membership-for-user-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/team-slug" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "403": { + "description": "Forbidden if team synchronization is set up" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "teams", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/commits/{ref}/statuses": { + "/orgs/{org}/teams/{team_slug}/repos": { "get": { - "summary": "List commit statuses for a reference", - "description": "Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one.\n\nThis resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`.", + "summary": "List team repositories", + "description": "Lists a team's repositories visible to the authenticated user.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/list-commit-statuses-for-ref", + "operationId": "teams/list-repos-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-commit-statuses-for-a-reference" + "url": "https://docs.github.com/rest/teams/teams#list-team-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/team-slug" }, { "$ref": "#/components/parameters/per-page" @@ -26809,12 +29497,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/status" + "$ref": "#/components/schemas/minimal-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/status-items" + "$ref": "#/components/examples/minimal-repository-items" } } } @@ -26824,35 +29512,35 @@ "$ref": "#/components/headers/link" } } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statuses" + "category": "teams", + "subcategory": "teams" } } }, - "/repos/{owner}/{repo}/community/code_of_conduct": { + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { "get": { - "summary": "Get the code of conduct for a repository", - "description": "Returns the contents of the repository's code of conduct file, if one is detected.\n\nA code of conduct is detected if there is a file named `CODE_OF_CONDUCT` in the root directory of the repository. GitHub detects which code of conduct it is using fuzzy matching.", + "summary": "Check team permissions for a repository", + "description": "Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked.\n\nYou can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types/) via the `application/vnd.github.v3.repository+json` accept header.\n\nIf a team doesn't have permission for the repository, you will receive a `404 Not Found` response status.\n\nIf the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.", "tags": [ - "codes-of-conduct" + "teams" ], - "operationId": "codes-of-conduct/get-for-repo", + "operationId": "teams/check-permissions-for-repo-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/codes-of-conduct#get-the-code-of-conduct-for-a-repository" + "url": "https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository" }, "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/team-slug" + }, { "$ref": "#/components/parameters/owner" }, @@ -26862,49 +29550,52 @@ ], "responses": { "200": { - "description": "Response", + "description": "Alternative response with repository permissions", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-of-conduct" + "$ref": "#/components/schemas/team-repository" }, "examples": { - "default": { - "$ref": "#/components/examples/code-of-conduct-2" + "alternative-response-with-repository-permissions": { + "$ref": "#/components/examples/team-repository-alternative-response-with-repository-permissions" } } } } + }, + "204": { + "description": "Response if team has permission for the repository. This is the response when the repository media type hasn't been provded in the Accept header." + }, + "404": { + "description": "Not Found if team does not have permission for the repository" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "scarlet-witch", - "note": "The Codes of Conduct API is currently available for developers to preview.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.scarlet-witch-preview+json\n```" - } - ], - "category": "codes-of-conduct", - "subcategory": null + "category": "teams", + "subcategory": "teams" } - } - }, - "/repos/{owner}/{repo}/community/profile": { - "get": { - "summary": "Get community profile metrics", - "description": "This endpoint will return all community profile metrics, including an\noverall health score, repository description, the presence of documentation, detected\ncode of conduct, detected license, and the presence of ISSUE\\_TEMPLATE, PULL\\_REQUEST\\_TEMPLATE,\nREADME, and CONTRIBUTING files.\n\nThe `health_percentage` score is defined as a percentage of how many of\nthese four documents are present: README, CONTRIBUTING, LICENSE, and\nCODE_OF_CONDUCT. For example, if all four documents are present, then\nthe `health_percentage` is `100`. If only one is present, then the\n`health_percentage` is `25`.\n\n`content_reports_enabled` is only returned for organization-owned repositories.", + }, + "put": { + "summary": "Add or update team repository permissions", + "description": "To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.\n\nFor more information about the permission levels, see \"[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)\".", "tags": [ - "repos" + "teams" ], - "operationId": "repos/get-community-profile-metrics", + "operationId": "teams/add-or-update-repo-permissions-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-community-profile-metrics" + "url": "https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions" }, "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/team-slug" + }, { "$ref": "#/components/parameters/owner" }, @@ -26912,229 +29603,272 @@ "$ref": "#/components/parameters/repo" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/community-profile" - }, - "examples": { - "default": { - "$ref": "#/components/examples/community-profile" + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository." + } + } + }, + "examples": { + "default": { + "summary": "Adding a team to an organization repository with the write role", + "value": { + "permission": "push" } } } } } }, + "responses": { + "204": { + "description": "Response" + } + }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "community" + "category": "teams", + "subcategory": "teams" } - } - }, - "/repos/{owner}/{repo}/compare/{basehead}": { - "get": { - "summary": "Compare two commits", - "description": "The `basehead` param is comprised of two parts: `base` and `head`. Both must be branch names in `repo`. To compare branches across other repositories in the same network as `repo`, use the format `:branch`.\n\nThe response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats.\n\nThe response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file.\n\n**Working with large comparisons**\n\nTo process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see \"[Traversing with pagination](/rest/guides/traversing-with-pagination).\"\n\nWhen calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + }, + "delete": { + "summary": "Remove a repository from a team", + "description": "If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.", "tags": [ - "repos" + "teams" ], - "operationId": "repos/compare-commits", + "operationId": "teams/remove-repo-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#compare-two-commits" + "url": "https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team" }, "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/team-slug" + }, { "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "teams", + "subcategory": "teams" + } + } + }, + "/orgs/{org}/teams/{team_slug}/teams": { + "get": { + "summary": "List child teams", + "description": "Lists the child teams of the team specified by `{team_slug}`.\n\n> [!NOTE]\n> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`.", + "tags": [ + "teams" + ], + "operationId": "teams/list-child-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#list-child-teams" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/team-slug" }, { "$ref": "#/components/parameters/per-page" }, { - "name": "basehead", - "description": "The base branch and head branch to compare. This parameter expects the format `{base}...{head}`.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Response", + "description": "if child teams exist", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comparison" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } }, "examples": { - "default": { - "$ref": "#/components/examples/commit-comparison" + "response-if-child-teams-exist": { + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "commits" + "category": "teams", + "subcategory": "teams" } } }, - "/repos/{owner}/{repo}/content_references/{content_reference_id}/attachments": { + "/orgs/{org}/{security_product}/{enablement}": { "post": { - "summary": "Create a content attachment", - "description": "Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` and `repository` `full_name` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment.\n\nThe app must create a content attachment within six hours of the content reference URL being posted. See \"[Using content attachments](https://docs.github.com/apps/using-content-attachments/)\" for details about content attachments.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "summary": "Enable or disable a security feature for an organization", + "description": "> [!WARNING]\n> **Closing down notice:** The ability to enable or disable a security feature for all eligible repositories in an organization is closing down. Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. For more information, see the [changelog](https://github.blog/changelog/2024-07-22-deprecation-of-api-endpoint-to-enable-or-disable-a-security-feature-for-an-organization/).\n\nEnables or disables the specified security feature for all eligible repositories in an organization. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nThe authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org`, `write:org`, or `repo` scopes to use this endpoint.", "tags": [ - "apps" + "orgs" ], - "operationId": "apps/create-content-attachment", + "operationId": "orgs/enable-or-disable-security-product-on-all-org-repos", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#create-a-content-attachment" + "url": "https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization" }, "parameters": [ { - "name": "owner", - "description": "The owner of the repository. Determined from the `repository` `full_name` of the `content_reference` event.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/org" }, { - "name": "repo", - "description": "The name of the repository. Determined from the `repository` `full_name` of the `content_reference` event.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/security-product" }, { - "name": "content_reference_id", - "description": "The `id` of the `content_reference` event.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/org-security-product-enablement" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "properties": { - "title": { - "description": "The title of the attachment", - "example": "Title of the attachment", - "type": "string", - "maxLength": 1024 - }, - "body": { - "description": "The body of the attachment", - "example": "Body of the attachment", + "query_suite": { + "description": "CodeQL query suite to be used. If you specify the `query_suite` parameter, the default setup will be configured with this query suite only on all repositories that didn't have default setup already configured. It will not change the query suite on repositories that already have default setup configured.\nIf you don't specify any `query_suite` in your request, the preferred query suite of the organization will be applied.", "type": "string", - "maxLength": 262144 + "enum": [ + "default", + "extended" + ] } - }, - "required": [ - "title", - "body" - ], - "type": "object" + } + }, + "examples": { + "default": { + "value": null + } } } } }, + "responses": { + "204": { + "description": "Action started" + }, + "422": { + "description": "The action could not be taken due to an in progress enablement, or a policy is preventing enablement" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "orgs", + "deprecationDate": "2024-07-22", + "removalDate": "2025-07-22" + }, + "deprecated": true + } + }, + "/rate_limit": { + "get": { + "summary": "Get rate limit status for the authenticated user", + "description": "> [!NOTE]\n> Accessing this endpoint does not count against your REST API rate limit.\n\nSome categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories:\n* The `core` object provides your rate limit status for all non-search-related resources in the REST API.\n* The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see \"[Search](https://docs.github.com/rest/search/search).\"\n* The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see \"[Search code](https://docs.github.com/rest/search/search#search-code).\"\n* The `graphql` object provides your rate limit status for the GraphQL API. For more information, see \"[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit).\"\n* The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see \"[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration).\"\n* The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see \"[Dependency graph](https://docs.github.com/rest/dependency-graph).\"\n* The `dependency_sbom` object provides your rate limit status for requesting SBOMs from the dependency graph. For more information, see \"[Dependency graph](https://docs.github.com/rest/dependency-graph).\"\n* The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see \"[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github).\"\n* The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see \"[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners).\"\n* The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see \"[API Versions](https://docs.github.com/rest/about-the-rest-api/api-versions).\"\n\n> [!NOTE]\n> The `rate` object is closing down. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object.", + "tags": [ + "rate-limit" + ], + "operationId": "rate-limit/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/rate-limit/rate-limit#get-rate-limit-status-for-the-authenticated-user" + }, + "parameters": [], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/content-reference-attachment" + "$ref": "#/components/schemas/rate-limit-overview" }, "examples": { "default": { - "$ref": "#/components/examples/content-reference-attachment" + "$ref": "#/components/examples/rate-limit-overview" } } } + }, + "headers": { + "X-RateLimit-Limit": { + "$ref": "#/components/headers/x-rate-limit-limit" + }, + "X-RateLimit-Remaining": { + "$ref": "#/components/headers/x-rate-limit-remaining" + }, + "X-RateLimit-Reset": { + "$ref": "#/components/headers/x-rate-limit-reset" + } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, "304": { "$ref": "#/components/responses/not_modified" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "corsair", - "note": "To access the Content Attachments API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.corsair-preview+json\n```" - } - ], - "category": "apps", - "subcategory": "installations" + "category": "rate-limit", + "subcategory": "rate-limit" } } }, - "/repos/{owner}/{repo}/contents/{path}": { + "/repos/{owner}/{repo}": { "get": { - "summary": "Get repository content", - "description": "Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit\n`:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. \n\nFiles and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for\nretrieving the raw content or rendered HTML (when supported). All content types support [a custom media\ntype](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent\nobject format.\n\n**Note**:\n* To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees).\n* This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees\nAPI](https://docs.github.com/rest/reference/git#get-a-tree).\n* This API supports files up to 1 megabyte in size.\n\n#### If the content is a directory\nThe response will be an array of objects, one object for each item in the directory.\nWhen listing the contents of a directory, submodules have their \"type\" specified as \"file\". Logically, the value\n_should_ be \"submodule\". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW).\nIn the next major version of the API, the type will be returned as \"submodule\".\n\n#### If the content is a symlink \nIf the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the\nAPI responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object \ndescribing the symlink itself.\n\n#### If the content is a submodule\nThe `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific\ncommit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out\nthe submodule at that specific commit.\n\nIf the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links[\"git\"]`) and the\ngithub.com URLs (`html_url` and `_links[\"html\"]`) will have null values.", + "summary": "Get a repository", + "description": "The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network.\n\n> [!NOTE]\n> - In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n> - To view merge-related settings, you must have the `contents:read` and `contents:write` permissions.", "tags": [ "repos" ], - "operationId": "repos/get-content", + "operationId": "repos/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-repository-content" + "url": "https://docs.github.com/rest/repos/repos#get-a-repository" }, "parameters": [ { @@ -27142,100 +29876,51 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "path", - "description": "path parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true - }, - { - "name": "ref", - "description": "The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`)", - "in": "query", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { "200": { "description": "Response", "content": { - "application/vnd.github.v3.object": { - "schema": { - "$ref": "#/components/schemas/content-tree" - } - }, "application/json": { "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/content-directory" - }, - { - "$ref": "#/components/schemas/content-file" - }, - { - "$ref": "#/components/schemas/content-symlink" - }, - { - "$ref": "#/components/schemas/content-submodule" - } - ] + "$ref": "#/components/schemas/full-repository" }, "examples": { - "response-if-content-is-a-file": { - "$ref": "#/components/examples/content-file-response-if-content-is-a-file" - }, - "response-if-content-is-a-directory": { - "$ref": "#/components/examples/content-file-response-if-content-is-a-directory" - }, - "response-if-content-is-a-symlink": { - "$ref": "#/components/examples/content-file-response-if-content-is-a-symlink" - }, - "response-if-content-is-a-submodule": { - "$ref": "#/components/examples/content-file-response-if-content-is-a-submodule" + "default-response": { + "$ref": "#/components/examples/full-repository-default-response" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, "403": { "$ref": "#/components/responses/forbidden" }, - "302": { - "$ref": "#/components/responses/found" + "404": { + "$ref": "#/components/responses/not_found" + }, + "301": { + "$ref": "#/components/responses/moved_permanently" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "repos", - "subcategory": "contents" + "subcategory": "repos" } }, - "put": { - "summary": "Create or update file contents", - "description": "Creates a new file or replaces an existing file in a repository.", + "patch": { + "summary": "Update a repository", + "description": "**Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint.", "tags": [ "repos" ], - "operationId": "repos/create-or-update-file-contents", + "operationId": "repos/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-or-update-file-contents" + "url": "https://docs.github.com/rest/repos/repos#update-a-repository" }, "parameters": [ { @@ -27243,112 +29928,228 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "path", - "description": "path parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "message": { + "name": { "type": "string", - "description": "The commit message." + "description": "The name of the repository." }, - "content": { + "description": { "type": "string", - "description": "The new file content, using Base64 encoding." + "description": "A short description of the repository." }, - "sha": { + "homepage": { "type": "string", - "description": "**Required if you are updating a file**. The blob SHA of the file being replaced." + "description": "A URL with more information about the repository." }, - "branch": { + "private": { + "type": "boolean", + "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.", + "default": false + }, + "visibility": { "type": "string", - "description": "The branch name. Default: the repository’s default branch (usually `master`)" + "description": "The visibility of the repository.", + "enum": [ + "public", + "private" + ] }, - "committer": { + "security_and_analysis": { "type": "object", - "description": "The person that committed the file. Default: the authenticated user.", + "description": "Specify which security and analysis features to enable or disable for the repository.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nFor example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:\n`{ \"security_and_analysis\": {\"advanced_security\": { \"status\": \"enabled\" } } }`.\n\nYou can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.", + "nullable": true, "properties": { - "name": { - "type": "string", - "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted." - }, - "email": { - "type": "string", - "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted." + "advanced_security": { + "type": "object", + "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository.\nFor more information, see \"[About GitHub Advanced\nSecurity](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } }, - "date": { - "type": "string", - "example": "\"2013-01-05T13:13:22+05:00\"" - } - }, - "required": [ - "name", - "email" - ] - }, - "author": { - "type": "object", - "description": "The author of the file. Default: The `committer` or the authenticated user if you omit `committer`.", - "properties": { - "name": { - "type": "string", - "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted." + "code_security": { + "type": "object", + "description": "Use the `status` property to enable or disable GitHub Code Security for this repository.", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } }, - "email": { - "type": "string", - "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted." + "secret_scanning": { + "type": "object", + "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } }, - "date": { - "type": "string", - "example": "\"2013-01-15T17:13:22+05:00\"" + "secret_scanning_push_protection": { + "type": "object", + "description": "Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see \"[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).\"", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } + }, + "secret_scanning_ai_detection": { + "type": "object", + "description": "Use the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see \"[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).\"", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } + }, + "secret_scanning_non_provider_patterns": { + "type": "object", + "description": "Use the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see \"[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } } - }, - "required": [ - "name", - "email" - ] + } + }, + "has_issues": { + "type": "boolean", + "description": "Either `true` to enable issues for this repository or `false` to disable them.", + "default": true + }, + "has_projects": { + "type": "boolean", + "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", + "default": true + }, + "has_wiki": { + "type": "boolean", + "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", + "default": true + }, + "is_template": { + "type": "boolean", + "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", + "default": false + }, + "default_branch": { + "type": "string", + "description": "Updates the default branch for this repository." + }, + "allow_squash_merge": { + "type": "boolean", + "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "default": true + }, + "allow_merge_commit": { + "type": "boolean", + "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "default": true + }, + "allow_rebase_merge": { + "type": "boolean", + "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "default": true + }, + "allow_auto_merge": { + "type": "boolean", + "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.", + "default": false + }, + "delete_branch_on_merge": { + "type": "boolean", + "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.", + "default": false + }, + "allow_update_branch": { + "type": "boolean", + "description": "Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.", + "default": false + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "default": false, + "deprecated": true + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "archived": { + "type": "boolean", + "description": "Whether to archive this repository. `false` will unarchive a previously archived repository.", + "default": false + }, + "allow_forking": { + "type": "boolean", + "description": "Either `true` to allow private forks, or `false` to prevent private forks.", + "default": false + }, + "web_commit_signoff_required": { + "type": "boolean", + "description": "Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.", + "default": false } - }, - "required": [ - "message", - "content" - ] + } }, "examples": { - "example-for-creating-a-file": { - "summary": "Example for creating a file", - "value": { - "message": "my commit message", - "committer": { - "name": "Monalisa Octocat", - "email": "octocat@github.com" - }, - "content": "bXkgbmV3IGZpbGUgY29udGVudHM=" - } - }, - "example-for-updating-a-file": { - "summary": "Example for updating a file", + "default": { "value": { - "message": "a new commit message", - "committer": { - "name": "Monalisa Octocat", - "email": "octocat@github.com" - }, - "content": "bXkgdXBkYXRlZCBmaWxlIGNvbnRlbnRz", - "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3" + "name": "Hello-World", + "description": "This is your first repository", + "homepage": "https://github.com", + "private": true, + "has_issues": true, + "has_projects": true, + "has_wiki": true } } } @@ -27361,61 +30162,46 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/file-commit" + "$ref": "#/components/schemas/full-repository" }, "examples": { - "example-for-updating-a-file": { - "$ref": "#/components/examples/file-commit-example-for-updating-a-file" + "default": { + "$ref": "#/components/examples/full-repository" } } } } }, - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/file-commit" - }, - "examples": { - "example-for-creating-a-file": { - "$ref": "#/components/examples/file-commit-example-for-creating-a-file" - } - } - } - } + "307": { + "$ref": "#/components/responses/temporary_redirect" }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "$ref": "#/components/responses/forbidden" }, "422": { "$ref": "#/components/responses/validation_failed" }, - "409": { - "$ref": "#/components/responses/conflict" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "repos", - "subcategory": "contents" + "subcategory": "repos" } }, "delete": { - "summary": "Delete a file", - "description": "Deletes a file in a repository.\n\nYou can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author.\n\nThe `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used.\n\nYou must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code.", + "summary": "Delete a repository", + "description": "Deleting a repository requires admin access.\n\nIf an organization owner has configured the organization to prevent members from deleting organization-owned\nrepositories, you will get a `403 Forbidden` response.\n\nOAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint.", "tags": [ "repos" ], - "operationId": "repos/delete-file", + "operationId": "repos/delete", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-file" + "url": "https://docs.github.com/rest/repos/repos#delete-a-repository" }, "parameters": [ { @@ -27423,132 +30209,67 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "path", - "description": "path parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The commit message." - }, - "sha": { - "type": "string", - "description": "The blob SHA of the file being replaced." - }, - "branch": { - "type": "string", - "description": "The branch name. Default: the repository’s default branch (usually `master`)" - }, - "committer": { - "type": "object", - "description": "object containing information about the committer.", - "properties": { - "name": { - "type": "string", - "description": "The name of the author (or committer) of the commit" - }, - "email": { - "type": "string", - "description": "The email of the author (or committer) of the commit" - } - } - }, - "author": { - "type": "object", - "description": "object containing information about the author.", - "properties": { - "name": { - "type": "string", - "description": "The name of the author (or committer) of the commit" - }, - "email": { - "type": "string", - "description": "The email of the author (or committer) of the commit" - } - } - } - }, - "required": [ - "message", - "sha" - ] - }, - "example": { - "message": "my commit message", - "committer": { - "name": "Monalisa Octocat", - "email": "octocat@github.com" - }, - "sha": "329688480d39049927147c162b9d2deaf885005f" - } - } - } - }, "responses": { - "200": { - "description": "Response", + "204": { + "description": "Response" + }, + "403": { + "description": "If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response:", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/file-commit" + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } }, "examples": { "default": { - "$ref": "#/components/examples/file-commit" + "value": { + "message": "Organization members cannot delete repositories.", + "documentation_url": "https://docs.github.com/rest/repos/repos#delete-a-repository" + } } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "307": { + "$ref": "#/components/responses/temporary_redirect" }, "404": { "$ref": "#/components/responses/not_found" }, "409": { "$ref": "#/components/responses/conflict" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "repos", - "subcategory": "contents" + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/contributors": { + "/repos/{owner}/{repo}/actions/artifacts": { "get": { - "summary": "List repository contributors", - "description": "Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance.\n\nGitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information.", + "summary": "List artifacts for a repository", + "description": "Lists all artifacts for a repository.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/list-contributors", + "operationId": "actions/list-artifacts-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-contributors" + "url": "https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository" }, "parameters": [ { @@ -27557,36 +30278,42 @@ { "$ref": "#/components/parameters/repo" }, - { - "name": "anon", - "description": "Set to `1` or `true` to include anonymous contributors in results.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/artifact-name" } ], "responses": { "200": { - "description": "if repository contains content", + "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/contributor" + "type": "object", + "required": [ + "total_count", + "artifacts" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/artifact" + } + } } }, "examples": { - "response-if-repository-contains-content": { - "$ref": "#/components/examples/contributor-items-response-if-repository-contains-content" + "default": { + "$ref": "#/components/examples/artifact-paginated" } } } @@ -27596,39 +30323,27 @@ "$ref": "#/components/headers/link" } } - }, - "204": { - "description": "Response if repository is empty" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "category": "actions", + "subcategory": "artifacts" } } }, - "/repos/{owner}/{repo}/deployments": { + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { "get": { - "summary": "List deployments", - "description": "Simple filtering of deployments is available via query parameters:", + "summary": "Get an artifact", + "description": "Gets a specific artifact for a workflow run.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/list-deployments", + "operationId": "actions/get-artifact", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-deployments" + "url": "https://docs.github.com/rest/actions/artifacts#get-an-artifact" }, "parameters": [ { @@ -27638,51 +30353,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "sha", - "description": "The SHA recorded at creation time.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "none" - } - }, - { - "name": "ref", - "description": "The name of the ref. This can be a branch, tag, or SHA.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "none" - } - }, - { - "name": "task", - "description": "The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`).", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "none" - } - }, - { - "name": "environment", - "description": "The name of the environment that was deployed to (e.g., `staging` or `production`).", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "none", - "nullable": true - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/artifact-id" } ], "responses": { @@ -27691,49 +30362,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/deployment" - } + "$ref": "#/components/schemas/artifact" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-items" + "$ref": "#/components/examples/artifact" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "ant-man", - "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "deployments" + "category": "actions", + "subcategory": "artifacts" } }, - "post": { - "summary": "Create a deployment", - "description": "Deployments offer a few configurable parameters with certain defaults.\n\nThe `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them\nbefore we merge a pull request.\n\nThe `environment` parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is `production`.\n\nThe `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.\n\nBy default, [commit statuses](https://docs.github.com/rest/reference/repos#statuses) for every submitted context must be in a `success`\nstate. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.\n\nThe `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.\n\nThe `task` parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.\n\nUsers with `repo` or `repo_deployment` scopes can create a deployment for a given ref.\n\n#### Merged branch response\nYou will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:\n* Auto-merge option is enabled in the repository\n* Topic branch does not include the latest changes on the base branch, which is `master` in the response example\n* There are no merge conflicts\n\nIf there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.\n\n#### Merge conflict response\nThis error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't\nbe merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts.\n\n#### Failed commit status checks\nThis error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success`\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of `success`.", + "delete": { + "summary": "Delete an artifact", + "description": "Deletes an artifact for a workflow run.\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/create-deployment", + "operationId": "actions/delete-artifact", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-deployment" + "url": "https://docs.github.com/rest/actions/artifacts#delete-an-artifact" }, "parameters": [ { @@ -27741,170 +30397,35 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/artifact-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "ref": { - "type": "string", - "description": "The ref to deploy. This can be a branch, tag, or SHA." - }, - "task": { - "type": "string", - "description": "Specifies a task to execute (e.g., `deploy` or `deploy:migrations`).", - "default": "deploy" - }, - "auto_merge": { - "type": "boolean", - "description": "Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch.", - "default": true - }, - "required_contexts": { - "type": "array", - "description": "The [status](https://docs.github.com/rest/reference/repos#statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts.", - "items": { - "type": "string" - } - }, - "payload": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "string", - "description": "JSON payload with extra information about the deployment.", - "default": "" - } - ] - }, - "environment": { - "type": "string", - "description": "Name for the target deployment environment (e.g., `production`, `staging`, `qa`).", - "default": "production" - }, - "description": { - "type": "string", - "description": "Short description of the deployment.", - "default": "", - "nullable": true - }, - "transient_environment": { - "type": "boolean", - "description": "Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type.", - "default": false - }, - "production_environment": { - "type": "boolean", - "description": "Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type." - } - }, - "required": [ - "ref" - ] - }, - "examples": { - "simple-example": { - "summary": "Simple example", - "value": { - "ref": "topic-branch", - "payload": "{ \"deploy\": \"migrate\" }", - "description": "Deploy request from hubot" - } - }, - "advanced-example": { - "summary": "Advanced example", - "value": { - "ref": "topic-branch", - "auto_merge": false, - "payload": "{ \"deploy\": \"migrate\" }", - "description": "Deploy request from hubot", - "required_contexts": [ - "ci/janky", - "security/brakeman" - ] - } - } - } - } - } - }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deployment" - }, - "examples": { - "simple-example": { - "$ref": "#/components/examples/deployment-simple-example" - } - } - } - } - }, - "202": { - "description": "Merged branch response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - } - }, - "examples": { - "merged-branch-response": { - "value": { - "message": "Auto-merged master into topic-branch on deployment." - } - } - } - } - } - }, - "409": { - "description": "Conflict when there is a merge conflict or the commit's status checks failed" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "ant-man", - "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "deployments" + "category": "actions", + "subcategory": "artifacts" } } }, - "/repos/{owner}/{repo}/deployments/{deployment_id}": { + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { "get": { - "summary": "Get a deployment", - "description": "", + "summary": "Download an artifact", + "description": "Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in\nthe response header to find the URL for the download. The `:archive_format` must be `zip`.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/get-deployment", + "operationId": "actions/download-artifact", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-deployment" + "url": "https://docs.github.com/rest/actions/artifacts#download-an-artifact" }, "parameters": [ { @@ -27914,98 +30435,49 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/deployment-id" + "$ref": "#/components/parameters/artifact-id" + }, + { + "name": "archive_format", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { - "200": { + "302": { "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deployment" - }, - "examples": { - "default": { - "$ref": "#/components/examples/deployment" - } - } + "headers": { + "Location": { + "$ref": "#/components/headers/location" } } }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "ant-man", - "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "deployments" - } - }, - "delete": { - "summary": "Delete a deployment", - "description": "To ensure there can always be an active deployment, you can only delete an _inactive_ deployment. Anyone with `repo` or `repo_deployment` scopes can delete an inactive deployment.\n\nTo set a deployment as inactive, you must:\n\n* Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment.\n* Mark the active deployment as inactive by adding any non-successful deployment status.\n\nFor more information, see \"[Create a deployment](https://docs.github.com/rest/reference/repos/#create-a-deployment)\" and \"[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status).\"", - "tags": [ - "repos" - ], - "operationId": "repos/delete-deployment", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-deployment" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/deployment-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "deployments" + "category": "actions", + "subcategory": "artifacts" } } }, - "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + "/repos/{owner}/{repo}/actions/cache/retention-limit": { "get": { - "summary": "List deployment statuses", - "description": "Users with pull access can view deployment statuses for a deployment:", + "summary": "Get GitHub Actions cache retention limit for a repository", + "description": "Gets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if\nnot manually removed or evicted due to size constraints.\n\nOAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/list-deployment-statuses", + "operationId": "actions/get-actions-cache-retention-limit-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-deployment-statuses" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-a-repository" }, "parameters": [ { @@ -28013,15 +30485,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/deployment-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -28030,24 +30493,19 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/deployment-status" - } + "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-status-items" + "$ref": "#/components/examples/actions-cache-retention-limit" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } @@ -28055,32 +30513,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "flash", - "note": "New features in the Deployments API on GitHub are currently available during a public beta. Please see the [blog post](https://developer.github.com/changes/2018-10-16-deployments-environments-states-and-auto-inactive-updates/) for full details.\n\nTo access the new `environment` parameter, the two new values for the `state` parameter (`in_progress` and `queued`), and use `auto_inactive` on production deployments during the public beta period, you must provide the following custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.flash-preview+json\n```" - }, - { - "required": false, - "name": "ant-man", - "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "deployments" + "category": "actions", + "subcategory": "cache" } }, - "post": { - "summary": "Create a deployment status", - "description": "Users with `push` access can create deployment statuses for a given deployment.\n\nGitHub Apps require `read & write` access to \"Deployments\" and `read-only` access to \"Repo contents\" (for private repos). OAuth Apps require the `repo_deployment` scope.", + "put": { + "summary": "Set GitHub Actions cache retention limit for a repository", + "description": "Sets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if\nnot manually removed or evicted due to size constraints.\n\nOAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/create-deployment-status", + "operationId": "actions/set-actions-cache-retention-limit-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-deployment-status" + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-a-repository" }, "parameters": [ { @@ -28088,136 +30534,56 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/deployment-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "state": { - "type": "string", - "description": "The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub.", - "enum": [ - "error", - "failure", - "inactive", - "in_progress", - "queued", - "pending", - "success" - ] - }, - "target_url": { - "type": "string", - "description": "The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`.", - "default": "" - }, - "log_url": { - "type": "string", - "description": "The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `\"\"` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type.", - "default": "" - }, - "description": { - "type": "string", - "description": "A short description of the status. The maximum description length is 140 characters.", - "default": "" - }, - "environment": { - "type": "string", - "description": "Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type.", - "enum": [ - "production", - "staging", - "qa" - ] - }, - "environment_url": { - "type": "string", - "description": "Sets the URL for accessing your environment. Default: `\"\"` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type.", - "default": "" - }, - "auto_inactive": { - "type": "boolean", - "description": "Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` \n**Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type. \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type." - } - }, - "required": [ - "state" - ] + "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" }, - "example": { - "environment": "production", - "state": "success", - "log_url": "https://example.com/deployment/42/output", - "description": "Deployment finished successfully." + "examples": { + "selected_actions": { + "$ref": "#/components/examples/actions-cache-retention-limit" + } } } } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deployment-status" - }, - "examples": { - "default": { - "$ref": "#/components/examples/deployment-status" - } - } - } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1", - "schema": { - "type": "string" - } - } - } + "204": { + "description": "Response" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "flash", - "note": "New features in the Deployments API on GitHub are currently available during a public beta. Please see the [blog post](https://developer.github.com/changes/2018-10-16-deployments-environments-states-and-auto-inactive-updates/) for full details.\n\nTo access the new `environment` parameter, the two new values for the `state` parameter (`in_progress` and `queued`), and use `auto_inactive` on production deployments during the public beta period, you must provide the following custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.flash-preview+json\n```" - }, - { - "required": false, - "name": "ant-man", - "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "deployments" + "category": "actions", + "subcategory": "cache" } } }, - "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + "/repos/{owner}/{repo}/actions/cache/storage-limit": { "get": { - "summary": "Get a deployment status", - "description": "Users with pull access can view a deployment status for a deployment:", + "summary": "Get GitHub Actions cache storage limit for a repository", + "description": "Gets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be\nstored before eviction occurs.\n\nOAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/get-deployment-status", + "operationId": "actions/get-actions-cache-storage-limit-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-deployment-status" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-a-repository" }, "parameters": [ { @@ -28225,17 +30591,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/deployment-id" - }, - { - "name": "status_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } } ], "responses": { @@ -28244,54 +30599,40 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-status" + "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-status" + "$ref": "#/components/examples/actions-cache-storage-limit" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "flash", - "note": "New features in the Deployments API on GitHub are currently available during a public beta. Please see the [blog post](https://developer.github.com/changes/2018-10-16-deployments-environments-states-and-auto-inactive-updates/) for full details.\n\nTo access the new `environment` parameter, the two new values for the `state` parameter (`in_progress` and `queued`), and use `auto_inactive` on production deployments during the public beta period, you must provide the following custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.flash-preview+json\n```" - }, - { - "required": false, - "name": "ant-man", - "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "deployments" + "category": "actions", + "subcategory": "cache" } - } - }, - "/repos/{owner}/{repo}/dispatches": { - "post": { - "summary": "Create a repository dispatch event", - "description": "You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see \"[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch).\"\n\nThe `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow.\n\nThis endpoint requires write access to the repository by providing either:\n\n - Personal access tokens with `repo` scope. For more information, see \"[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)\" in the GitHub Help documentation.\n - GitHub Apps with both `metadata:read` and `contents:read&write` permissions.\n\nThis input example shows how you can use the `client_payload` as a test to debug your workflow.", + }, + "put": { + "summary": "Set GitHub Actions cache storage limit for a repository", + "description": "Sets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be\nstored before eviction occurs.\n\nOAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/create-dispatch-event", + "operationId": "actions/set-actions-cache-storage-limit-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-repository-dispatch-event" + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-a-repository" }, "parameters": [ { @@ -28302,33 +30643,15 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "event_type" - ], - "properties": { - "event_type": { - "type": "string", - "description": "A custom webhook event name.", - "minLength": 1, - "maxLength": 100 - }, - "client_payload": { - "type": "object", - "description": "JSON payload with extra information about the webhook event that your action or worklow may use.", - "additionalProperties": true, - "maxProperties": 10 - } - } + "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" }, - "example": { - "event_type": "on-demand-test", - "client_payload": { - "unit": false, - "integration": true + "examples": { + "selected_actions": { + "$ref": "#/components/examples/actions-cache-storage-limit" } } } @@ -28338,32 +30661,35 @@ "204": { "description": "Response" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "category": "actions", + "subcategory": "cache" } } }, - "/repos/{owner}/{repo}/environments": { + "/repos/{owner}/{repo}/actions/cache/usage": { "get": { - "summary": "Get all environments", - "description": "Get all environments for a repository.\n\nAnyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "Get GitHub Actions cache usage for a repository", + "description": "Gets GitHub Actions cache usage for a repository.\nThe data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/get-all-environments", + "operationId": "actions/get-actions-cache-usage", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-all-environments" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-a-repository" }, "parameters": [ { @@ -28379,24 +30705,11 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "total_count": { - "description": "The number of environments in this repository", - "example": 5, - "type": "integer" - }, - "environments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/environment" - } - } - } + "$ref": "#/components/schemas/actions-cache-usage-by-repository" }, "examples": { "default": { - "$ref": "#/components/examples/environments" + "$ref": "#/components/examples/actions-cache-usage" } } } @@ -28406,25 +30719,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "environments" + "category": "actions", + "subcategory": "cache" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}": { + "/repos/{owner}/{repo}/actions/caches": { "get": { - "summary": "Get an environment", - "description": "Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "summary": "List GitHub Actions caches for a repository", + "description": "Lists the GitHub Actions caches for a repository.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/get-environment", + "operationId": "actions/get-actions-cache-list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-an-environment" + "url": "https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository" }, "parameters": [ { @@ -28434,7 +30744,22 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/actions-cache-git-ref-full" + }, + { + "$ref": "#/components/parameters/actions-cache-key" + }, + { + "$ref": "#/components/parameters/actions-cache-list-sort" + }, + { + "$ref": "#/components/parameters/direction" } ], "responses": { @@ -28443,37 +30768,40 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/environment" + "$ref": "#/components/schemas/actions-cache-list" }, "examples": { "default": { - "$ref": "#/components/examples/environment" + "$ref": "#/components/examples/actions-cache-list" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "environments" + "previews": [], + "category": "actions", + "subcategory": "cache" } }, - "put": { - "summary": "Create or update an environment", - "description": "Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see \"[Environments](/actions/reference/environments#environment-protection-rules).\"\n\n**Note:** Although you can use this operation to specify that only branches that match specified name patterns can deploy to this environment, you must use the UI to set the name patterns. For more information, see \"[Environments](/actions/reference/environments#deployment-branches).\"\n\n**Note:** To create or update secrets for an environment, see \"[Secrets](/rest/reference/actions#secrets).\"\n\nYou must authenticate using an access token with the repo scope to use this endpoint.", + "delete": { + "summary": "Delete GitHub Actions caches for a repository (using a cache key)", + "description": "Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/create-or-update-environment", + "operationId": "actions/delete-actions-cache-by-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-or-update-an-environment" + "url": "https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key" }, "parameters": [ { @@ -28483,93 +30811,48 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/actions-cache-key-required" + }, + { + "$ref": "#/components/parameters/actions-cache-git-ref-full" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "nullable": true, - "properties": { - "wait_timer": { - "$ref": "#/components/schemas/wait-timer" - }, - "reviewers": { - "type": "array", - "nullable": true, - "description": "The people or teams that may review jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed.", - "items": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/deployment-reviewer-type" - }, - "id": { - "type": "integer", - "description": "The id of the user or team who can review the deployment", - "example": 4532992 - } - } - } - }, - "deployment_branch_policy": { - "$ref": "#/components/schemas/deployment_branch_policy" - } - }, - "additionalProperties": false - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/environment" + "$ref": "#/components/schemas/actions-cache-list" }, "examples": { "default": { - "$ref": "#/components/examples/environment" + "$ref": "#/components/examples/actions-cache-list" } } } } - }, - "422": { - "description": "Validation error when the environment name is invalid or when `protected_branches` and `custom_branch_policies` in `deployment_branch_policy` are set to the same value", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } - } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "environments" + "category": "actions", + "subcategory": "cache" } - }, + } + }, + "/repos/{owner}/{repo}/actions/caches/{cache_id}": { "delete": { - "summary": "Delete an environment", - "description": "You must authenticate using an access token with the repo scope to use this endpoint.", + "summary": "Delete a GitHub Actions cache for a repository (using a cache ID)", + "description": "Deletes a GitHub Actions cache for a repository, using a cache ID.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/delete-an-environment", + "operationId": "actions/delete-actions-cache-by-id", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-an-environment" + "url": "https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id" }, "parameters": [ { @@ -28579,36 +30862,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/cache-id" } ], "responses": { "204": { - "description": "Default response" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "environments" + "category": "actions", + "subcategory": "cache" } } }, - "/repos/{owner}/{repo}/events": { + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { "get": { - "summary": "List repository events", - "description": "", + "summary": "Get a job for a workflow run", + "description": "Gets a specific job in a workflow run.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "activity" + "actions" ], - "operationId": "activity/list-repo-events", + "operationId": "actions/get-job-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-repository-events" + "url": "https://docs.github.com/rest/actions/workflow-jobs#get-a-job-for-a-workflow-run" }, "parameters": [ { @@ -28618,10 +30898,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/job-id" } ], "responses": { @@ -28630,10 +30907,12 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" - } + "$ref": "#/components/schemas/job" + }, + "examples": { + "default": { + "$ref": "#/components/examples/job" + } } } } @@ -28642,25 +30921,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "events" + "category": "actions", + "subcategory": "workflow-jobs" } } }, - "/repos/{owner}/{repo}/forks": { + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { "get": { - "summary": "List forks", - "description": "", + "summary": "Download job logs for a workflow run", + "description": "Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look\nfor `Location:` in the response header to find the URL for the download.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/list-forks", + "operationId": "actions/download-job-logs-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-forks" + "url": "https://docs.github.com/rest/actions/workflow-jobs#download-job-logs-for-a-workflow-run" }, "parameters": [ { @@ -28670,152 +30946,41 @@ "$ref": "#/components/parameters/repo" }, { - "name": "sort", - "description": "The sort order. Can be either `newest`, `oldest`, or `stargazers`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "newest", - "oldest", - "stargazers", - "watchers" - ], - "default": "newest" - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/job-id" } ], "responses": { - "200": { + "302": { "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/minimal-repository-items-2" - } - } - } - }, "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "400": { - "$ref": "#/components/responses/bad_request" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "forks" - } - }, - "post": { - "summary": "Create a fork", - "description": "Create a fork for the authenticated user.\n\n**Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=rest-api).", - "tags": [ - "repos" - ], - "operationId": "repos/create-fork", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-fork" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "nullable": true, - "properties": { - "organization": { - "type": "string", - "description": "Optional parameter to specify the organization name if forking into an organization." - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Response", - "content": { - "application/json": { + "Location": { + "example": "https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/jobs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D", "schema": { - "$ref": "#/components/schemas/full-repository" - }, - "examples": { - "default": { - "$ref": "#/components/examples/full-repository" - } + "type": "string" } } } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "forks" + "category": "actions", + "subcategory": "workflow-jobs" } } }, - "/repos/{owner}/{repo}/git/blobs": { + "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": { "post": { - "summary": "Create a blob", - "description": "", + "summary": "Re-run a job from a workflow run", + "description": "Re-run a job and its dependent jobs in a workflow run.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "git" + "actions" ], - "operationId": "git/create-blob", + "operationId": "actions/re-run-job-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#create-a-blob" + "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run" }, "parameters": [ { @@ -28823,31 +30988,30 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/job-id" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "content": { - "type": "string", - "description": "The new blob's content." - }, - "encoding": { - "type": "string", - "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", - "default": "utf-8" + "enable_debug_logging": { + "type": "boolean", + "default": false, + "description": "Whether to enable debug logging for the re-run." } - }, - "required": [ - "content" - ] + } }, - "example": { - "content": "Content of the blob", - "encoding": "utf-8" + "examples": { + "default": { + "value": null + } } } } @@ -28858,59 +31022,39 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/short-blob" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/short-blob" + "value": null } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", - "schema": { - "type": "string" - } - } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/conflict" - }, "403": { "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "blobs" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + "/repos/{owner}/{repo}/actions/oidc/customization/sub": { "get": { - "summary": "Get a blob", - "description": "The `content` in the response will always be Base64 encoded.\n\n_Note_: This API supports blobs up to 100 megabytes in size.", + "summary": "Get the customization template for an OIDC subject claim for a repository", + "description": "Gets the customization template for an OpenID Connect (OIDC) subject claim.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "git" + "actions" ], - "operationId": "git/get-blob", + "operationId": "actions/get-custom-oidc-sub-claim-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#get-a-blob" + "url": "https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository" }, "parameters": [ { @@ -28918,64 +31062,48 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "file_sha", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { "200": { - "description": "Response", + "description": "Status response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/blob" + "$ref": "#/components/schemas/oidc-custom-sub-repo" }, "examples": { "default": { - "$ref": "#/components/examples/blob" + "$ref": "#/components/examples/oidc-custom-sub-repo" } } } } }, + "400": { + "$ref": "#/components/responses/bad_request" + }, "404": { "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "blobs" + "previews": [], + "category": "actions", + "subcategory": "oidc" } - } - }, - "/repos/{owner}/{repo}/git/commits": { - "post": { - "summary": "Create a commit", - "description": "Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects).\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + }, + "put": { + "summary": "Set the customization template for an OIDC subject claim for a repository", + "description": "Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "git" + "actions" ], - "operationId": "git/create-commit", + "operationId": "actions/set-custom-oidc-sub-claim-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#create-a-commit" + "url": "https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository" }, "parameters": [ { @@ -28986,147 +31114,89 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { + "title": "Actions OIDC subject customization for a repository", + "description": "Actions OIDC subject customization for a repository", "type": "object", + "required": [ + "use_default" + ], "properties": { - "message": { - "type": "string", - "description": "The commit message" - }, - "tree": { - "type": "string", - "description": "The SHA of the tree object this commit points to" + "use_default": { + "description": "Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored.", + "type": "boolean" }, - "parents": { + "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", "type": "array", - "description": "The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided.", "items": { "type": "string" } - }, - "author": { - "type": "object", - "description": "Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details.", - "properties": { - "name": { - "type": "string", - "description": "The name of the author (or committer) of the commit" - }, - "email": { - "type": "string", - "description": "The email of the author (or committer) of the commit" - }, - "date": { - "type": "string", - "format": "date-time", - "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." - } - }, - "required": [ - "name", - "email" - ] - }, - "committer": { - "type": "object", - "description": "Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details.", - "properties": { - "name": { - "type": "string", - "description": "The name of the author (or committer) of the commit" - }, - "email": { - "type": "string", - "description": "The email of the author (or committer) of the commit" - }, - "date": { - "type": "string", - "format": "date-time", - "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." - } - } - }, - "signature": { - "type": "string", - "description": "The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits." } - }, - "required": [ - "message", - "tree" - ] + } }, - "example": { - "message": "my commit message", - "author": { - "name": "Mona Octocat", - "email": "octocat@github.com", - "date": "2008-07-09T16:13:30+12:00" - }, - "parents": [ - "7d1b31e74ee336d15cbd21741bc88a537ed063a0" - ], - "tree": "827efc6d56897b048c772eb4087f854f46256132", - "signature": "-----BEGIN PGP SIGNATURE-----\n\niQIzBAABAQAdFiEESn/54jMNIrGSE6Tp6cQjvhfv7nAFAlnT71cACgkQ6cQjvhfv\n7nCWwA//XVqBKWO0zF+bZl6pggvky3Oc2j1pNFuRWZ29LXpNuD5WUGXGG209B0hI\nDkmcGk19ZKUTnEUJV2Xd0R7AW01S/YSub7OYcgBkI7qUE13FVHN5ln1KvH2all2n\n2+JCV1HcJLEoTjqIFZSSu/sMdhkLQ9/NsmMAzpf/iIM0nQOyU4YRex9eD1bYj6nA\nOQPIDdAuaTQj1gFPHYLzM4zJnCqGdRlg0sOM/zC5apBNzIwlgREatOYQSCfCKV7k\nnrU34X8b9BzQaUx48Qa+Dmfn5KQ8dl27RNeWAqlkuWyv3pUauH9UeYW+KyuJeMkU\n+NyHgAsWFaCFl23kCHThbLStMZOYEnGagrd0hnm1TPS4GJkV4wfYMwnI4KuSlHKB\njHl3Js9vNzEUQipQJbgCgTiWvRJoK3ENwBTMVkKHaqT4x9U4Jk/XZB6Q8MA09ezJ\n3QgiTjTAGcum9E9QiJqMYdWQPWkaBIRRz5cET6HPB48YNXAAUsfmuYsGrnVLYbG+\nUpC6I97VybYHTy2O9XSGoaLeMI9CsFn38ycAxxbWagk5mhclNTP5mezIq6wKSwmr\nX11FW3n1J23fWZn5HJMBsRnUCgzqzX3871IqLYHqRJ/bpZ4h20RhTyPj5c/z7QXp\neSakNQMfbbMcljkha+ZMuVQX1K9aRlVqbmv3ZMWh+OijLYVU2bc=\n=5Io4\n-----END PGP SIGNATURE-----\n" + "examples": { + "default": { + "value": { + "use_default": false, + "include_claim_keys": [ + "repo", + "context" + ] + } + } } } } }, "responses": { "201": { - "description": "Response", + "description": "Empty response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-commit" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/git-commit" + "value": null } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "commits" + "previews": [], + "category": "actions", + "subcategory": "oidc" } } }, - "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + "/repos/{owner}/{repo}/actions/organization-secrets": { "get": { - "summary": "Get a commit", - "description": "Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects).\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "summary": "List repository organization secrets", + "description": "Lists all organization secrets shared with a repository without revealing their encrypted\nvalues.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "git" + "actions" ], - "operationId": "git/get-commit", + "operationId": "actions/list-repo-organization-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#get-a-commit" + "url": "https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets" }, "parameters": [ { @@ -29136,7 +31206,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-sha" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -29145,42 +31218,56 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-commit" + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-secret" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/git-commit-2" + "$ref": "#/components/examples/actions-secret-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "commits" + "category": "actions", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + "/repos/{owner}/{repo}/actions/organization-variables": { "get": { - "summary": "List matching references", - "description": "Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array.\n\nWhen you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`.\n\n**Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".\n\nIf you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`.", + "summary": "List repository organization variables", + "description": "Lists all organization variables shared with a repository.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "git" + "actions" ], - "operationId": "git/list-matching-refs", + "operationId": "actions/list-repo-organization-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#list-matching-references" + "url": "https://docs.github.com/rest/actions/variables#list-repository-organization-variables" }, "parameters": [ { @@ -29190,17 +31277,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/variables-per-page" }, { "$ref": "#/components/parameters/page" @@ -29212,14 +31289,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/git-ref" + "type": "object", + "required": [ + "total_count", + "variables" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-variable" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/git-ref-items" + "$ref": "#/components/examples/actions-variables-paginated" } } } @@ -29234,25 +31323,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "refs" + "category": "actions", + "subcategory": "variables" } } }, - "/repos/{owner}/{repo}/git/ref/{ref}": { + "/repos/{owner}/{repo}/actions/permissions": { "get": { - "summary": "Get a reference", - "description": "Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned.\n\n**Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".", + "summary": "Get GitHub Actions permissions for a repository", + "description": "Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/get-github-actions-permissions-repository", "tags": [ - "git" + "actions" ], - "operationId": "git/get-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#get-a-reference" + "url": "https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-a-repository" }, "parameters": [ { @@ -29260,16 +31346,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true } ], "responses": { @@ -29278,42 +31354,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-ref" + "$ref": "#/components/schemas/actions-repository-permissions" }, "examples": { "default": { - "$ref": "#/components/examples/git-ref" + "$ref": "#/components/examples/actions-repository-permissions" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "refs" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } - } - }, - "/repos/{owner}/{repo}/git/refs": { - "post": { - "summary": "Create a reference", - "description": "Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches.", + }, + "put": { + "summary": "Set GitHub Actions permissions for a repository", + "description": "Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/set-github-actions-permissions-repository", "tags": [ - "git" + "actions" ], - "operationId": "git/create-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#create-a-reference" + "url": "https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-a-repository" }, "parameters": [ { @@ -29323,87 +31391,107 @@ "$ref": "#/components/parameters/repo" } ], + "responses": { + "204": { + "description": "Response" + } + }, "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "ref": { - "type": "string", - "description": "The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected." + "enabled": { + "$ref": "#/components/schemas/actions-enabled" }, - "sha": { - "type": "string", - "description": "The SHA1 value for this reference." + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" }, - "key": { - "type": "string", - "example": "\"refs/heads/newbranch\"" + "sha_pinning_required": { + "$ref": "#/components/schemas/sha-pinning-required" } }, "required": [ - "ref", - "sha" + "enabled" ] }, - "example": { - "ref": "refs/heads/featureA", - "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd" + "examples": { + "default": { + "value": { + "enabled": true, + "allowed_actions": "selected", + "sha_pinning_required": true + } + } } } } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" + } + } + }, + "/repos/{owner}/{repo}/actions/permissions/access": { + "get": { + "summary": "Get the level of access for workflows outside of the repository", + "description": "Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository.\nThis endpoint only applies to private repositories.\nFor more information, see \"[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/get-workflow-access-to-repository", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#get-the-level-of-access-for-workflows-outside-of-the-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-ref" + "$ref": "#/components/schemas/actions-workflow-access-to-repository" }, "examples": { "default": { - "$ref": "#/components/examples/git-ref" + "$ref": "#/components/examples/actions-workflow-access-to-repository" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA", - "schema": { - "type": "string" - } - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "refs" + "previews": [], + "category": "actions", + "subcategory": "permissions" } - } - }, - "/repos/{owner}/{repo}/git/refs/{ref}": { - "patch": { - "summary": "Update a reference", - "description": "", + }, + "put": { + "summary": "Set the level of access for workflows outside of the repository", + "description": "Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository.\nThis endpoint only applies to private repositories.\nFor more information, see \"[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)\".\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "git" + "actions" ], - "operationId": "git/update-ref", + "operationId": "actions/set-workflow-access-to-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#update-a-reference" + "url": "https://docs.github.com/rest/actions/permissions#set-the-level-of-access-for-workflows-outside-of-the-repository" }, "parameters": [ { @@ -29411,85 +31499,96 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "sha": { - "type": "string", - "description": "The SHA1 value to set this reference to" - }, - "force": { - "type": "boolean", - "description": "Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work.", - "default": false - } - }, - "required": [ - "sha" - ] + "$ref": "#/components/schemas/actions-workflow-access-to-repository" }, - "example": { - "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd", - "force": true + "examples": { + "default": { + "$ref": "#/components/examples/actions-workflow-access-to-repository" + } } } } }, + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "permissions" + } + } + }, + "/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention": { + "get": { + "summary": "Get artifact and log retention settings for a repository", + "description": "Gets artifact and log retention settings for a repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/get-artifact-and-log-retention-settings-repository", + "tags": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#get-artifact-and-log-retention-settings-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-ref" + "$ref": "#/components/schemas/actions-artifact-and-log-retention-response" }, "examples": { "default": { - "$ref": "#/components/examples/git-ref" + "value": { + "days": 90, + "maximum_allowed_days": 365 + } } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "refs" + "category": "actions", + "subcategory": "permissions" } }, - "delete": { - "summary": "Delete a reference", - "description": "", + "put": { + "summary": "Set artifact and log retention settings for a repository", + "description": "Sets artifact and log retention settings for a repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/set-artifact-and-log-retention-settings-repository", "tags": [ - "git" + "actions" ], - "operationId": "git/delete-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#delete-a-reference" + "url": "https://docs.github.com/rest/actions/permissions#set-artifact-and-log-retention-settings-for-a-repository" }, "parameters": [ { @@ -29497,48 +31596,55 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "ref", - "description": "ref parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true } ], "responses": { "204": { - "description": "Response" + "description": "Empty response for successful settings update" + }, + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" } }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-artifact-and-log-retention" + }, + "examples": { + "default": { + "summary": "Set retention days", + "value": { + "days": 90 + } + } + } + } + } + }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "refs" + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/git/tags": { - "post": { - "summary": "Create a tag object", - "description": "Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval": { + "get": { + "summary": "Get fork PR contributor approval permissions for a repository", + "description": "Gets the fork PR contributor approval policy for a repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/get-fork-pr-contributor-approval-permissions-repository", "tags": [ - "git" + "actions" ], - "operationId": "git/create-tag", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#create-a-tag-object" + "url": "https://docs.github.com/rest/actions/permissions#get-fork-pr-contributor-approval-permissions-for-a-repository" }, "parameters": [ { @@ -29548,128 +31654,98 @@ "$ref": "#/components/parameters/repo" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag": { - "type": "string", - "description": "The tag's name. This is typically a version (e.g., \"v0.0.1\")." - }, - "message": { - "type": "string", - "description": "The tag message." - }, - "object": { - "type": "string", - "description": "The SHA of the git object this is tagging." - }, - "type": { - "type": "string", - "description": "The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`.", - "enum": [ - "commit", - "tree", - "blob" - ] - }, - "tagger": { - "type": "object", - "description": "An object with information about the individual creating the tag.", - "properties": { - "name": { - "type": "string", - "description": "The name of the author of the tag" - }, - "email": { - "type": "string", - "description": "The email of the author of the tag" - }, - "date": { - "type": "string", - "format": "date-time", - "description": "When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." - } - }, - "required": [ - "name", - "email" - ] - } - }, - "required": [ - "tag", - "message", - "object", - "type" - ] - }, - "example": { - "tag": "v0.0.1", - "message": "initial version", - "object": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c", - "type": "commit", - "tagger": { - "name": "Monalisa Octocat", - "email": "octocat@github.com", - "date": "2011-06-17T14:53:35-07:00" - } - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-tag" + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" }, "examples": { "default": { - "$ref": "#/components/examples/git-tag" + "$ref": "#/components/examples/actions-fork-pr-contributor-approval" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", - "schema": { - "type": "string" - } - } } }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "permissions" + } + }, + "put": { + "summary": "Set fork PR contributor approval permissions for a repository", + "description": "Sets the fork PR contributor approval policy for a repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/set-fork-pr-contributor-approval-permissions-repository", + "tags": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#set-fork-pr-contributor-approval-permissions-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, "422": { "$ref": "#/components/responses/validation_failed" } }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + }, + "examples": { + "default": { + "summary": "Set approval policy to first time contributors", + "value": { + "approval_policy": "first_time_contributors" + } + } + } + } + } + }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "tags" + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + "/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos": { "get": { - "summary": "Get a tag", - "description": "**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "summary": "Get private repo fork PR workflow settings for a repository", + "description": "Gets the settings for whether workflows from fork pull requests can run on a private repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/get-private-repo-fork-pr-workflows-settings-repository", "tags": [ - "git" + "actions" ], - "operationId": "git/get-tag", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#get-a-tag" + "url": "https://docs.github.com/rest/actions/permissions#get-private-repo-fork-pr-workflow-settings-for-a-repository" }, "parameters": [ { @@ -29677,14 +31753,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "tag_sha", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -29693,42 +31761,39 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-tag" + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos" }, "examples": { "default": { - "$ref": "#/components/examples/git-tag" + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "tags" + "category": "actions", + "subcategory": "permissions" } - } - }, - "/repos/{owner}/{repo}/git/trees": { - "post": { - "summary": "Create a tree", - "description": "The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure.\n\nIf you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see \"[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)\" and \"[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference).\"", + }, + "put": { + "summary": "Set private repo fork PR workflow settings for a repository", + "description": "Sets the settings for whether workflows from fork pull requests can run on a private repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/set-private-repo-fork-pr-workflows-settings-repository", "tags": [ - "git" + "actions" ], - "operationId": "git/create-tree", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#create-a-tree" + "url": "https://docs.github.com/rest/actions/permissions#set-private-repo-fork-pr-workflow-settings-for-a-repository" }, "parameters": [ { @@ -29739,132 +31804,49 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "tree": { - "type": "array", - "description": "Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure.", - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "The file referenced in the tree." - }, - "mode": { - "type": "string", - "description": "The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink.", - "enum": [ - "100644", - "100755", - "040000", - "160000", - "120000" - ] - }, - "type": { - "type": "string", - "description": "Either `blob`, `tree`, or `commit`.", - "enum": [ - "blob", - "tree", - "commit" - ] - }, - "sha": { - "type": "string", - "description": "The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error.", - "nullable": true - }, - "content": { - "type": "string", - "description": "The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error." - } - } - } - }, - "base_tree": { - "type": "string", - "description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n" - } - }, - "required": [ - "tree" - ] + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos-request" }, - "example": { - "base_tree": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", - "tree": [ - { - "path": "file.rb", - "mode": "100644", - "type": "blob", - "sha": "44b4fc6d56897b048c772eb4087f854f46256132" - } - ] + "examples": { + "default": { + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + } } } } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/git-tree" - }, - "examples": { - "default": { - "$ref": "#/components/examples/git-tree" - } - } - } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7", - "schema": { - "type": "string" - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Empty response for successful settings update" }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "trees" + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { "get": { - "summary": "Get a tree", - "description": "Returns a single tree using the SHA1 value for that tree.\n\nIf `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time.", + "summary": "Get allowed actions and reusable workflows for a repository", + "description": "Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository).\"\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/get-allowed-actions-repository", "tags": [ - "git" + "actions" ], - "operationId": "git/get-tree", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/git#get-a-tree" + "url": "https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-a-repository" }, "parameters": [ { @@ -29872,24 +31854,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "tree_sha", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true - }, - { - "name": "recursive", - "description": "Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `\"true\"`, and `\"false\"`. Omit this parameter to prevent recursively returning objects or subtrees.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { @@ -29898,48 +31862,82 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-tree" + "$ref": "#/components/schemas/selected-actions" }, "examples": { - "default-response": { - "$ref": "#/components/examples/git-tree-default-response" - }, - "response-recursively-retrieving-a-tree": { - "$ref": "#/components/examples/git-tree-response-recursively-retrieving-a-tree" + "default": { + "$ref": "#/components/examples/selected-actions" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { + "enabledForGitHubApps": true, "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" + } + }, + "put": { + "summary": "Set allowed actions and reusable workflows for a repository", + "description": "Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/set-allowed-actions-repository", + "tags": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/selected-actions" + }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/selected-actions" + } + } + } + } + }, + "x-github": { "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "git", - "subcategory": "trees" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/hooks": { + "/repos/{owner}/{repo}/actions/permissions/workflow": { "get": { - "summary": "List repository webhooks", - "description": "", + "summary": "Get default workflow permissions for a repository", + "description": "Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository,\nas well as if GitHub Actions can submit approving pull request reviews.\nFor more information, see \"[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository).\"\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/list-webhooks", + "operationId": "actions/get-github-actions-default-workflow-permissions-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-webhooks" + "url": "https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-a-repository" }, "parameters": [ { @@ -29947,12 +31945,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -29961,48 +31953,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hook" - } + "$ref": "#/components/schemas/actions-get-default-workflow-permissions" }, "examples": { "default": { - "$ref": "#/components/examples/hook-items" + "$ref": "#/components/examples/actions-default-workflow-permissions" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "permissions" } }, - "post": { - "summary": "Create a repository webhook", - "description": "Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can\nshare the same `config` as long as those webhooks do not have any `events` that overlap.", + "put": { + "summary": "Set default workflow permissions for a repository", + "description": "Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions\ncan submit approving pull request reviews.\nFor more information, see \"[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/create-webhook", + "operationId": "actions/set-github-actions-default-workflow-permissions-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-a-repository" }, "parameters": [ { @@ -30012,133 +31990,127 @@ "$ref": "#/components/parameters/repo" } ], + "responses": { + "204": { + "description": "Success response" + }, + "409": { + "description": "Conflict response when changing a setting is prevented by the owning organization" + } + }, "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "nullable": true, - "properties": { - "name": { - "type": "string", - "description": "Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`." - }, - "config": { - "type": "object", - "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params).", - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" - }, - "token": { - "type": "string", - "example": "\"abc\"" - }, - "digest": { - "type": "string", - "example": "\"sha256\"" - } - } - }, - "events": { - "type": "array", - "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", - "default": [ - "push" - ], - "items": { - "type": "string" - } - }, - "active": { - "type": "boolean", - "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", - "default": true - } - }, - "additionalProperties": false + "$ref": "#/components/schemas/actions-set-default-workflow-permissions" }, - "example": { - "name": "web", - "active": true, - "events": [ - "push", - "pull_request" - ], - "config": { - "url": "https://example.com/webhook", - "content_type": "json", - "insecure_ssl": "0" + "examples": { + "default": { + "$ref": "#/components/examples/actions-default-workflow-permissions" } } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "permissions" + } + } + }, + "/repos/{owner}/{repo}/actions/runners": { + "get": { + "summary": "List self-hosted runners for a repository", + "description": "Lists all self-hosted runners configured in a repository.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/list-self-hosted-runners-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-a-repository" + }, + "parameters": [ + { + "name": "name", + "description": "The name of a self-hosted runner.", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hook" + "type": "object", + "required": [ + "total_count", + "runners" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "runners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/hook" + "$ref": "#/components/examples/runner-paginated" } } } }, "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678", - "schema": { - "type": "string" - } + "Link": { + "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/hooks/{hook_id}": { + "/repos/{owner}/{repo}/actions/runners/downloads": { "get": { - "summary": "Get a repository webhook", - "description": "Returns a webhook configured in a repository. To get only the webhook `config` properties, see \"[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository).\"", + "summary": "List runner applications for a repository", + "description": "Lists binaries for the runner application that you can download and run.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/get-webhook", + "operationId": "actions/list-runner-applications-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-a-repository" }, "parameters": [ { @@ -30146,9 +32118,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/hook-id" } ], "responses": { @@ -30157,40 +32126,39 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hook" + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-application" + } }, "examples": { "default": { - "$ref": "#/components/examples/hook" + "$ref": "#/components/examples/runner-application-items" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "patch": { - "summary": "Update a repository webhook", - "description": "Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use \"[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository).\"", + } + }, + "/repos/{owner}/{repo}/actions/runners/generate-jitconfig": { + "post": { + "summary": "Create configuration for a just-in-time runner for a repository", + "description": "Generates a configuration that can be passed to the runner application at startup.\n\nThe authenticated user must have admin access to the repository.\n\nOAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/update-webhook", + "operationId": "actions/generate-runner-jitconfig-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-a-repository" }, "parameters": [ { @@ -30198,129 +32166,95 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/hook-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "name", + "runner_group_id", + "labels" + ], "properties": { - "config": { - "type": "object", - "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params).", - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" - }, - "address": { - "type": "string", - "example": "\"bar@example.com\"" - }, - "room": { - "type": "string", - "example": "\"The Serious Room\"" - } - }, - "required": [ - "url" - ] - }, - "events": { - "type": "array", - "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events.", - "default": [ - "push" - ], - "items": { - "type": "string" - } + "name": { + "type": "string", + "description": "The name of the new runner." }, - "add_events": { - "type": "array", - "description": "Determines a list of events to be added to the list of events that the Hook triggers for.", - "items": { - "type": "string" - } + "runner_group_id": { + "type": "integer", + "description": "The ID of the runner group to register the runner to." }, - "remove_events": { + "labels": { "type": "array", - "description": "Determines a list of events to be removed from the list of events that the Hook triggers for.", + "minItems": 1, + "maxItems": 100, "items": { "type": "string" - } + }, + "description": "The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100." }, - "active": { - "type": "boolean", - "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", - "default": true + "work_folder": { + "type": "string", + "description": "The working directory to be used for job execution, relative to the runner install directory.", + "default": "_work" } } }, - "example": { - "active": true, - "add_events": [ - "pull_request" - ] + "examples": { + "default": { + "value": { + "name": "New runner", + "runner_group_id": 1, + "labels": [ + "self-hosted", + "X64", + "macOS", + "no-gpu" + ], + "work_folder": "_work" + } + } } } } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/hook" - }, - "examples": { - "default": { - "$ref": "#/components/examples/hook" - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "201": { + "$ref": "#/components/responses/actions_runner_jitconfig" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "delete": { - "summary": "Delete a repository webhook", - "description": "", + } + }, + "/repos/{owner}/{repo}/actions/runners/registration-token": { + "post": { + "summary": "Create a registration token for a repository", + "description": "Returns a token that you can pass to the `config` script. The token expires after one hour.\n\nFor example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner:\n\n```\n./config.sh --url https://github.com/octo-org --token TOKEN\n```\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/delete-webhook", + "operationId": "actions/create-registration-token-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-a-repository" }, "parameters": [ { @@ -30328,41 +32262,44 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/hook-id" } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/authentication-token" + }, + "examples": { + "default": { + "$ref": "#/components/examples/authentication-token" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/hooks/{hook_id}/config": { - "get": { - "summary": "Get a webhook configuration for a repository", - "description": "Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use \"[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook).\"\n\nAccess tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission.", + "/repos/{owner}/{repo}/actions/runners/remove-token": { + "post": { + "summary": "Create a remove token for a repository", + "description": "Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour.\n\nFor example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization:\n\n```\n./config.sh remove --token TOKEN\n```\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/get-webhook-config-for-repo", + "operationId": "actions/create-remove-token-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-webhook-configuration-for-a-repository" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-a-repository" }, "parameters": [ { @@ -30370,22 +32307,19 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/hook-id" } ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-config" + "$ref": "#/components/schemas/authentication-token" }, "examples": { "default": { - "$ref": "#/components/examples/webhook-config" + "$ref": "#/components/examples/authentication-token-2" } } } @@ -30395,23 +32329,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "patch": { - "summary": "Update a webhook configuration for a repository", - "description": "Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use \"[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook).\"\n\nAccess tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission.", + } + }, + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + "get": { + "summary": "Get a self-hosted runner for a repository", + "description": "Gets a specific self-hosted runner configured in a repository.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/update-webhook-config-for-repo", + "operationId": "actions/get-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-a-webhook-configuration-for-a-repository" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -30421,50 +32354,20 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" - } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-config" + "$ref": "#/components/schemas/runner" }, "examples": { "default": { - "$ref": "#/components/examples/webhook-config" + "$ref": "#/components/examples/runner" } } } @@ -30474,25 +32377,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } - } - }, - "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { - "get": { - "summary": "List deliveries for a repository webhook", - "description": "Returns a list of webhook deliveries for a webhook configured in a repository.", + }, + "delete": { + "summary": "Delete a self-hosted runner from a repository", + "description": "Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/list-webhook-deliveries", + "operationId": "actions/delete-self-hosted-runner-from-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-deliveries-for-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-a-repository" }, "parameters": [ { @@ -30502,63 +32400,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/cursor" + "$ref": "#/components/parameters/runner-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hook-delivery-item" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/hook-delivery-items" - } - } - } - } - }, - "400": { - "$ref": "#/components/responses/bad_request" + "204": { + "description": "Response" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": { "get": { - "summary": "Get a delivery for a repository webhook", - "description": "Returns a delivery for a webhook configured in a repository.", + "summary": "List labels for a self-hosted runner for a repository", + "description": "Lists all labels for a self-hosted runner configured in a repository.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/get-webhook-delivery", + "operationId": "actions/list-labels-for-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-delivery-for-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -30568,57 +32439,34 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/delivery-id" + "$ref": "#/components/parameters/runner-id" } ], "responses": { "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/hook-delivery" - }, - "examples": { - "default": { - "$ref": "#/components/examples/hook-delivery" - } - } - } - } - }, - "400": { - "$ref": "#/components/responses/bad_request" + "$ref": "#/components/responses/actions_runner_labels" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } - } - }, - "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + }, "post": { - "summary": "Redeliver a delivery for a repository webhook", - "description": "Redeliver a webhook delivery for a webhook configured in a repository.", + "summary": "Add custom labels to a self-hosted runner for a repository", + "description": "Adds custom labels to a self-hosted runner configured in a repository.\n\nAuthenticated users must have admin access to the organization to use this endpoint.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/redeliver-webhook-delivery", + "operationId": "actions/add-custom-labels-to-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#redeliver-a-delivery-for-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -30628,45 +32476,71 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/delivery-id" + "$ref": "#/components/parameters/runner-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "labels" + ], + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "description": "The names of the custom labels to add to the runner.", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "default": { + "value": { + "labels": [ + "gpu", + "accelerated" + ] + } + } + } + } + } + }, "responses": { - "202": { - "$ref": "#/components/responses/accepted" + "200": { + "$ref": "#/components/responses/actions_runner_labels" }, - "400": { - "$ref": "#/components/responses/bad_request" + "404": { + "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } - } - }, - "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { - "post": { - "summary": "Ping a repository webhook", - "description": "This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook.", + }, + "put": { + "summary": "Set custom labels for a self-hosted runner for a repository", + "description": "Remove all previous custom labels and set the new custom labels for a specific\nself-hosted runner configured in a repository.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/ping-webhook", + "operationId": "actions/set-custom-labels-for-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#ping-a-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -30676,39 +32550,71 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "labels" + ], + "properties": { + "labels": { + "type": "array", + "minItems": 0, + "maxItems": 100, + "description": "The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels.", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "default": { + "value": { + "labels": [ + "gpu", + "accelerated" + ] + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "$ref": "#/components/responses/actions_runner_labels" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } - } - }, - "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { - "post": { - "summary": "Test the push repository webhook", - "description": "This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated.\n\n**Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test`", + }, + "delete": { + "summary": "Remove all custom labels from a self-hosted runner for a repository", + "description": "Remove all custom labels from a self-hosted runner configured in a\nrepository. Returns the remaining read-only labels from the runner.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/test-push-webhook", + "operationId": "actions/remove-all-custom-labels-from-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#test-the-push-repository-webhook" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -30718,12 +32624,12 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/runner-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "$ref": "#/components/responses/actions_runner_labels_readonly" }, "404": { "$ref": "#/components/responses/not_found" @@ -30732,25 +32638,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "webhooks" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/import": { - "get": { - "summary": "Get an import status", - "description": "View the progress of an import.\n\n**Import status**\n\nThis section includes details about the possible values of the `status` field of the Import Progress response.\n\nAn import that does not have errors will progress through these steps:\n\n* `detecting` - the \"detection\" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL.\n* `importing` - the \"raw\" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import).\n* `mapping` - the \"rewrite\" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information.\n* `pushing` - the \"push\" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is \"Writing objects\".\n* `complete` - the import is complete, and the repository is ready on GitHub.\n\nIf there are problems, you will see one of these in the `status` field:\n\n* `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section.\n* `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=rest-api) for more information.\n* `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section.\n* `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL.\n* `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section.\n\n**The project_choices field**\n\nWhen multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type.\n\n**Git LFS related fields**\n\nThis section includes details about Git LFS related fields that may be present in the Import Progress response.\n\n* `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken.\n* `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step.\n* `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository.\n* `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a \"Get Large Files\" request.", + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": { + "delete": { + "summary": "Remove a custom label from a self-hosted runner for a repository", + "description": "Remove a custom label from a self-hosted runner configured\nin a repository. Returns the remaining labels from the runner.\n\nThis endpoint returns a `404 Not Found` status if the custom label is not\npresent on the runner.\n\nAuthenticated users must have admin access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/get-import-status", + "operationId": "actions/remove-custom-label-from-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#get-an-import-status" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -30758,48 +32661,44 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/runner-id" + }, + { + "$ref": "#/components/parameters/runner-label-name" } ], "responses": { "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/import" - }, - "examples": { - "default": { - "$ref": "#/components/examples/import" - } - } - } - } + "$ref": "#/components/responses/actions_runner_labels" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "put": { - "summary": "Start an import", - "description": "Start a source import to a GitHub repository using GitHub Importer.", + } + }, + "/repos/{owner}/{repo}/actions/runs": { + "get": { + "summary": "List workflow runs for a repository", + "description": "Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.\n\nThis endpoint will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/start-import", + "operationId": "actions/list-workflow-runs-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#start-an-import" + "url": "https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository" }, "parameters": [ { @@ -30807,105 +32706,94 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/actor" + }, + { + "$ref": "#/components/parameters/workflow-run-branch" + }, + { + "$ref": "#/components/parameters/event" + }, + { + "$ref": "#/components/parameters/workflow-run-status" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/created" + }, + { + "$ref": "#/components/parameters/exclude-pull-requests" + }, + { + "$ref": "#/components/parameters/workflow-run-check-suite-id" + }, + { + "$ref": "#/components/parameters/workflow-run-head-sha" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "vcs_url": { - "type": "string", - "description": "The URL of the originating repository." - }, - "vcs": { - "type": "string", - "description": "The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response.", - "enum": [ - "subversion", - "git", - "mercurial", - "tfvc" - ] - }, - "vcs_username": { - "type": "string", - "description": "If authentication is required, the username to provide to `vcs_url`." - }, - "vcs_password": { - "type": "string", - "description": "If authentication is required, the password to provide to `vcs_url`." - }, - "tfvc_project": { - "type": "string", - "description": "For a tfvc import, the name of the project that is being imported." - } - }, - "required": [ - "vcs_url" - ] - }, - "example": { - "vcs": "subversion", - "vcs_url": "http://svn.mycompany.com/svn/myproject", - "vcs_username": "octocat", - "vcs_password": "secret" - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/import" + "type": "object", + "required": [ + "total_count", + "workflow_runs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "workflow_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workflow-run" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/import-2" + "$ref": "#/components/examples/workflow-run-paginated" } } } }, "headers": { - "Location": { - "example": "https://api.github.com/repos/spraints/socm/import", - "schema": { - "type": "string" - } + "Link": { + "$ref": "#/components/headers/link" } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "workflow-runs" } - }, - "patch": { - "summary": "Update an import", - "description": "An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API\nrequest. If no parameters are provided, the import will be restarted.", + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}": { + "get": { + "summary": "Get a workflow run", + "description": "Gets a specific workflow run.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/update-import", + "operationId": "actions/get-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#update-an-import" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run" }, "parameters": [ { @@ -30913,62 +32801,25 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/exclude-pull-requests" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "vcs_username": { - "type": "string", - "description": "The username to provide to the originating repository." - }, - "vcs_password": { - "type": "string", - "description": "The password to provide to the originating repository." - }, - "vcs": { - "type": "string", - "example": "\"git\"" - }, - "tfvc_project": { - "type": "string", - "example": "\"project1\"" - } - }, - "nullable": true - }, - "examples": { - "example-1": { - "summary": "Example 1", - "value": { - "vcs_username": "octocat", - "vcs_password": "secret" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/import" + "$ref": "#/components/schemas/workflow-run" }, "examples": { - "example-1": { - "$ref": "#/components/examples/import-example-1" - }, - "example-2": { - "$ref": "#/components/examples/import-example-2" - }, - "response": { - "$ref": "#/components/examples/import-response" + "default": { + "$ref": "#/components/examples/workflow-run" } } } @@ -30978,23 +32829,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "workflow-runs" } }, "delete": { - "summary": "Cancel an import", - "description": "Stop an import for a repository.", + "summary": "Delete a workflow run", + "description": "Deletes a specific workflow run.\n\nAnyone with write access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/delete-workflow-run", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/cancel-import", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#cancel-an-import" + "url": "https://docs.github.com/rest/actions/workflow-runs#delete-a-workflow-run" }, "parameters": [ { @@ -31002,6 +32850,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" } ], "responses": { @@ -31012,25 +32863,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/import/authors": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { "get": { - "summary": "Get commit authors", - "description": "Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `.\n\nThis endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information.", + "summary": "Get the review history for a workflow run", + "description": "Anyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/get-commit-authors", + "operationId": "actions/get-reviews-for-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#get-commit-authors" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run" }, "parameters": [ { @@ -31040,7 +32888,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/since-user" + "$ref": "#/components/parameters/run-id" } ], "responses": { @@ -31051,43 +32899,37 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/porter-author" + "$ref": "#/components/schemas/environment-approvals" } }, "examples": { "default": { - "$ref": "#/components/examples/porter-author-items" + "$ref": "#/components/examples/environment-approvals-items" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/import/authors/{author_id}": { - "patch": { - "summary": "Map a commit author", - "description": "Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository.", + "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": { + "post": { + "summary": "Approve a workflow run for a fork pull request", + "description": "Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see [\"Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks).\"\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/map-commit-author", + "operationId": "actions/approve-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#map-a-commit-author" + "url": "https://docs.github.com/rest/actions/workflow-runs#approve-a-workflow-run-for-a-fork-pull-request" }, "parameters": [ { @@ -31097,83 +32939,51 @@ "$ref": "#/components/parameters/repo" }, { - "name": "author_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/run-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "The new Git author email." - }, - "name": { - "type": "string", - "description": "The new Git author name." - } - }, - "additionalProperties": false - }, - "example": { - "email": "hubot@github.com", - "name": "Hubot the Robot" - } - } - } - }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/porter-author" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/porter-author" + "value": null } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/import/large_files": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { "get": { - "summary": "Get large files", - "description": "List files larger than 100MB found during the import", + "summary": "List workflow run artifacts", + "description": "Lists artifacts for a workflow run.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/get-large-files", + "operationId": "actions/list-workflow-run-artifacts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#get-large-files" + "url": "https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts" }, "parameters": [ { @@ -31181,6 +32991,18 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/artifact-name" } ], "responses": { @@ -31189,42 +33011,56 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/porter-large-file" + "type": "object", + "required": [ + "total_count", + "artifacts" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/artifact" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/porter-large-file-items" + "$ref": "#/components/examples/artifact-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "artifacts" } } }, - "/repos/{owner}/{repo}/import/lfs": { - "patch": { - "summary": "Update Git LFS preference", - "description": "You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://help.github.com/articles/versioning-large-files/).", + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": { + "get": { + "summary": "Get a workflow run attempt", + "description": "Gets a specific workflow run attempt.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "migrations" + "actions" ], - "operationId": "migrations/set-lfs-preference", + "operationId": "actions/get-workflow-run-attempt", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#update-git-lfs-preference" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run-attempt" }, "parameters": [ { @@ -31232,75 +33068,53 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/attempt-number" + }, + { + "$ref": "#/components/parameters/exclude-pull-requests" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "use_lfs": { - "type": "string", - "description": "Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import).", - "enum": [ - "opt_in", - "opt_out" - ] - } - }, - "required": [ - "use_lfs" - ] - }, - "example": { - "use_lfs": "opt_in" - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/import" + "$ref": "#/components/schemas/workflow-run" }, "examples": { "default": { - "$ref": "#/components/examples/import" + "$ref": "#/components/examples/workflow-run" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "migrations", - "subcategory": "source-imports" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/installation": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { "get": { - "summary": "Get a repository installation for the authenticated app", - "description": "Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "summary": "List jobs for a workflow run attempt", + "description": "Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information\nabout using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "apps" + "actions" ], - "operationId": "apps/get-repo-installation", + "operationId": "actions/list-jobs-for-workflow-run-attempt", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-a-repository-installation-for-the-authenticated-app" + "url": "https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt" }, "parameters": [ { @@ -31308,6 +33122,18 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/attempt-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -31316,18 +33142,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/installation" - }, - "examples": { - "default": { - "$ref": "#/components/examples/installation" - } - } - } - } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" + "type": "object", + "required": [ + "total_count", + "jobs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/job" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/job-paginated" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, "404": { "$ref": "#/components/responses/not_found" @@ -31335,26 +33178,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "apps", - "subcategory": null + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflow-jobs" } } }, - "/repos/{owner}/{repo}/interaction-limits": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": { "get": { - "summary": "Get interaction restrictions for a repository", - "description": "Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response.", + "summary": "Download workflow run attempt logs", + "description": "Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after\n1 minute. Look for `Location:` in the response header to find the URL for the download.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "interactions" + "actions" ], - "operationId": "interactions/get-restrictions-for-repo", + "operationId": "actions/download-workflow-run-attempt-logs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-a-repository" + "url": "https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-attempt-logs" }, "parameters": [ { @@ -31362,30 +33202,22 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/attempt-number" } ], "responses": { - "200": { + "302": { "description": "Response", - "content": { - "application/json": { + "headers": { + "Location": { + "example": "https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D", "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/interaction-limit-response" - }, - { - "type": "object", - "properties": { - }, - "additionalProperties": false - } - ] - }, - "examples": { - "default": { - "$ref": "#/components/examples/interaction-limit-2" - } + "type": "string" } } } @@ -31394,23 +33226,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "interactions", - "subcategory": "repos" + "category": "actions", + "subcategory": "workflow-runs" } - }, - "put": { - "summary": "Set interaction restrictions for a repository", - "description": "Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository.", + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { + "post": { + "summary": "Cancel a workflow run", + "description": "Cancels a workflow run using its `id`.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "interactions" + "actions" ], - "operationId": "interactions/set-restrictions-for-repo", + "operationId": "actions/cancel-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-a-repository" + "url": "https://docs.github.com/rest/actions/workflow-runs#cancel-a-workflow-run" }, "parameters": [ { @@ -31418,57 +33249,50 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/interaction-limit" - } - } - } - }, "responses": { - "200": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/interaction-limit-response" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/interaction-limit-2" + "value": null } } } } }, "409": { - "description": "Response" + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "interactions", - "subcategory": "repos" + "category": "actions", + "subcategory": "workflow-runs" } - }, - "delete": { - "summary": "Remove interaction restrictions for a repository", - "description": "Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository.", + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": { + "post": { + "summary": "Review custom deployment protection rules for a workflow run", + "description": "Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see \"[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment).\"\n\n> [!NOTE]\n> GitHub Apps can only review their own custom deployment protection rules. To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run).\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "interactions" + "actions" ], - "operationId": "interactions/remove-restrictions-for-repo", + "operationId": "actions/review-custom-gates-for-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-a-repository" + "url": "https://docs.github.com/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run" }, "parameters": [ { @@ -31476,38 +33300,113 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/review-custom-gates-comment-required" + }, + { + "$ref": "#/components/schemas/review-custom-gates-state-required" + } + ] + }, + "examples": { + "default": { + "value": { + "environment_name": "prod-eus", + "state": "approved", + "comment": "All health checks passed." + } + } + } + } + } + }, "responses": { "204": { "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + } + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": { + "post": { + "summary": "Force cancel a workflow run", + "description": "Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job.\nYou should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run).\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/force-cancel-workflow-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflow-runs#force-cancel-a-workflow-run" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + } + ], + "responses": { + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } }, "409": { - "description": "Response" + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "interactions", - "subcategory": "repos" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/invitations": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { "get": { - "summary": "List repository invitations", - "description": "When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations.", + "summary": "List jobs for a workflow run", + "description": "Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information\nabout using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/list-invitations", + "operationId": "actions/list-jobs-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-invitations" + "url": "https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run" }, "parameters": [ { @@ -31516,6 +33415,23 @@ { "$ref": "#/components/parameters/repo" }, + { + "$ref": "#/components/parameters/run-id" + }, + { + "name": "filter", + "description": "Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "latest", + "all" + ], + "default": "latest" + } + }, { "$ref": "#/components/parameters/per-page" }, @@ -31529,14 +33445,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository-invitation" + "type": "object", + "required": [ + "total_count", + "jobs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/job" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/repository-invitation-items" + "$ref": "#/components/examples/job-paginated" } } } @@ -31551,25 +33479,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "invitations" + "category": "actions", + "subcategory": "workflow-jobs" } } }, - "/repos/{owner}/{repo}/invitations/{invitation_id}": { - "patch": { - "summary": "Update a repository invitation", - "description": "", + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + "get": { + "summary": "Download workflow run logs", + "description": "Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for\n`Location:` in the response header to find the URL for the download.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/update-invitation", + "operationId": "actions/download-workflow-run-logs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-a-repository-invitation" + "url": "https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-logs" }, "parameters": [ { @@ -31579,43 +33504,17 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/invitation-id" + "$ref": "#/components/parameters/run-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permissions": { - "type": "string", - "description": "The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`.", - "enum": [ - "read", - "write", - "maintain", - "triage", - "admin" - ] - } - } - } - } - } - }, "responses": { - "200": { + "302": { "description": "Response", - "content": { - "application/json": { + "headers": { + "Location": { + "example": "https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D", "schema": { - "$ref": "#/components/schemas/repository-invitation" - }, - "examples": { - "default": { - "$ref": "#/components/examples/repository-invitation" - } + "type": "string" } } } @@ -31624,23 +33523,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "invitations" + "category": "actions", + "subcategory": "workflow-runs" } }, "delete": { - "summary": "Delete a repository invitation", - "description": "", + "summary": "Delete workflow run logs", + "description": "Deletes all logs for a workflow run.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "actions" ], - "operationId": "repos/delete-invitation", + "operationId": "actions/delete-workflow-run-logs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-repository-invitation" + "url": "https://docs.github.com/rest/actions/workflow-runs#delete-workflow-run-logs" }, "parameters": [ { @@ -31650,36 +33546,39 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/invitation-id" + "$ref": "#/components/parameters/run-id" } ], "responses": { "204": { "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "invitations" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/issues": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { "get": { - "summary": "List repository issues", - "description": "List issues in a repository.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "summary": "Get pending deployments for a workflow run", + "description": "Get all deployment environments for a workflow run that are waiting for protection rules to pass.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/list-for-repo", + "operationId": "actions/get-pending-deployments-for-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-repository-issues" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-pending-deployments-for-a-workflow-run" }, "parameters": [ { @@ -31689,85 +33588,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "milestone", - "description": "If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "state", - "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "open", - "closed", - "all" - ], - "default": "open" - } - }, - { - "name": "assignee", - "description": "Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "creator", - "description": "The user that created the issue.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "mentioned", - "description": "A user that's mentioned in the issue.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/labels" - }, - { - "name": "sort", - "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "comments" - ], - "default": "created" - } - }, - { - "$ref": "#/components/parameters/direction" - }, - { - "$ref": "#/components/parameters/since" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/run-id" } ], "responses": { @@ -31778,56 +33599,35 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/issue-simple" + "$ref": "#/components/schemas/pending-deployment" } }, "examples": { "default": { - "$ref": "#/components/examples/issue-simple-items" + "$ref": "#/components/examples/pending-deployment-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "issues", - "subcategory": null + "category": "actions", + "subcategory": "workflow-runs" } }, "post": { - "summary": "Create an issue", - "description": "Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://help.github.com/articles/disabling-issues/), the API returns a `410 Gone` status.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "summary": "Review pending deployments for a workflow run", + "description": "Approve or reject pending deployments that are waiting on approval by a required reviewer.\n\nRequired reviewers with read access to the repository contents and deployments can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/create", + "operationId": "actions/review-pending-deployments-for-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#create-an-issue" + "url": "https://docs.github.com/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run" }, "parameters": [ { @@ -31835,165 +33635,104 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "title": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "integer" - } + "environment_ids": { + "type": "array", + "description": "The list of environment ids to approve or reject", + "example": [ + 161171787, + 161171795 ], - "description": "The title of the issue." - }, - "body": { - "type": "string", - "description": "The contents of the issue." + "items": { + "type": "integer", + "example": 161171787 + } }, - "assignee": { + "state": { "type": "string", - "description": "Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_", - "nullable": true - }, - "milestone": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "integer", - "description": "The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._" - } + "description": "Whether to approve or reject deployment to the specified environments.", + "enum": [ + "approved", + "rejected" ], - "nullable": true - }, - "labels": { - "type": "array", - "description": "Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "color": { - "type": "string", - "nullable": true - } - } - } - ] - } + "example": "approved" }, - "assignees": { - "type": "array", - "description": "Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._", - "items": { - "type": "string" - } + "comment": { + "type": "string", + "description": "A comment to accompany the deployment review", + "example": "Ship it!" } }, "required": [ - "title" + "environment_ids", + "state", + "comment" ] }, - "example": { - "title": "Found a bug", - "body": "I'm having a problem with this.", - "assignees": [ - "octocat" - ], - "milestone": 1, - "labels": [ - "bug" - ] + "examples": { + "default": { + "value": { + "environment_ids": [ + 161171787 + ], + "state": "approved", + "comment": "Ship it!" + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "type": "array", + "items": { + "$ref": "#/components/schemas/deployment" + } }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/deployment-items" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347", - "schema": { - "type": "string" - } - } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": null + "enabledForGitHubApps": false, + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/issues/comments": { - "get": { - "summary": "List issue comments for a repository", - "description": "By default, Issue Comments are ordered by ascending ID.", + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + "post": { + "summary": "Re-run a workflow", + "description": "Re-runs your workflow run using its `id`.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/list-comments-for-repo", + "operationId": "actions/re-run-workflow", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-issue-comments-for-a-repository" + "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-a-workflow" }, "parameters": [ { @@ -32003,88 +33742,139 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/sort" - }, - { - "name": "direction", - "description": "Either `asc` or `desc`. Ignored without the `sort` parameter.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] + "$ref": "#/components/parameters/run-id" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "nullable": true, + "properties": { + "enable_debug_logging": { + "type": "boolean", + "default": false, + "description": "Whether to enable debug logging for the re-run." + } + } + }, + "examples": { + "default": { + "value": null + } + } } - }, + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflow-runs" + } + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": { + "post": { + "summary": "Re-run failed jobs from a workflow run", + "description": "Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/re-run-workflow-failed-jobs", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-failed-jobs-from-a-workflow-run" + }, + "parameters": [ { - "$ref": "#/components/parameters/since" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/run-id" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "nullable": true, + "properties": { + "enable_debug_logging": { + "type": "boolean", + "default": false, + "description": "Whether to enable debug logging for the re-run." + } + } + }, + "examples": { + "default": { + "value": null + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-comment" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/issue-comment-items" + "value": null } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "issues", - "subcategory": "comments" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { "get": { - "summary": "Get an issue comment", - "description": "", + "summary": "Get workflow run usage", + "description": "> [!WARNING] \n> This endpoint is in the process of closing down. Refer to \"[Actions Get workflow usage and Get workflow run usage endpoints closing down](https://github.blog/changelog/2025-02-02-actions-get-workflow-usage-and-get-workflow-run-usage-endpoints-closing-down/)\" for more information.\n\nGets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/get-comment", + "operationId": "actions/get-workflow-run-usage", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#get-an-issue-comment" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-workflow-run-usage" }, "parameters": [ { @@ -32094,7 +33884,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/run-id" } ], "responses": { @@ -32103,44 +33893,36 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-comment" + "$ref": "#/components/schemas/workflow-run-usage" }, "examples": { "default": { - "$ref": "#/components/examples/issue-comment" + "$ref": "#/components/examples/workflow-run-usage" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "issues", - "subcategory": "comments" + "enabledForGitHubApps": false, + "category": "actions", + "subcategory": "workflow-runs" } - }, - "patch": { - "summary": "Update an issue comment", - "description": "", + } + }, + "/repos/{owner}/{repo}/actions/secrets": { + "get": { + "summary": "List repository secrets", + "description": "Lists all secrets available in a repository without revealing their encrypted\nvalues.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/update-comment", + "operationId": "actions/list-repo-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#update-an-issue-comment" + "url": "https://docs.github.com/rest/actions/secrets#list-repository-secrets" }, "parameters": [ { @@ -32150,70 +33932,68 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The contents of the comment." - } - }, - "required": [ - "body" - ] - }, - "example": { - "body": "Me too" - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-comment" + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-secret" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/issue-comment" + "$ref": "#/components/examples/actions-secret-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "comments" + "category": "actions", + "subcategory": "secrets" } - }, - "delete": { - "summary": "Delete an issue comment", - "description": "", + } + }, + "/repos/{owner}/{repo}/actions/secrets/public-key": { + "get": { + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to\nencrypt a secret before you can create or update secrets.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/delete-comment", + "operationId": "actions/get-repo-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#delete-an-issue-comment" + "url": "https://docs.github.com/rest/actions/secrets#get-a-repository-public-key" }, "parameters": [ { @@ -32221,38 +34001,44 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-public-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-public-key" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "comments" + "category": "actions", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { "get": { - "summary": "List reactions for an issue comment", - "description": "List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments).", + "summary": "Get a repository secret", + "description": "Gets a single repository secret without revealing its encrypted value.\n\nThe authenticated user must have collaborator access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "reactions" + "actions" ], - "operationId": "reactions/list-for-issue-comment", + "operationId": "actions/get-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#list-reactions-for-an-issue-comment" + "url": "https://docs.github.com/rest/actions/secrets#get-a-repository-secret" }, "parameters": [ { @@ -32262,32 +34048,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" - }, - { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue comment.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -32296,55 +34057,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "$ref": "#/components/schemas/actions-secret" }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/actions-secret" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "actions", + "subcategory": "secrets" } }, - "post": { - "summary": "Create reaction for an issue comment", - "description": "Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with an HTTP `200` status means that you already added the reaction type to this issue comment.", + "put": { + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "reactions" + "actions" ], - "operationId": "reactions/create-for-issue-comment", + "operationId": "actions/create-or-update-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#create-reaction-for-an-issue-comment" + "url": "https://docs.github.com/rest/actions/secrets#create-or-update-a-repository-secret" }, "parameters": [ { @@ -32354,104 +34094,79 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "content": { + "encrypted_value": { "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue comment.", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/actions/secrets#get-a-repository-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." } }, "required": [ - "content" + "encrypted_value", + "key_id" ] }, - "example": { - "content": "heart" + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } } } } }, "responses": { - "200": { - "description": "Reaction exists", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } - }, "201": { - "description": "Reaction created", + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "value": null } } } } }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "actions", + "subcategory": "secrets" } - } - }, - "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + }, "delete": { - "summary": "Delete an issue comment reaction", - "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`.\n\nDelete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments).", + "summary": "Delete a repository secret", + "description": "Deletes a secret in a repository using the secret name.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "reactions" + "actions" ], - "operationId": "reactions/delete-for-issue-comment", + "operationId": "actions/delete-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#delete-an-issue-comment-reaction" + "url": "https://docs.github.com/rest/actions/secrets#delete-a-repository-secret" }, "parameters": [ { @@ -32461,10 +34176,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" - }, - { - "$ref": "#/components/parameters/reaction-id" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -32475,29 +34187,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "actions", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/issues/events": { + "/repos/{owner}/{repo}/actions/variables": { "get": { - "summary": "List issue events for a repository", - "description": "", + "summary": "List repository variables", + "description": "Lists all repository variables.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/list-events-for-repo", + "operationId": "actions/list-repo-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-issue-events-for-a-repository" + "url": "https://docs.github.com/rest/actions/variables#list-repository-variables" }, "parameters": [ { @@ -32507,7 +34212,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/variables-per-page" }, { "$ref": "#/components/parameters/page" @@ -32519,14 +34224,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-event" + "type": "object", + "required": [ + "total_count", + "variables" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-variable" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/issue-event-items" + "$ref": "#/components/examples/actions-variables-paginated" } } } @@ -32536,37 +34253,25 @@ "$ref": "#/components/headers/link" } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "starfox", - "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" - } - ], - "category": "issues", - "subcategory": "events" + "category": "actions", + "subcategory": "variables" } - } - }, - "/repos/{owner}/{repo}/issues/events/{event_id}": { - "get": { - "summary": "Get an issue event", - "description": "", + }, + "post": { + "summary": "Create a repository variable", + "description": "Creates a repository variable that you can reference in a GitHub Actions workflow.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/get-event", + "operationId": "actions/create-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#get-an-issue-event" + "url": "https://docs.github.com/rest/actions/variables#create-a-repository-variable" }, "parameters": [ { @@ -32574,68 +34279,76 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "event_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the variable." + }, + "value": { + "type": "string", + "description": "The value of the variable." + } + }, + "required": [ + "name", + "value" + ] + }, + "examples": { + "default": { + "value": { + "name": "USERNAME", + "value": "octocat" + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-event" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/issue-event" + "value": null } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "starfox", - "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" - } - ], - "category": "issues", - "subcategory": "events" + "category": "actions", + "subcategory": "variables" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}": { + "/repos/{owner}/{repo}/actions/variables/{name}": { "get": { - "summary": "Get an issue", - "description": "The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was\n[transferred](https://help.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If\nthe issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API\nreturns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read\naccess, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe\nto the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "summary": "Get a repository variable", + "description": "Gets a specific variable in a repository.\n\nThe authenticated user must have collaborator access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/get", + "operationId": "actions/get-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#get-an-issue" + "url": "https://docs.github.com/rest/actions/variables#get-a-repository-variable" }, "parameters": [ { @@ -32645,7 +34358,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/variable-name" } ], "responses": { @@ -32654,53 +34367,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/actions-variable" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/actions-variable" } } } } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "issues", - "subcategory": null + "category": "actions", + "subcategory": "variables" } }, "patch": { - "summary": "Update an issue", - "description": "Issue owners and users with push access can edit an issue.", + "summary": "Update a repository variable", + "description": "Updates a repository variable that you can reference in a GitHub Actions workflow.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/update", + "operationId": "actions/update-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues/#update-an-issue" + "url": "https://docs.github.com/rest/actions/variables#update-a-repository-variable" }, "parameters": [ { @@ -32710,168 +34404,166 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/variable-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "title": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "integer" - } - ], - "description": "The title of the issue.", - "nullable": true - }, - "body": { - "type": "string", - "description": "The contents of the issue.", - "nullable": true - }, - "assignee": { + "name": { "type": "string", - "nullable": true, - "description": "Login for the user that this issue should be assigned to. **This field is deprecated.**" + "description": "The name of the variable." }, - "state": { + "value": { "type": "string", - "description": "State of the issue. Either `open` or `closed`.", - "enum": [ - "open", - "closed" - ] - }, - "milestone": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "integer", - "description": "The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._" - } - ], - "nullable": true - }, - "labels": { - "type": "array", - "description": "Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "color": { - "type": "string", - "nullable": true - } - } - } - ] - } - }, - "assignees": { - "type": "array", - "description": "Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._", - "items": { - "type": "string" - } + "description": "The value of the variable." } } }, - "example": { - "title": "Found a bug", - "body": "I'm having a problem with this.", - "assignees": [ - "octocat" - ], - "milestone": 1, - "state": "open", - "labels": [ - "bug" - ] + "examples": { + "default": { + "value": { + "name": "USERNAME", + "value": "octocat" + } + } } } } }, + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" + } + }, + "delete": { + "summary": "Delete a repository variable", + "description": "Deletes a repository variable using the variable name.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/delete-repo-variable", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/variables#delete-a-repository-variable" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/variable-name" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" + } + } + }, + "/repos/{owner}/{repo}/actions/workflows": { + "get": { + "summary": "List repository workflows", + "description": "Lists the workflows in a repository.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", + "tags": [ + "actions" + ], + "operationId": "actions/list-repo-workflows", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflows#list-repository-workflows" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "type": "object", + "required": [ + "total_count", + "workflows" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "workflows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workflow" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/workflow-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": null + "category": "actions", + "subcategory": "workflows" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { - "post": { - "summary": "Add assignees to an issue", - "description": "Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced.", + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + "get": { + "summary": "Get a workflow", + "description": "Gets a specific workflow. You can replace `workflow_id` with the workflow\nfile name. For example, you could use `main.yaml`.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/add-assignees", + "operationId": "actions/get-workflow", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#add-assignees-to-an-issue" + "url": "https://docs.github.com/rest/actions/workflows#get-a-workflow" }, "parameters": [ { @@ -32881,44 +34573,20 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/workflow-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignees": { - "type": "array", - "description": "Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._", - "items": { - "type": "string" - } - } - } - }, - "example": { - "assignees": [ - "hubot", - "other_user" - ] - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-simple" + "$ref": "#/components/schemas/workflow" }, "examples": { "default": { - "$ref": "#/components/examples/issue-simple" + "$ref": "#/components/examples/workflow" } } } @@ -32928,23 +34596,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "assignees" + "category": "actions", + "subcategory": "workflows" } - }, - "delete": { - "summary": "Remove assignees from an issue", - "description": "Removes one or more assignees from an issue.", + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + "put": { + "summary": "Disable a workflow", + "description": "Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/remove-assignees", + "operationId": "actions/disable-workflow", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#remove-assignees-from-an-issue" + "url": "https://docs.github.com/rest/actions/workflows#disable-a-workflow" }, "parameters": [ { @@ -32954,72 +34621,141 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/workflow-id" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflows" + } + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + "post": { + "summary": "Create a workflow dispatch event", + "description": "You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nYou must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see \"[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch).\"\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "actions/create-workflow-dispatch", + "tags": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflows#create-a-workflow-dispatch-event" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/workflow-id" } ], + "responses": { + "204": { + "description": "Response" + } + }, "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "assignees": { - "type": "array", - "description": "Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._", - "items": { - "type": "string" + "ref": { + "type": "string", + "description": "The git reference for the workflow. The reference can be a branch or tag name." + }, + "inputs": { + "type": "object", + "description": "Input keys and values configured in the workflow file. The maximum number of properties is 25. Any default properties configured in the workflow file will be used when `inputs` are omitted.", + "additionalProperties": true, + "maxProperties": 25 + } + }, + "required": [ + "ref" + ] + }, + "examples": { + "default": { + "value": { + "ref": "topic-branch", + "inputs": { + "name": "Mona the Octocat", + "home": "San Francisco, CA" } } } - }, - "example": { - "assignees": [ - "hubot", - "other_user" - ] } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflows" + } + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + "put": { + "summary": "Enable a workflow", + "description": "Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/enable-workflow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflows#enable-a-workflow" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/workflow-id" + } + ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issue-simple" - }, - "examples": { - "default": { - "$ref": "#/components/examples/issue-simple" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "assignees" + "category": "actions", + "subcategory": "workflows" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { "get": { - "summary": "List issue comments", - "description": "Issue Comments are ordered by ascending ID.", + "summary": "List workflow runs for a workflow", + "description": "List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.\n\nThis endpoint will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/list-comments", + "operationId": "actions/list-workflow-runs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-issue-comments" + "url": "https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow" }, "parameters": [ { @@ -33029,16 +34765,37 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/workflow-id" }, { - "$ref": "#/components/parameters/since" + "$ref": "#/components/parameters/actor" + }, + { + "$ref": "#/components/parameters/workflow-run-branch" + }, + { + "$ref": "#/components/parameters/event" + }, + { + "$ref": "#/components/parameters/workflow-run-status" }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/created" + }, + { + "$ref": "#/components/parameters/exclude-pull-requests" + }, + { + "$ref": "#/components/parameters/workflow-run-check-suite-id" + }, + { + "$ref": "#/components/parameters/workflow-run-head-sha" } ], "responses": { @@ -33047,14 +34804,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-comment" + "type": "object", + "required": [ + "total_count", + "workflow_runs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "workflow_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workflow-run" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/issue-comment-items" + "$ref": "#/components/examples/workflow-run-paginated" } } } @@ -33064,38 +34833,27 @@ "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "issues", - "subcategory": "comments" + "category": "actions", + "subcategory": "workflow-runs" } - }, - "post": { - "summary": "Create an issue comment", - "description": "This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + "get": { + "summary": "Get workflow usage", + "description": "> [!WARNING] \n> This endpoint is in the process of closing down. Refer to \"[Actions Get workflow usage and Get workflow run usage endpoints closing down](https://github.blog/changelog/2025-02-02-actions-get-workflow-usage-and-get-workflow-run-usage-endpoints-closing-down/)\" for more information.\n\nGets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nYou can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "issues" + "actions" ], - "operationId": "issues/create-comment", + "operationId": "actions/get-workflow-usage", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#create-an-issue-comment" + "url": "https://docs.github.com/rest/actions/workflows#get-workflow-usage" }, "parameters": [ { @@ -33105,90 +34863,45 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/workflow-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The contents of the comment." - } - }, - "required": [ - "body" - ] - }, - "example": { - "body": "Me too" - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-comment" + "$ref": "#/components/schemas/workflow-usage" }, "examples": { "default": { - "$ref": "#/components/examples/issue-comment" + "$ref": "#/components/examples/workflow-usage" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1", - "schema": { - "type": "string" - } - } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "comments" + "enabledForGitHubApps": false, + "category": "actions", + "subcategory": "workflows" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/events": { + "/repos/{owner}/{repo}/activity": { "get": { - "summary": "List issue events", - "description": "", + "summary": "List repository activities", + "description": "Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users.\n\nFor more information about viewing repository activity,\nsee \"[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository).\"", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-events", + "operationId": "repos/list-activities", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-issue-events" + "url": "https://docs.github.com/rest/repos/repos#list-repository-activities" }, "parameters": [ { @@ -33198,13 +34911,67 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/direction" }, { "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "name": "ref", + "description": "The Git reference for the activities you want to list.\n\nThe `ref` for a branch can be formatted either as `refs/heads/BRANCH_NAME` or `BRANCH_NAME`, where `BRANCH_NAME` is the name of your branch.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "actor", + "description": "The GitHub username to use to filter by the actor who performed the activity.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "time_period", + "description": "The time period to filter by.\n\nFor example, `day` will filter for activity that occurred in the past 24 hours, and `week` will filter for activity that occurred in the past 7 days (168 hours).", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "day", + "week", + "month", + "quarter", + "year" + ] + } + }, + { + "name": "activity_type", + "description": "The activity type to filter by.\n\nFor example, you can choose to filter by \"force_push\", to see all force pushes to the repository.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "push", + "force_push", + "branch_creation", + "branch_deletion", + "pr_merge", + "merge_queue_merge" + ] + } } ], "responses": { @@ -33215,12 +34982,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/issue-event-for-issue" + "$ref": "#/components/schemas/activity" } }, "examples": { "default": { - "$ref": "#/components/examples/issue-event-for-issue-items" + "$ref": "#/components/examples/activity-items" } } } @@ -33231,36 +34998,29 @@ } } }, - "410": { - "$ref": "#/components/responses/gone" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "starfox", - "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" - } - ], - "category": "issues", - "subcategory": "events" + "category": "repos", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + "/repos/{owner}/{repo}/assignees": { "get": { - "summary": "List labels for an issue", - "description": "", + "summary": "List assignees", + "description": "Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository.", "tags": [ "issues" ], - "operationId": "issues/list-labels-on-issue", + "operationId": "issues/list-assignees", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-labels-for-an-issue" + "url": "https://docs.github.com/rest/issues/assignees#list-assignees" }, "parameters": [ { @@ -33269,9 +35029,6 @@ { "$ref": "#/components/parameters/repo" }, - { - "$ref": "#/components/parameters/issue-number" - }, { "$ref": "#/components/parameters/per-page" }, @@ -33287,12 +35044,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/label" + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/label-items" + "$ref": "#/components/examples/simple-user-items" } } } @@ -33303,30 +35060,29 @@ } } }, - "410": { - "$ref": "#/components/responses/gone" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "issues", - "subcategory": "labels" + "subcategory": "assignees" } - }, - "post": { - "summary": "Add labels to an issue", - "description": "", + } + }, + "/repos/{owner}/{repo}/assignees/{assignee}": { + "get": { + "summary": "Check if a user can be assigned", + "description": "Checks if a user has permission to be assigned to an issue in this repository.\n\nIf the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned.\n\nOtherwise a `404` status code is returned.", "tags": [ "issues" ], - "operationId": "issues/add-labels", + "operationId": "issues/check-user-can-be-assigned", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#add-labels-to-an-issue" + "url": "https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned" }, "parameters": [ { @@ -33336,129 +35092,48 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "labels": { - "type": "array", - "minItems": 1, - "description": "The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key.", - "items": { - "type": "string" - } - } - } - }, - { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - { - "type": "object", - "properties": { - "labels": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - } - }, - { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - { - "type": "string" - } - ] - }, - "example": { - "labels": [ - "bug", - "enhancement" - ] - } + "name": "assignee", + "in": "path", + "required": true, + "schema": { + "type": "string" } } - }, + ], "responses": { - "200": { - "description": "Response", + "204": { + "description": "If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned." + }, + "404": { + "description": "Otherwise a `404` status code is returned.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/label-items" - } + "$ref": "#/components/schemas/basic-error" } } } - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "issues", - "subcategory": "labels" + "subcategory": "assignees" } - }, - "put": { - "summary": "Set labels for an issue", - "description": "Removes any previous labels and sets the new labels for an issue.", + } + }, + "/repos/{owner}/{repo}/attestations": { + "post": { + "summary": "Create an attestation", + "description": "Store an artifact attestation and associate it with a repository.\n\nThe authenticated user must have write permission to the repository and, if using a fine-grained access token, the `attestations:write` permission is required.\n\nArtifact attestations are meant to be created using the [attest action](https://github.com/actions/attest). For more information, see our guide on [using artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds).", "tags": [ - "issues" + "repos" ], - "operationId": "issues/set-labels", + "operationId": "repos/create-attestation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#set-labels-for-an-issue" + "url": "https://docs.github.com/rest/repos/attestations#create-an-attestation" }, "parameters": [ { @@ -33466,102 +35141,76 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "labels": { - "type": "array", - "description": "The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key.", - "items": { - "type": "string" - } - } - } - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { + "type": "object", + "properties": { + "bundle": { "type": "object", "properties": { - "labels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } + "mediaType": { + "type": "string" }, - "required": [ - "name" - ] - } - }, - { - "type": "string" + "verificationMaterial": { + "type": "object", + "properties": {}, + "additionalProperties": true + }, + "dsseEnvelope": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "description": "The attestation's Sigstore Bundle.\nRefer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information." } + }, + "required": [ + "bundle" ] }, - "example": { - "labels": [ - "bug", - "enhancement" - ] + "examples": { + "default": { + "summary": "Example of a request body", + "value": { + "$ref": "#/components/examples/attestation" + } + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the attestation." + } } }, "examples": { "default": { - "$ref": "#/components/examples/label-items" + "value": { + "id": 2 + } } } } } }, - "410": { - "$ref": "#/components/responses/gone" + "403": { + "$ref": "#/components/responses/forbidden" }, "422": { "$ref": "#/components/responses/validation_failed" @@ -33570,23 +35219,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "repos", + "subcategory": "attestations" } - }, - "delete": { - "summary": "Remove all labels from an issue", - "description": "", + } + }, + "/repos/{owner}/{repo}/attestations/{subject_digest}": { + "get": { + "summary": "List attestations", + "description": "List a collection of artifact attestations with a given subject digest that are associated with a repository.\n\nThe authenticated user making the request must have read access to the repository. In addition, when using a fine-grained access token the `attestations:read` permission is required.\n\n**Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds).", "tags": [ - "issues" + "repos" ], - "operationId": "issues/remove-all-labels", + "operationId": "repos/list-attestations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#remove-all-labels-from-an-issue" + "url": "https://docs.github.com/rest/repos/attestations#list-attestations" }, "parameters": [ { @@ -33596,39 +35244,108 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "name": "subject_digest", + "description": "The parameter should be set to the attestation's subject's SHA256 digest, in the form `sha256:HEX_DIGEST`.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + }, + { + "name": "predicate_type", + "description": "Optional filter for fetching attestations with a given predicate type.\nThis option accepts `provenance`, `sbom`, `release`, or freeform text\nfor custom predicate types.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { - "204": { - "description": "Response" - }, - "410": { - "$ref": "#/components/responses/gone" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "attestations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "bundle": { + "type": "object", + "properties": { + "mediaType": { + "type": "string" + }, + "verificationMaterial": { + "type": "object", + "properties": {}, + "additionalProperties": true + }, + "dsseEnvelope": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "description": "The attestation's Sigstore Bundle.\nRefer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information." + }, + "repository_id": { + "type": "integer" + }, + "bundle_url": { + "type": "string" + }, + "initiator": { + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/list-attestations" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "repos", + "subcategory": "attestations" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { - "delete": { - "summary": "Remove a label from an issue", - "description": "Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist.", + "/repos/{owner}/{repo}/autolinks": { + "get": { + "summary": "Get all autolinks of a repository", + "description": "Gets all autolinks that are configured for a repository.\n\nInformation about autolinks are only available to repository administrators.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/remove-label", + "operationId": "repos/list-autolinks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#remove-a-label-from-an-issue" + "url": "https://docs.github.com/rest/repos/autolinks#get-all-autolinks-of-a-repository" }, "parameters": [ { @@ -33636,17 +35353,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -33657,46 +35363,35 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/label" + "$ref": "#/components/schemas/autolink" } }, "examples": { "default": { - "$ref": "#/components/examples/label-items-2" + "$ref": "#/components/examples/autolink-items" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "repos", + "subcategory": "autolinks" } - } - }, - "/repos/{owner}/{repo}/issues/{issue_number}/lock": { - "put": { - "summary": "Lock an issue", - "description": "Users with push access can lock an issue or pull request's conversation.\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + }, + "post": { + "summary": "Create an autolink reference for a repository", + "description": "Users with admin access to the repository can create an autolink.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/lock", + "operationId": "repos/create-autolink", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#lock-an-issue" + "url": "https://docs.github.com/rest/repos/autolinks#create-an-autolink-reference-for-a-repository" }, "parameters": [ { @@ -33704,27 +35399,40 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", - "nullable": true, "properties": { - "lock_reason": { + "key_prefix": { "type": "string", - "description": "The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: \n\\* `off-topic` \n\\* `too heated` \n\\* `resolved` \n\\* `spam`", - "enum": [ - "off-topic", - "too heated", - "resolved", - "spam" - ] + "description": "This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit." + }, + "url_template": { + "type": "string", + "description": "The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`." + }, + "is_alphanumeric": { + "type": "boolean", + "default": true, + "description": "Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters." + } + }, + "required": [ + "key_prefix", + "url_template" + ] + }, + "examples": { + "default": { + "value": { + "key_prefix": "TICKET-", + "url_template": "https://example.com/TICKET?query=", + "is_alphanumeric": true } } } @@ -33732,17 +35440,28 @@ } }, "responses": { - "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "404": { - "$ref": "#/components/responses/not_found" + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/autolink" + }, + "examples": { + "default": { + "$ref": "#/components/examples/autolink" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/autolinks/1", + "schema": { + "type": "string" + } + } + } }, "422": { "$ref": "#/components/responses/validation_failed" @@ -33751,23 +35470,71 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": null + "category": "repos", + "subcategory": "autolinks" + } + } + }, + "/repos/{owner}/{repo}/autolinks/{autolink_id}": { + "get": { + "summary": "Get an autolink reference of a repository", + "description": "This returns a single autolink reference by ID that was configured for the given repository.\n\nInformation about autolinks are only available to repository administrators.", + "tags": [ + "repos" + ], + "operationId": "repos/get-autolink", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/autolinks#get-an-autolink-reference-of-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/autolink-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/autolink" + }, + "examples": { + "default": { + "$ref": "#/components/examples/autolink" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "autolinks" } }, "delete": { - "summary": "Unlock an issue", - "description": "Users with push access can unlock an issue's conversation.", + "summary": "Delete an autolink reference from a repository", + "description": "This deletes a single autolink reference by ID that was configured for the given repository.\n\nInformation about autolinks are only available to repository administrators.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/unlock", + "operationId": "repos/delete-autolink", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#unlock-an-issue" + "url": "https://docs.github.com/rest/repos/autolinks#delete-an-autolink-reference-from-a-repository" }, "parameters": [ { @@ -33777,16 +35544,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/autolink-id" } ], "responses": { "204": { "description": "Response" }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" } @@ -33794,25 +35558,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": null + "category": "repos", + "subcategory": "autolinks" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + "/repos/{owner}/{repo}/automated-security-fixes": { "get": { - "summary": "List reactions for an issue", - "description": "List the reactions to an [issue](https://docs.github.com/rest/reference/issues).", + "summary": "Check if Dependabot security updates are enabled for a repository", + "description": "Shows whether Dependabot security updates are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see \"[Configuring Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)\".", "tags": [ - "reactions" + "repos" ], - "operationId": "reactions/list-for-issue", + "operationId": "repos/check-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#list-reactions-for-an-issue" + "url": "https://docs.github.com/rest/repos/repos#check-if-dependabot-security-updates-are-enabled-for-a-repository" }, "parameters": [ { @@ -33820,94 +35581,48 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" - }, - { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Response", + "description": "Response if Dependabot is enabled", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "$ref": "#/components/schemas/check-automated-security-fixes" }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "value": { + "enabled": true, + "paused": false + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "description": "Not Found if Dependabot is not enabled for the repository" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "repos", + "subcategory": "repos" } }, - "post": { - "summary": "Create reaction for an issue", - "description": "Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with an HTTP `200` status means that you already added the reaction type to this issue.", + "put": { + "summary": "Enable Dependabot security updates", + "description": "Enables Dependabot security updates for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Configuring Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)\".", "tags": [ - "reactions" + "repos" ], - "operationId": "reactions/create-for-issue", + "operationId": "repos/enable-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#create-reaction-for-an-issue" + "url": "https://docs.github.com/rest/repos/repos#enable-dependabot-security-updates" }, "parameters": [ { @@ -33915,106 +35630,30 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue.", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - "required": [ - "content" - ] - }, - "example": { - "content": "heart" - } - } - } - }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } - }, - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } - } - }, - "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + }, "delete": { - "summary": "Delete an issue reaction", - "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`.\n\nDelete a reaction to an [issue](https://docs.github.com/rest/reference/issues/).", + "summary": "Disable Dependabot security updates", + "description": "Disables Dependabot security updates for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Configuring Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)\".", "tags": [ - "reactions" + "repos" ], - "operationId": "reactions/delete-for-issue", + "operationId": "repos/disable-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#delete-an-issue-reaction" + "url": "https://docs.github.com/rest/repos/repos#disable-dependabot-security-updates" }, "parameters": [ { @@ -34022,12 +35661,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" - }, - { - "$ref": "#/components/parameters/reaction-id" } ], "responses": { @@ -34038,29 +35671,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "repos", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + "/repos/{owner}/{repo}/branches": { "get": { - "summary": "List timeline events for an issue", + "summary": "List branches", "description": "", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-events-for-timeline", + "operationId": "repos/list-branches", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-timeline-events-for-an-issue" + "url": "https://docs.github.com/rest/branches/branches#list-branches" }, "parameters": [ { @@ -34070,7 +35696,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "name": "protected", + "description": "Setting to `true` returns only branches protected by branch protections or rulesets. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches.", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } }, { "$ref": "#/components/parameters/per-page" @@ -34087,7 +35719,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/timeline-issue-events" + "$ref": "#/components/schemas/short-branch" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/short-branch-with-protection-items" } } } @@ -34100,45 +35737,27 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "mockingbird", - "note": "The API to get issue timeline events is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-23-timeline-preview-api/) for full details. To access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mockingbird-preview\n```" - }, - { - "required": false, - "name": "starfox", - "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" - } - ], - "category": "issues", - "subcategory": "timeline" + "category": "branches", + "subcategory": "branches" } } }, - "/repos/{owner}/{repo}/keys": { + "/repos/{owner}/{repo}/branches/{branch}": { "get": { - "summary": "List deploy keys", + "summary": "Get a branch", "description": "", "tags": [ "repos" ], - "operationId": "repos/list-deploy-keys", + "operationId": "repos/get-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-deploy-keys" + "url": "https://docs.github.com/rest/branches/branches#get-a-branch" }, "parameters": [ { @@ -34148,10 +35767,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -34160,45 +35776,42 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/deploy-key" - } + "$ref": "#/components/schemas/branch-with-protection" }, "examples": { "default": { - "$ref": "#/components/examples/deploy-key-items" + "$ref": "#/components/examples/branch-get" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "keys" + "category": "branches", + "subcategory": "branches" } - }, - "post": { - "summary": "Create a deploy key", - "description": "You can create a read-only deploy key.", + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection": { + "get": { + "summary": "Get branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ "repos" ], - "operationId": "repos/create-deploy-key", + "operationId": "repos/get-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-deploy-key" + "url": "https://docs.github.com/rest/branches/branch-protection#get-branch-protection" }, "parameters": [ { @@ -34206,89 +35819,48 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "A name for the key." - }, - "key": { - "type": "string", - "description": "The contents of the key." - }, - "read_only": { - "type": "boolean", - "description": "If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. \n \nDeploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see \"[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)\" and \"[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/).\"" - } - }, - "required": [ - "key" - ] - }, - "example": { - "title": "octocat@octomac", - "key": "ssh-rsa AAA...", - "read_only": true - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deploy-key" + "$ref": "#/components/schemas/branch-protection" }, "examples": { "default": { - "$ref": "#/components/examples/deploy-key" + "$ref": "#/components/examples/branch-protection" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/keys/1", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "keys" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/keys/{key_id}": { - "get": { - "summary": "Get a deploy key", - "description": "", + }, + "put": { + "summary": "Update branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nProtecting a branch requires admin or owner permissions to the repository.\n\n> [!NOTE]\n> Passing new arrays of `users` and `teams` replaces their previous values.\n\n> [!NOTE]\n> The list of users, apps, and teams in total is limited to 100 items.", "tags": [ "repos" ], - "operationId": "repos/get-deploy-key", + "operationId": "repos/update-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-deploy-key" + "url": "https://docs.github.com/rest/branches/branch-protection#update-branch-protection" }, "parameters": [ { @@ -34298,25 +35870,291 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/key-id" + "$ref": "#/components/parameters/branch" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "object", + "description": "Require status checks to pass before merging. Set to `null` to disable.", + "nullable": true, + "properties": { + "strict": { + "type": "boolean", + "description": "Require branches to be up to date before merging." + }, + "contexts": { + "type": "array", + "deprecated": true, + "description": "**Closing down notice**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control.", + "items": { + "type": "string" + } + }, + "checks": { + "type": "array", + "description": "The list of status checks to require in order to merge into this branch.", + "items": { + "type": "object", + "required": [ + "context" + ], + "properties": { + "context": { + "type": "string", + "description": "The name of the required check" + }, + "app_id": { + "type": "integer", + "description": "The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status." + } + } + } + } + }, + "required": [ + "strict", + "contexts" + ] + }, + "enforce_admins": { + "type": "boolean", + "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.", + "nullable": true + }, + "required_pull_request_reviews": { + "type": "object", + "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.", + "nullable": true, + "properties": { + "dismissal_restrictions": { + "type": "object", + "description": "Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s with dismissal access", + "items": { + "type": "string" + } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s with dismissal access", + "items": { + "type": "string" + } + }, + "apps": { + "type": "array", + "description": "The list of app `slug`s with dismissal access", + "items": { + "type": "string" + } + } + } + }, + "dismiss_stale_reviews": { + "type": "boolean", + "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit." + }, + "require_code_owner_reviews": { + "type": "boolean", + "description": "Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them." + }, + "required_approving_review_count": { + "type": "integer", + "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`.", + "default": false + }, + "bypass_pull_request_allowances": { + "type": "object", + "description": "Allow specific users, teams, or apps to bypass pull request requirements.", + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s allowed to bypass pull request requirements.", + "items": { + "type": "string" + } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s allowed to bypass pull request requirements.", + "items": { + "type": "string" + } + }, + "apps": { + "type": "array", + "description": "The list of app `slug`s allowed to bypass pull request requirements.", + "items": { + "type": "string" + } + } + } + } + } + }, + "restrictions": { + "type": "object", + "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.", + "nullable": true, + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s with push access", + "items": { + "type": "string" + } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s with push access", + "items": { + "type": "string" + } + }, + "apps": { + "type": "array", + "description": "The list of app `slug`s with push access", + "items": { + "type": "string" + } + } + }, + "required": [ + "users", + "teams" + ] + }, + "required_linear_history": { + "type": "boolean", + "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation." + }, + "allow_force_pushes": { + "type": "boolean", + "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"", + "nullable": true + }, + "allow_deletions": { + "type": "boolean", + "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation." + }, + "block_creations": { + "type": "boolean", + "description": "If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`." + }, + "required_conversation_resolution": { + "type": "boolean", + "description": "Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`." + }, + "lock_branch": { + "type": "boolean", + "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`.", + "default": false + }, + "allow_fork_syncing": { + "type": "boolean", + "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`.", + "default": false + } + }, + "required": [ + "required_status_checks", + "enforce_admins", + "required_pull_request_reviews", + "restrictions" + ] + }, + "examples": { + "default": { + "value": { + "required_status_checks": { + "strict": true, + "contexts": [ + "continuous-integration/travis-ci" + ] + }, + "enforce_admins": true, + "required_pull_request_reviews": { + "dismissal_restrictions": { + "users": [ + "octocat" + ], + "teams": [ + "justice-league" + ] + }, + "dismiss_stale_reviews": true, + "require_code_owner_reviews": true, + "required_approving_review_count": 2, + "require_last_push_approval": true, + "bypass_pull_request_allowances": { + "users": [ + "octocat" + ], + "teams": [ + "justice-league" + ] + } + }, + "restrictions": { + "users": [ + "octocat" + ], + "teams": [ + "justice-league" + ], + "apps": [ + "super-ci" + ] + }, + "required_linear_history": true, + "allow_force_pushes": true, + "allow_deletions": true, + "block_creations": true, + "required_conversation_resolution": true, + "lock_branch": true, + "allow_fork_syncing": true + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deploy-key" + "$ref": "#/components/schemas/protected-branch" }, "examples": { "default": { - "$ref": "#/components/examples/deploy-key" + "$ref": "#/components/examples/branch-protection-update" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, "404": { "$ref": "#/components/responses/not_found" } @@ -34324,23 +36162,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "keys" + "category": "branches", + "subcategory": "branch-protection" } }, "delete": { - "summary": "Delete a deploy key", - "description": "Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead.", + "summary": "Delete branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ "repos" ], - "operationId": "repos/delete-deploy-key", + "operationId": "repos/delete-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-deploy-key" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-branch-protection" }, "parameters": [ { @@ -34350,36 +36185,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/key-id" + "$ref": "#/components/parameters/branch" } ], "responses": { "204": { "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "keys" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/labels": { + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { "get": { - "summary": "List labels for a repository", - "description": "", + "summary": "Get admin branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-labels-for-repo", + "operationId": "repos/get-admin-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-labels-for-a-repository" + "url": "https://docs.github.com/rest/branches/branch-protection#get-admin-branch-protection" }, "parameters": [ { @@ -34389,10 +36224,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -34401,48 +36233,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" - } + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/label-items" + "$ref": "#/components/examples/protected-branch-admin-enforced-2" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "branches", + "subcategory": "branch-protection" } }, "post": { - "summary": "Create a label", - "description": "", + "summary": "Set admin branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nAdding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/create-label", + "operationId": "repos/set-admin-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#create-a-label" + "url": "https://docs.github.com/rest/branches/branch-protection#set-admin-branch-protection" }, "parameters": [ { @@ -34450,65 +36268,60 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see \"[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet).\"" - }, - "color": { - "type": "string", - "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." - }, - "description": { - "type": "string", - "description": "A short description of the label." - } - }, - "required": [ - "name" - ] - }, - "example": { - "name": "bug", - "description": "Something isn't working", - "color": "f29513" - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/label" + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/label" + "$ref": "#/components/examples/protected-branch-admin-enforced-2" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/labels/bug", - "schema": { - "type": "string" - } - } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branch-protection" + } + }, + "delete": { + "summary": "Delete admin branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoving admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-admin-branch-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/branches/branch-protection#delete-admin-branch-protection" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "422": { - "$ref": "#/components/responses/validation_failed" + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" + } + ], + "responses": { + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" @@ -34517,25 +36330,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/labels/{name}": { + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { "get": { - "summary": "Get a label", - "description": "", + "summary": "Get pull request review protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/get-label", + "operationId": "repos/get-pull-request-review-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#get-a-label" + "url": "https://docs.github.com/rest/branches/branch-protection#get-pull-request-review-protection" }, "parameters": [ { @@ -34545,12 +36355,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -34559,40 +36364,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/label" + "$ref": "#/components/schemas/protected-branch-pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/label" + "$ref": "#/components/examples/protected-branch-pull-request-review" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "branches", + "subcategory": "branch-protection" } }, "patch": { - "summary": "Update a label", - "description": "", + "summary": "Update pull request review protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nUpdating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.\n\n> [!NOTE]\n> Passing new arrays of `users` and `teams` replaces their previous values.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/update-label", + "operationId": "repos/update-pull-request-review-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#update-a-label" + "url": "https://docs.github.com/rest/branches/branch-protection#update-pull-request-review-protection" }, "parameters": [ { @@ -34602,38 +36401,120 @@ "$ref": "#/components/parameters/repo" }, { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/branch" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "new_name": { - "type": "string", - "description": "The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see \"[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet).\"" + "dismissal_restrictions": { + "type": "object", + "description": "Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s with dismissal access", + "items": { + "type": "string" + } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s with dismissal access", + "items": { + "type": "string" + } + }, + "apps": { + "type": "array", + "description": "The list of app `slug`s with dismissal access", + "items": { + "type": "string" + } + } + } }, - "color": { - "type": "string", - "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." + "dismiss_stale_reviews": { + "type": "boolean", + "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit." }, - "description": { - "type": "string", - "description": "A short description of the label." + "require_code_owner_reviews": { + "type": "boolean", + "description": "Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) have reviewed." + }, + "required_approving_review_count": { + "type": "integer", + "description": "Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`", + "default": false + }, + "bypass_pull_request_allowances": { + "type": "object", + "description": "Allow specific users, teams, or apps to bypass pull request requirements.", + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s allowed to bypass pull request requirements.", + "items": { + "type": "string" + } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s allowed to bypass pull request requirements.", + "items": { + "type": "string" + } + }, + "apps": { + "type": "array", + "description": "The list of app `slug`s allowed to bypass pull request requirements.", + "items": { + "type": "string" + } + } + } } } }, - "example": { - "new_name": "bug :bug:", - "description": "Small bug fix required", - "color": "b01f26" + "examples": { + "default": { + "value": { + "dismissal_restrictions": { + "users": [ + "octocat" + ], + "teams": [ + "justice-league" + ], + "apps": [ + "octoapp" + ] + }, + "bypass_pull_request_allowances": { + "users": [ + "octocat" + ], + "teams": [ + "justice-league" + ], + "apps": [ + "octoapp" + ] + }, + "dismiss_stale_reviews": true, + "require_code_owner_reviews": true, + "required_approving_review_count": 2, + "require_last_push_approval": true + } + } } } } @@ -34644,37 +36525,37 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/label" + "$ref": "#/components/schemas/protected-branch-pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/label-2" + "$ref": "#/components/examples/protected-branch-pull-request-review" } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "branches", + "subcategory": "branch-protection" } }, "delete": { - "summary": "Delete a label", - "description": "", + "summary": "Delete pull request review protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/delete-label", + "operationId": "repos/delete-pull-request-review-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#delete-a-label" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-pull-request-review-protection" }, "parameters": [ { @@ -34684,41 +36565,36 @@ "$ref": "#/components/parameters/repo" }, { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/branch" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/languages": { + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { "get": { - "summary": "List repository languages", - "description": "Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language.", + "summary": "Get commit signature protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help.\n\n> [!NOTE]\n> You must enable branch protection to require signed commits.", "tags": [ "repos" ], - "operationId": "repos/list-languages", + "operationId": "repos/get-commit-signature-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-languages" + "url": "https://docs.github.com/rest/branches/branch-protection#get-commit-signature-protection" }, "parameters": [ { @@ -34726,6 +36602,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -34734,39 +36613,37 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/language" + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/language" + "$ref": "#/components/examples/protected-branch-admin-enforced" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/license": { - "get": { - "summary": "Get the license for a repository", - "description": "This method returns the contents of the repository's license file, if one is detected.\n\nSimilar to [Get repository content](https://docs.github.com/rest/reference/repos#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML.", + }, + "post": { + "summary": "Create commit signature protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.", "tags": [ - "licenses" + "repos" ], - "operationId": "licenses/get-for-repo", + "operationId": "repos/create-commit-signature-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/licenses/#get-the-license-for-a-repository" + "url": "https://docs.github.com/rest/branches/branch-protection#create-commit-signature-protection" }, "parameters": [ { @@ -34774,6 +36651,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -34782,39 +36662,37 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/license-content" + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/license-content" + "$ref": "#/components/examples/protected-branch-admin-enforced" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "licenses", - "subcategory": null + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/merges": { - "post": { - "summary": "Merge a branch", - "description": "", + }, + "delete": { + "summary": "Delete commit signature protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits.", "tags": [ "repos" ], - "operationId": "repos/merge", + "operationId": "repos/delete-commit-signature-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#merge-a-branch" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-commit-signature-protection" }, "parameters": [ { @@ -34822,94 +36700,38 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "base": { - "type": "string", - "description": "The name of the base branch that the head will be merged into." - }, - "head": { - "type": "string", - "description": "The head to merge. This can be a branch name or a commit SHA1." - }, - "commit_message": { - "type": "string", - "description": "Commit message to use for the merge commit. If omitted, a default message will be used." - } - }, - "required": [ - "base", - "head" - ] - }, - "example": { - "base": "master", - "head": "cool_feature", - "commit_message": "Shipped cool_feature!" - } - } - } - }, "responses": { - "201": { - "description": "Successful Response (The resulting merge commit)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/commit" - }, - "examples": { - "default": { - "$ref": "#/components/examples/commit" - } - } - } - } - }, "204": { - "description": "Response when already merged" + "description": "Response" }, "404": { - "description": "Not Found when the base or head does not exist" - }, - "409": { - "description": "Conflict when there is a merge conflict" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "merging" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/milestones": { + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { "get": { - "summary": "List milestones", - "description": "", + "summary": "Get status checks protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-milestones", + "operationId": "repos/get-status-checks-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-milestones" + "url": "https://docs.github.com/rest/branches/branch-protection#get-status-checks-protection" }, "parameters": [ { @@ -34919,53 +36741,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "state", - "description": "The state of the milestone. Either `open`, `closed`, or `all`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "open", - "closed", - "all" - ], - "default": "open" - } - }, - { - "name": "sort", - "description": "What to sort results by. Either `due_on` or `completeness`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "due_on", - "completeness" - ], - "default": "due_on" - } - }, - { - "name": "direction", - "description": "The direction of the sort. Either `asc` or `desc`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -34974,22 +36750,14 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/milestone" - } + "$ref": "#/components/schemas/status-check-policy" }, "examples": { "default": { - "$ref": "#/components/examples/milestone-items" + "$ref": "#/components/examples/status-check-policy" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { @@ -34999,23 +36767,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "milestones" + "category": "branches", + "subcategory": "branch-protection" } }, - "post": { - "summary": "Create a milestone", - "description": "", + "patch": { + "summary": "Update status check protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nUpdating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/create-milestone", + "operationId": "repos/update-status-check-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#create-a-milestone" + "url": "https://docs.github.com/rest/branches/branch-protection#update-status-check-protection" }, "parameters": [ { @@ -35023,72 +36788,79 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "title": { - "type": "string", - "description": "The title of the milestone." - }, - "state": { - "type": "string", - "description": "The state of the milestone. Either `open` or `closed`.", - "enum": [ - "open", - "closed" - ], - "default": "open" + "strict": { + "type": "boolean", + "description": "Require branches to be up to date before merging." }, - "description": { - "type": "string", - "description": "A description of the milestone." + "contexts": { + "type": "array", + "deprecated": true, + "description": "**Closing down notice**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control.", + "items": { + "type": "string" + } }, - "due_on": { - "type": "string", - "format": "date-time", - "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + "checks": { + "type": "array", + "description": "The list of status checks to require in order to merge into this branch.", + "items": { + "type": "object", + "required": [ + "context" + ], + "properties": { + "context": { + "type": "string", + "description": "The name of the required check" + }, + "app_id": { + "type": "integer", + "description": "The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status." + } + } + } } - }, - "required": [ - "title" - ] + } }, - "example": { - "title": "v1.0", - "state": "open", - "description": "Tracking milestone for version 1.0", - "due_on": "2012-10-09T23:39:01Z" + "examples": { + "default": { + "value": { + "strict": true, + "contexts": [ + "continuous-integration/travis-ci" + ] + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/milestone" + "$ref": "#/components/schemas/status-check-policy" }, "examples": { "default": { - "$ref": "#/components/examples/milestone" + "$ref": "#/components/examples/status-check-policy" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1", - "schema": { - "type": "string" - } - } } }, "404": { @@ -35101,25 +36873,56 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "milestones" + "category": "branches", + "subcategory": "branch-protection" + } + }, + "delete": { + "summary": "Remove status check protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": [ + "repos" + ], + "operationId": "repos/remove-status-check-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/branches/branch-protection#remove-status-check-protection" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/milestones/{milestone_number}": { + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { "get": { - "summary": "Get a milestone", - "description": "", + "summary": "Get all status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/get-milestone", + "operationId": "repos/get-all-status-check-contexts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#get-a-milestone" + "url": "https://docs.github.com/rest/branches/branch-protection#get-all-status-check-contexts" }, "parameters": [ { @@ -35129,7 +36932,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/milestone-number" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -35138,11 +36941,16 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/milestone" + "type": "array", + "items": { + "type": "string" + } }, "examples": { "default": { - "$ref": "#/components/examples/milestone" + "value": [ + "continuous-integration/travis-ci" + ] } } } @@ -35155,23 +36963,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "milestones" + "category": "branches", + "subcategory": "branch-protection" } }, - "patch": { - "summary": "Update a milestone", - "description": "", + "post": { + "summary": "Add status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/update-milestone", + "operationId": "repos/add-status-check-contexts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#update-a-milestone" + "url": "https://docs.github.com/rest/branches/branch-protection#add-status-check-contexts" }, "parameters": [ { @@ -35181,44 +36986,54 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/milestone-number" + "$ref": "#/components/parameters/branch" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "The title of the milestone." - }, - "state": { - "type": "string", - "description": "The state of the milestone. Either `open` or `closed`.", - "enum": [ - "open", - "closed" + "oneOf": [ + { + "type": "object", + "properties": { + "contexts": { + "type": "array", + "description": "The name of the status checks", + "items": { + "type": "string" + } + } + }, + "required": [ + "contexts" ], - "default": "open" - }, - "description": { - "type": "string", - "description": "A description of the milestone." + "example": { + "contexts": [ + "contexts" + ] + } }, - "due_on": { - "type": "string", - "format": "date-time", - "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + { + "type": "array", + "description": "The name of the status checks", + "items": { + "type": "string" + } } - } + ] }, - "example": { - "title": "v1.0", - "state": "open", - "description": "Tracking milestone for version 1.0", - "due_on": "2012-10-09T23:39:01Z" + "examples": { + "default": { + "summary": "Example adding status checks to a branch protection rule", + "value": { + "contexts": [ + "continuous-integration/travis-ci", + "continuous-integration/jenkins" + ] + } + } } } } @@ -35229,37 +37044,50 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/milestone" + "type": "array", + "items": { + "type": "string" + } }, "examples": { "default": { - "$ref": "#/components/examples/milestone" + "value": [ + "continuous-integration/travis-ci", + "continuous-integration/jenkins" + ] } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "milestones" + "requestBodyParameterName": "contexts", + "category": "branches", + "subcategory": "branch-protection" } }, - "delete": { - "summary": "Delete a milestone", - "description": "", + "put": { + "summary": "Set status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/delete-milestone", + "operationId": "repos/set-status-check-contexts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#delete-a-milestone" + "url": "https://docs.github.com/rest/branches/branch-protection#set-status-check-contexts" }, "parameters": [ { @@ -35269,12 +37097,80 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/milestone-number" + "$ref": "#/components/parameters/branch" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "contexts": { + "type": "array", + "description": "The name of the status checks", + "items": { + "type": "string" + } + } + }, + "required": [ + "contexts" + ], + "example": { + "contexts": [ + "contexts" + ] + } + }, + { + "type": "array", + "description": "The name of the status checks", + "items": { + "type": "string" + } + } + ] + }, + "examples": { + "default": { + "summary": "Example updating status checks for a branch protection rule", + "value": { + "contexts": [ + "continuous-integration/travis-ci" + ] + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "examples": { + "default": { + "value": [ + "continuous-integration/travis-ci" + ] + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" }, "404": { "$ref": "#/components/responses/not_found" @@ -35283,25 +37179,21 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "milestones" + "requestBodyParameterName": "contexts", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { - "get": { - "summary": "List labels for issues in a milestone", - "description": "", + }, + "delete": { + "summary": "Remove status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-labels-for-milestone", + "operationId": "repos/remove-status-check-contexts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-labels-for-issues-in-a-milestone" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-status-check-contexts" }, "parameters": [ { @@ -35311,15 +37203,56 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/milestone-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "contexts": { + "type": "array", + "description": "The name of the status checks", + "items": { + "type": "string" + } + } + }, + "required": [ + "contexts" + ], + "example": { + "contexts": [ + "contexts" + ] + } + }, + { + "type": "array", + "description": "The name of the status checks", + "items": { + "type": "string" + } + } + ] + }, + "examples": { + "default": { + "summary": "Example removing status checks from a branch protection rule", + "value": { + "contexts": [ + "continuous-integration/jenkins" + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", @@ -35328,45 +37261,46 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/label" + "type": "string" } }, "examples": { "default": { - "$ref": "#/components/examples/label-items" + "value": [ + "continuous-integration/travis-ci" + ] } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "issues", - "subcategory": "labels" + "requestBodyParameterName": "contexts", + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/notifications": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { "get": { - "summary": "List repository notifications for the authenticated user", - "description": "List all notifications for the current user.", + "summary": "Get access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists who has access to this protected branch.\n\n> [!NOTE]\n> Users, apps, and teams `restrictions` are only available for organization-owned repositories.", "tags": [ - "activity" + "repos" ], - "operationId": "activity/list-repo-notifications-for-authenticated-user", + "operationId": "repos/get-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user" + "url": "https://docs.github.com/rest/branches/branch-protection#get-access-restrictions" }, "parameters": [ { @@ -35376,22 +37310,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/all" - }, - { - "$ref": "#/components/parameters/participating" - }, - { - "$ref": "#/components/parameters/since" - }, - { - "$ref": "#/components/parameters/before" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -35400,45 +37319,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/thread" - } + "$ref": "#/components/schemas/branch-restriction-policy" }, "examples": { "default": { - "$ref": "#/components/examples/thread-items" + "$ref": "#/components/examples/branch-restriction-policy" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "notifications" + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branch-protection" } }, - "put": { - "summary": "Mark repository notifications as read", - "description": "Marks all notifications in a repository as \"read\" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as \"read.\" To check whether any \"unread\" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`.", + "delete": { + "summary": "Delete access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nDisables the ability to restrict who can push to this branch.", "tags": [ - "activity" + "repos" ], - "operationId": "activity/mark-repo-notifications-as-read", + "operationId": "repos/delete-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#mark-repository-notifications-as-read" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-access-restrictions" }, "parameters": [ { @@ -35446,69 +37357,35 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "last_read_at": { - "type": "string", - "format": "date-time", - "description": "Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp." - } - } - } - } - } - }, "responses": { - "202": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "url": { - "type": "string" - } - } - } - } - } - }, - "205": { - "description": "Reset Content" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "notifications" + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/pages": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { "get": { - "summary": "Get a GitHub Pages site", - "description": "", + "summary": "Get apps with access to the protected branch", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch.", "tags": [ "repos" ], - "operationId": "repos/get-pages", + "operationId": "repos/get-apps-with-access-to-protected-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-github-pages-site" + "url": "https://docs.github.com/rest/branches/branch-protection#get-apps-with-access-to-the-protected-branch" }, "parameters": [ { @@ -35516,6 +37393,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -35524,11 +37404,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page" + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } }, "examples": { "default": { - "$ref": "#/components/examples/page" + "$ref": "#/components/examples/integration-items" } } } @@ -35541,23 +37424,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "pages" + "category": "branches", + "subcategory": "branch-protection" } }, "post": { - "summary": "Create a GitHub Pages site", - "description": "Configures a GitHub Pages site. For more information, see \"[About GitHub Pages](/github/working-with-github-pages/about-github-pages).\"", + "summary": "Add app access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch.", "tags": [ "repos" ], - "operationId": "repos/create-pages-site", + "operationId": "repos/add-app-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-github-pages-site" + "url": "https://docs.github.com/rest/branches/branch-protection#add-app-access-restrictions" }, "parameters": [ { @@ -35565,63 +37445,61 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", - "description": "The source branch and directory used to publish your Pages site.", - "nullable": true, "properties": { - "source": { - "type": "object", - "description": "The source branch and directory used to publish your Pages site.", - "properties": { - "branch": { - "type": "string", - "description": "The repository branch used to publish your site's source files." - }, - "path": { - "type": "string", - "description": "The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/`", - "enum": [ - "/", - "/docs" - ], - "default": "/" - } - }, - "required": [ - "branch" - ] + "apps": { + "type": "array", + "description": "The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items.", + "items": { + "type": "string" + } } }, "required": [ - "source" - ] + "apps" + ], + "example": { + "apps": [ + "my-app" + ] + } }, - "example": { - "source": { - "branch": "main", - "path": "/docs" + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page" + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } }, "examples": { "default": { - "$ref": "#/components/examples/page" + "$ref": "#/components/examples/integration-items" } } } @@ -35629,38 +37507,26 @@ }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "switcheroo", - "note": "Enabling and disabling Pages in the Pages API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-03-14-enabling-disabling-pages/) preview for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.switcheroo-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "pages" + "requestBodyParameterName": "apps", + "category": "branches", + "subcategory": "branch-protection" } }, "put": { - "summary": "Update information about a GitHub Pages site", - "description": "Updates information for a GitHub Pages site. For more information, see \"[About GitHub Pages](/github/working-with-github-pages/about-github-pages).", + "summary": "Set app access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch.", "tags": [ "repos" ], - "operationId": "repos/update-information-about-pages-site", + "operationId": "repos/set-app-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-information-about-a-github-pages-site" + "url": "https://docs.github.com/rest/branches/branch-protection#set-app-access-restrictions" }, "parameters": [ { @@ -35668,127 +37534,88 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "cname": { - "type": "string", - "description": "Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see \"[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/).\"", - "nullable": true - }, - "https_enforced": { - "type": "boolean", - "description": "Specify whether HTTPS should be enforced for the repository." - }, - "public": { - "type": "boolean", - "description": "Configures access controls for the GitHub Pages site. If public is set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site. This includes anyone in your Enterprise if the repository is set to `internal` visibility. This feature is only available to repositories in an organization on an Enterprise plan." - }, - "source": { - "anyOf": [ - { - "type": "string", - "description": "Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `\"gh-pages\"`, `\"master\"`, and `\"master /docs\"`.", - "enum": [ - "gh-pages", - "master", - "master /docs" - ] - }, - { - "type": "object", - "description": "Update the source for the repository. Must include the branch name and path.", - "properties": { - "branch": { - "type": "string", - "description": "The repository branch used to publish your site's source files." - }, - "path": { - "type": "string", - "description": "The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`.", - "enum": [ - "/", - "/docs" - ] - } - }, - "required": [ - "branch", - "path" - ] - } - ] + "apps": { + "type": "array", + "description": "The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items.", + "items": { + "type": "string" + } } }, - "anyOf": [ - { - "required": [ - "source" - ] - }, - { - "required": [ - "cname" - ] - }, - { - "required": [ - "public" - ] - }, - { - "required": [ - "https_enforced" + "required": [ + "apps" + ], + "example": { + "apps": [ + "my-app" + ] + } + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" ] } - ] - }, - "example": { - "cname": "octocatblog.com", - "source": { - "branch": "main", - "path": "/" } } } } }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/integration-items" + } + } + } + } }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "400": { - "$ref": "#/components/responses/bad_request" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "pages" + "requestBodyParameterName": "apps", + "category": "branches", + "subcategory": "branch-protection" } }, "delete": { - "summary": "Delete a GitHub Pages site", - "description": "", + "summary": "Remove app access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch.", "tags": [ "repos" ], - "operationId": "repos/delete-pages-site", + "operationId": "repos/remove-app-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-github-pages-site" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-app-access-restrictions" }, "parameters": [ { @@ -35796,48 +37623,90 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "apps": { + "type": "array", + "description": "The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items.", + "items": { + "type": "string" + } + } + }, + "required": [ + "apps" + ], + "example": { + "apps": [ + "my-app" + ] + } + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/integration-items" + } + } + } + } }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "switcheroo", - "note": "Enabling and disabling Pages in the Pages API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-03-14-enabling-disabling-pages/) preview for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.switcheroo-preview+json\n```" - } - ], - "category": "repos", - "subcategory": "pages" + "requestBodyParameterName": "apps", + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/pages/builds": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { "get": { - "summary": "List GitHub Pages builds", - "description": "", + "summary": "Get teams with access to the protected branch", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the teams who have push access to this branch. The list includes child teams.", "tags": [ "repos" ], - "operationId": "repos/list-pages-builds", + "operationId": "repos/get-teams-with-access-to-protected-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-github-pages-builds" + "url": "https://docs.github.com/rest/branches/branch-protection#get-teams-with-access-to-the-protected-branch" }, "parameters": [ { @@ -35847,10 +37716,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -35861,43 +37727,38 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/page-build" + "$ref": "#/components/schemas/team" } }, "examples": { "default": { - "$ref": "#/components/examples/page-build-items" + "$ref": "#/components/examples/team-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "pages" + "category": "branches", + "subcategory": "branch-protection" } }, "post": { - "summary": "Request a GitHub Pages build", - "description": "You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.\n\nBuild requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.", + "summary": "Add team access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified teams push access for this branch. You can also give push access to child teams.", "tags": [ "repos" ], - "operationId": "repos/request-pages-build", + "operationId": "repos/add-team-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#request-a-github-pages-build" + "url": "https://docs.github.com/rest/branches/branch-protection#add-team-access-restrictions" }, "parameters": [ { @@ -35905,95 +37766,100 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/page-build-status" - }, - "examples": { - "default": { - "$ref": "#/components/examples/page-build-status" + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "teams": { + "type": "array", + "description": "The slug values for teams", + "items": { + "type": "string" + } + } + }, + "required": [ + "teams" + ], + "example": { + "teams": [ + "my-team" + ] + } + }, + { + "type": "array", + "description": "The slug values for teams", + "items": { + "type": "string" + } + } + ] + }, + "examples": { + "default": { + "summary": "Example adding a team in a branch protection rule", + "value": { + "teams": [ + "justice-league" + ] } } } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "pages" - } - } - }, - "/repos/{owner}/{repo}/pages/builds/latest": { - "get": { - "summary": "Get latest Pages build", - "description": "", - "tags": [ - "repos" - ], - "operationId": "repos/get-latest-pages-build", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-latest-pages-build" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page-build" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } }, "examples": { "default": { - "$ref": "#/components/examples/page-build" + "$ref": "#/components/examples/team-items" } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "pages" + "requestBodyParameterName": "teams", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/pages/builds/{build_id}": { - "get": { - "summary": "Get GitHub Pages build", - "description": "", + }, + "put": { + "summary": "Set team access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.", "tags": [ "repos" ], - "operationId": "repos/get-pages-build", + "operationId": "repos/set-team-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-github-pages-build" + "url": "https://docs.github.com/rest/branches/branch-protection#set-team-access-restrictions" }, "parameters": [ { @@ -36003,53 +37869,98 @@ "$ref": "#/components/parameters/repo" }, { - "name": "build_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/branch" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "teams": { + "type": "array", + "description": "The slug values for teams", + "items": { + "type": "string" + } + } + }, + "required": [ + "teams" + ], + "example": { + "teams": [ + "justice-league" + ] + } + }, + { + "type": "array", + "description": "The slug values for teams", + "items": { + "type": "string" + } + } + ] + }, + "examples": { + "default": { + "summary": "Example replacing a team in a branch protection rule", + "value": { + "teams": [ + "justice-league" + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page-build" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } }, "examples": { "default": { - "$ref": "#/components/examples/page-build" + "$ref": "#/components/examples/team-items" } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "pages" + "requestBodyParameterName": "teams", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/pages/health": { - "get": { - "summary": "Get a DNS health check for GitHub Pages", - "description": "Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages.\n\nThe first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response.\n\nUsers must have admin or owner permissions. GitHub Apps must have the `pages:write` and `administration:write` permission to use this endpoint.", + }, + "delete": { + "summary": "Remove team access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of a team to push to this branch. You can also remove push access for child teams.", "tags": [ "repos" ], - "operationId": "repos/get-pages-health-check", + "operationId": "repos/remove-team-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-dns-health-check-for-github-pages" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-team-access-restrictions" }, "parameters": [ { @@ -36057,63 +37968,101 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/pages-health-check" - }, - "examples": { - "default": { - "$ref": "#/components/examples/pages-health-check" + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "teams": { + "type": "array", + "description": "The slug values for teams", + "items": { + "type": "string" + } + } + }, + "required": [ + "teams" + ], + "example": { + "teams": [ + "my-team" + ] + } + }, + { + "type": "array", + "description": "The slug values for teams", + "items": { + "type": "string" + } + } + ] + }, + "examples": { + "default": { + "summary": "Example removing a team in a branch protection rule", + "value": { + "teams": [ + "octocats" + ] } } } } - }, - "202": { - "description": "Empty response", + } + }, + "responses": { + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-items" + } } } } }, - "400": { - "description": "Custom domains are not available for GitHub Pages" - }, "422": { - "description": "There isn't a CNAME for this page" - }, - "404": { - "$ref": "#/components/responses/not_found" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "pages" + "requestBodyParameterName": "teams", + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/projects": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { "get": { - "summary": "List repository projects", - "description": "Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "summary": "Get users with access to the protected branch", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the people who have push access to this branch.", "tags": [ - "projects" + "repos" ], - "operationId": "projects/list-for-repo", + "operationId": "repos/get-users-with-access-to-protected-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#list-repository-projects" + "url": "https://docs.github.com/rest/branches/branch-protection#get-users-with-access-to-the-protected-branch" }, "parameters": [ { @@ -36123,25 +38072,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "state", - "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "open", - "closed", - "all" - ], - "default": "open" - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -36152,62 +38083,38 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/project" + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/project-items-2" + "$ref": "#/components/examples/simple-user-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "category": "branches", + "subcategory": "branch-protection" } }, "post": { - "summary": "Create a repository project", - "description": "Creates a repository project board. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "summary": "Add user access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified people push access for this branch.\n\n| Type | Description |\n| ------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", "tags": [ - "projects" + "repos" ], - "operationId": "projects/create-for-repo", + "operationId": "repos/add-user-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#create-a-repository-project" + "url": "https://docs.github.com/rest/branches/branch-protection#add-user-access-restrictions" }, "parameters": [ { @@ -36215,92 +38122,89 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the project." - }, - "body": { - "type": "string", - "description": "The description of the project." + "users": { + "type": "array", + "description": "The username for users", + "items": { + "type": "string" + } } }, "required": [ - "name" - ] + "users" + ], + "example": { + "users": [ + "mona" + ] + } }, - "example": { - "name": "Projects Documentation", - "body": "Developer documentation project for the developer site." + "examples": { + "default": { + "summary": "Example adding a user in a branch protection rule", + "value": { + "users": [ + "octocat" + ] + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/project-3" + "$ref": "#/components/examples/simple-user-items" } } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, "422": { - "$ref": "#/components/responses/validation_failed_simple" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "requestBodyParameterName": "users", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/pulls": { - "get": { - "summary": "List pull requests", - "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + }, + "put": { + "summary": "Set user access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.\n\n| Type | Description |\n| ------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", "tags": [ - "pulls" + "repos" ], - "operationId": "pulls/list", + "operationId": "repos/set-user-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-pull-requests" + "url": "https://docs.github.com/rest/branches/branch-protection#set-user-access-restrictions" }, "parameters": [ { @@ -36310,74 +38214,46 @@ "$ref": "#/components/parameters/repo" }, { - "name": "state", - "description": "Either `open`, `closed`, or `all` to filter by state.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "open", - "closed", - "all" - ], - "default": "open" - } - }, - { - "name": "head", - "description": "Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "base", - "description": "Filter pulls by base branch name. Example: `gh-pages`.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "sort", - "description": "What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month).", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "popularity", - "long-running" - ], - "default": "created" - } - }, - { - "name": "direction", - "description": "The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "type": "array", + "description": "The username for users", + "items": { + "type": "string" + } + } + }, + "required": [ + "users" + ], + "example": { + "users": [ + "mona" + ] + } + }, + "examples": { + "default": { + "summary": "Example replacing a user in a branch protection rule", + "value": { + "users": [ + "octocat" + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", @@ -36386,25 +38262,17 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/pull-request-simple" + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-simple-items" + "$ref": "#/components/examples/simple-user-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "422": { "$ref": "#/components/responses/validation_failed" } @@ -36412,23 +38280,21 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "requestBodyParameterName": "users", + "category": "branches", + "subcategory": "branch-protection" } }, - "post": { - "summary": "Create a pull request", - "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.\n\nYou can create a new pull request.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "delete": { + "summary": "Remove user access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of a user to push to this branch.\n\n| Type | Description |\n| ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", "tags": [ - "pulls" + "repos" ], - "operationId": "pulls/create", + "operationId": "repos/remove-user-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#create-a-pull-request" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-user-access-restrictions" }, "parameters": [ { @@ -36436,111 +38302,91 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "title": { - "type": "string", - "description": "The title of the new pull request." - }, - "head": { - "type": "string", - "description": "The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`." - }, - "base": { - "type": "string", - "description": "The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository." - }, - "body": { - "type": "string", - "description": "The contents of the pull request." - }, - "maintainer_can_modify": { - "type": "boolean", - "description": "Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request." - }, - "draft": { - "type": "boolean", - "description": "Indicates whether the pull request is a draft. See \"[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)\" in the GitHub Help documentation to learn more." - }, - "issue": { - "type": "integer", - "example": 1 + "users": { + "type": "array", + "description": "The username for users", + "items": { + "type": "string" + } } }, "required": [ - "head", - "base" - ] + "users" + ], + "example": { + "users": [ + "mona" + ] + } }, - "example": { - "title": "Amazing new feature", - "body": "Please pull these awesome changes in!", - "head": "octocat:new-feature", - "base": "master" + "examples": { + "default": { + "summary": "Example removing a user in a branch protection rule", + "value": { + "users": [ + "octocat" + ] + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request" + "$ref": "#/components/examples/simple-user-items" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", - "schema": { - "type": "string" - } - } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "422": { "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "requestBodyParameterName": "users", + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/pulls/comments": { - "get": { - "summary": "List review comments in a repository", - "description": "Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID.", + "/repos/{owner}/{repo}/branches/{branch}/rename": { + "post": { + "summary": "Rename a branch", + "description": "Renames a branch in a repository.\n\n> [!NOTE]\n> Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see \"[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)\".\n\nThe authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions.\n\nIn order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission.", "tags": [ - "pulls" + "repos" ], - "operationId": "pulls/list-review-comments-for-repo", + "operationId": "repos/rename-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-review-comments-in-a-repository" + "url": "https://docs.github.com/rest/branches/branches#rename-a-branch" }, "parameters": [ { @@ -36550,158 +38396,80 @@ "$ref": "#/components/parameters/repo" }, { - "name": "sort", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "created_at" - ] - } - }, - { - "name": "direction", - "description": "Can be either `asc` or `desc`. Ignored without `sort` parameter.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "$ref": "#/components/parameters/since" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-review-comment" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_name": { + "type": "string", + "description": "The new name of the branch." } }, - "examples": { - "default": { - "$ref": "#/components/examples/pull-request-review-comment-items" + "required": [ + "new_name" + ] + }, + "examples": { + "default": { + "value": { + "new_name": "my_renamed_branch" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "comfort-fade", - "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." - }, - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "pulls", - "subcategory": "comments" - } - } - }, - "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { - "get": { - "summary": "Get a review comment for a pull request", - "description": "Provides details for a review comment.", - "tags": [ - "pulls" - ], - "operationId": "pulls/get-review-comment", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#get-a-review-comment-for-a-pull-request" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" - } - ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-comment" + "$ref": "#/components/schemas/branch-with-protection" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-comment-2" + "$ref": "#/components/examples/branch-with-protection" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "comfort-fade", - "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." - }, - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "pulls", - "subcategory": "comments" + "category": "branches", + "subcategory": "branches" } - }, - "patch": { - "summary": "Update a review comment for a pull request", - "description": "Enables you to edit a review comment.", + } + }, + "/repos/{owner}/{repo}/check-runs": { + "post": { + "summary": "Create a check run", + "description": "Creates a new check run for a specific commit in a repository.\n\nTo create a check run, you must use a GitHub App. OAuth apps and authenticated users are not able to create a check suite.\n\nIn a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs.\n\n> [!NOTE]\n> The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/update-review-comment", + "operationId": "checks/create", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#update-a-review-comment-for-a-pull-request" + "url": "https://docs.github.com/rest/checks/runs#create-a-check-run" }, "parameters": [ { @@ -36709,43 +38477,324 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { + "name": { "type": "string", - "description": "The text of the reply to the review comment." + "description": "The name of the check. For example, \"code-coverage\"." + }, + "head_sha": { + "type": "string", + "description": "The SHA of the commit." + }, + "details_url": { + "type": "string", + "description": "The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used." + }, + "external_id": { + "type": "string", + "description": "A reference for the run on the integrator's system." + }, + "status": { + "type": "string", + "description": "The current status of the check run. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`.", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting", + "requested", + "pending" + ], + "default": "queued" + }, + "started_at": { + "type": "string", + "format": "date-time", + "description": "The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "conclusion": { + "type": "string", + "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this.", + "enum": [ + "action_required", + "cancelled", + "failure", + "neutral", + "success", + "skipped", + "stale", + "timed_out" + ] + }, + "completed_at": { + "type": "string", + "format": "date-time", + "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "output": { + "type": "object", + "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run.", + "properties": { + "title": { + "type": "string", + "description": "The title of the check run." + }, + "summary": { + "type": "string", + "maxLength": 65535, + "description": "The summary of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters." + }, + "text": { + "type": "string", + "maxLength": 65535, + "description": "The details of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters." + }, + "annotations": { + "type": "array", + "description": "Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/checks/runs#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about how you can view annotations on GitHub, see \"[About status checks](https://docs.github.com/articles/about-status-checks#checks)\".", + "maxItems": 50, + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`." + }, + "start_line": { + "type": "integer", + "description": "The start line of the annotation. Line numbers start at 1." + }, + "end_line": { + "type": "integer", + "description": "The end line of the annotation." + }, + "start_column": { + "type": "integer", + "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1." + }, + "end_column": { + "type": "integer", + "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." + }, + "annotation_level": { + "type": "string", + "description": "The level of the annotation.", + "enum": [ + "notice", + "warning", + "failure" + ] + }, + "message": { + "type": "string", + "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB." + }, + "title": { + "type": "string", + "description": "The title that represents the annotation. The maximum size is 255 characters." + }, + "raw_details": { + "type": "string", + "description": "Details about this annotation. The maximum size is 64 KB." + } + }, + "required": [ + "path", + "start_line", + "end_line", + "annotation_level", + "message" + ] + } + }, + "images": { + "type": "array", + "description": "Adds images to the output displayed in the GitHub pull request UI.", + "items": { + "type": "object", + "properties": { + "alt": { + "type": "string", + "description": "The alternative text for the image." + }, + "image_url": { + "type": "string", + "description": "The full URL of the image." + }, + "caption": { + "type": "string", + "description": "A short image description." + } + }, + "required": [ + "alt", + "image_url" + ] + } + } + }, + "required": [ + "title", + "summary" + ] + }, + "actions": { + "type": "array", + "description": "Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions).\"", + "maxItems": 3, + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "maxLength": 20, + "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters." + }, + "description": { + "type": "string", + "maxLength": 40, + "description": "A short explanation of what this action would do. The maximum size is 40 characters." + }, + "identifier": { + "type": "string", + "maxLength": 20, + "description": "A reference for the action on the integrator's system. The maximum size is 20 characters." + } + }, + "required": [ + "label", + "description", + "identifier" + ] + } } }, "required": [ - "body" + "name", + "head_sha" + ], + "discriminator": { + "propertyName": "status" + }, + "oneOf": [ + { + "properties": { + "status": { + "enum": [ + "completed" + ] + } + }, + "required": [ + "status", + "conclusion" + ], + "additionalProperties": true + }, + { + "properties": { + "status": { + "enum": [ + "queued", + "in_progress" + ] + } + }, + "additionalProperties": true + } ] }, - "example": { - "body": "I like this too!" + "examples": { + "example-of-in-progress-conclusion": { + "summary": "Example of an in_progress conclusion", + "value": { + "name": "mighty_readme", + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "status": "in_progress", + "external_id": "42", + "started_at": "2018-05-04T01:14:52Z", + "output": { + "title": "Mighty Readme report", + "summary": "", + "text": "" + } + } + }, + "example-of-completed-conclusion": { + "summary": "Example of a completed conclusion", + "value": { + "name": "mighty_readme", + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "status": "completed", + "started_at": "2017-11-30T19:39:10Z", + "conclusion": "success", + "completed_at": "2017-11-30T19:49:10Z", + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notices.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations": [ + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'banaas'.", + "raw_details": "Do you mean 'bananas' or 'banana'?", + "start_line": 2, + "end_line": 2 + }, + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'aples'", + "raw_details": "Do you mean 'apples' or 'Naples'", + "start_line": 4, + "end_line": 4 + } + ], + "images": [ + { + "alt": "Super bananas", + "image_url": "http://example.com/images/42" + } + ] + }, + "actions": [ + { + "label": "Fix", + "identifier": "fix_errors", + "description": "Allow us to fix these errors for you" + } + ] + } + } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-comment" + "$ref": "#/components/schemas/check-run" }, "examples": { - "default": { - "$ref": "#/components/examples/pull-request-review-comment-2" + "example-of-completed-conclusion": { + "$ref": "#/components/examples/check-run-example-of-completed-conclusion" + }, + "example-of-in-progress-conclusion": { + "$ref": "#/components/examples/check-run-example-of-in-progress-conclusion" } } } @@ -36755,69 +38804,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "comfort-fade", - "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." - } - ], - "category": "pulls", - "subcategory": "comments" - } - }, - "delete": { - "summary": "Delete a review comment for a pull request", - "description": "Deletes a review comment.", - "tags": [ - "pulls" - ], - "operationId": "pulls/delete-review-comment", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#delete-a-review-comment-for-a-pull-request" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "comments" + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { "get": { - "summary": "List reactions for a pull request review comment", - "description": "List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments).", + "summary": "Get a check run", + "description": "Gets a single check run using its `id`.\n\n> [!NOTE]\n> The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository.", "tags": [ - "reactions" + "checks" ], - "operationId": "reactions/list-for-pull-request-review-comment", + "operationId": "checks/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#list-reactions-for-a-pull-request-review-comment" + "url": "https://docs.github.com/rest/checks/runs#get-a-check-run" }, "parameters": [ { @@ -36827,32 +38829,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" - }, - { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a pull request review comment.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/check-run-id" } ], "responses": { @@ -36861,55 +38838,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "$ref": "#/components/schemas/check-run" }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/check-run" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "checks", + "subcategory": "runs" } }, - "post": { - "summary": "Create reaction for a pull request review comment", - "description": "Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment.", + "patch": { + "summary": "Update a check run", + "description": "Updates a check run for a specific commit in a repository.\n\n> [!NOTE]\n> The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nOAuth apps and personal access tokens (classic) cannot use this endpoint.", "tags": [ - "reactions" + "checks" ], - "operationId": "reactions/create-for-pull-request-review-comment", + "operationId": "checks/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#create-reaction-for-a-pull-request-review-comment" + "url": "https://docs.github.com/rest/checks/runs#update-a-check-run" }, "parameters": [ { @@ -36919,208 +38875,309 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/check-run-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "content": { + "name": { + "type": "string", + "description": "The name of the check. For example, \"code-coverage\"." + }, + "details_url": { + "type": "string", + "description": "The URL of the integrator's site that has the full details of the check." + }, + "external_id": { + "type": "string", + "description": "A reference for the run on the integrator's system." + }, + "started_at": { + "type": "string", + "format": "date-time", + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "status": { "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the pull request review comment.", + "description": "The current status of the check run. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`.", "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" + "queued", + "in_progress", + "completed", + "waiting", + "requested", + "pending" ] - } - }, - "required": [ - "content" - ] - }, - "example": { - "content": "heart" - } - } - } - }, - "responses": { - "200": { - "description": "Reaction exists", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } - }, - "201": { - "description": "Reaction created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null - } - } - }, - "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { - "delete": { - "summary": "Delete a pull request comment reaction", - "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.`\n\nDelete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments).", - "tags": [ - "reactions" - ], - "operationId": "reactions/delete-for-pull-request-comment", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions#delete-a-pull-request-comment-reaction" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" - }, - { - "$ref": "#/components/parameters/reaction-id" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + }, + "conclusion": { + "type": "string", + "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this.", + "enum": [ + "action_required", + "cancelled", + "failure", + "neutral", + "success", + "skipped", + "stale", + "timed_out" + ] + }, + "completed_at": { + "type": "string", + "format": "date-time", + "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "output": { + "type": "object", + "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run.", + "properties": { + "title": { + "type": "string", + "description": "**Required**." + }, + "summary": { + "type": "string", + "description": "Can contain Markdown.", + "maxLength": 65535 + }, + "text": { + "type": "string", + "description": "Can contain Markdown.", + "maxLength": 65535 + }, + "annotations": { + "type": "array", + "description": "Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/checks/runs#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about annotations in the UI, see \"[About status checks](https://docs.github.com/articles/about-status-checks#checks)\".", + "maxItems": 50, + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`." + }, + "start_line": { + "type": "integer", + "description": "The start line of the annotation. Line numbers start at 1." + }, + "end_line": { + "type": "integer", + "description": "The end line of the annotation." + }, + "start_column": { + "type": "integer", + "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1." + }, + "end_column": { + "type": "integer", + "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." + }, + "annotation_level": { + "type": "string", + "description": "The level of the annotation.", + "enum": [ + "notice", + "warning", + "failure" + ] + }, + "message": { + "type": "string", + "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB." + }, + "title": { + "type": "string", + "description": "The title that represents the annotation. The maximum size is 255 characters." + }, + "raw_details": { + "type": "string", + "description": "Details about this annotation. The maximum size is 64 KB." + } + }, + "required": [ + "path", + "start_line", + "end_line", + "annotation_level", + "message" + ] + } + }, + "images": { + "type": "array", + "description": "Adds images to the output displayed in the GitHub pull request UI.", + "items": { + "type": "object", + "properties": { + "alt": { + "type": "string", + "description": "The alternative text for the image." + }, + "image_url": { + "type": "string", + "description": "The full URL of the image." + }, + "caption": { + "type": "string", + "description": "A short image description." + } + }, + "required": [ + "alt", + "image_url" + ] + } + } + }, + "required": [ + "summary" + ] + }, + "actions": { + "type": "array", + "description": "Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions).\"", + "maxItems": 3, + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "maxLength": 20, + "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters." + }, + "description": { + "type": "string", + "maxLength": 40, + "description": "A short explanation of what this action would do. The maximum size is 40 characters." + }, + "identifier": { + "type": "string", + "maxLength": 20, + "description": "A reference for the action on the integrator's system. The maximum size is 20 characters." + } + }, + "required": [ + "label", + "description", + "identifier" + ] + } + } + }, + "anyOf": [ + { + "properties": { + "status": { + "enum": [ + "completed" + ] + } + }, + "required": [ + "conclusion" + ], + "additionalProperties": true + }, + { + "properties": { + "status": { + "enum": [ + "queued", + "in_progress" + ] + } + }, + "additionalProperties": true + } + ] + }, + "examples": { + "default": { + "value": { + "name": "mighty_readme", + "started_at": "2018-05-04T01:14:52Z", + "status": "completed", + "conclusion": "success", + "completed_at": "2018-05-04T01:14:52Z", + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notices.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations": [ + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'banaas'.", + "raw_details": "Do you mean 'bananas' or 'banana'?", + "start_line": 2, + "end_line": 2 + }, + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'aples'", + "raw_details": "Do you mean 'apples' or 'Naples'", + "start_line": 4, + "end_line": 4 + } + ], + "images": [ + { + "alt": "Super bananas", + "image_url": "http://example.com/images/42" + } + ] + } + } + } + } } - ], - "category": "reactions", - "subcategory": null - } - } - }, - "/repos/{owner}/{repo}/pulls/{pull_number}": { - "get": { - "summary": "Get a pull request", - "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists details of a pull request by providing its number.\n\nWhen you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".\n\nThe value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit.\n\nThe value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request:\n\n* If merged as a [merge commit](https://help.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit.\n* If merged via a [squash](https://help.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch.\n* If [rebased](https://help.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to.\n\nPass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats.", - "tags": [ - "pulls" - ], - "operationId": "pulls/get", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#get-a-pull-request" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" } - ], + }, "responses": { "200": { - "description": "Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats.", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request" + "$ref": "#/components/schemas/check-run" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request" + "$ref": "#/components/examples/check-run" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "category": "checks", + "subcategory": "runs" } - }, - "patch": { - "summary": "Update a pull request", - "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.", + } + }, + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + "get": { + "summary": "List check run annotations", + "description": "Lists annotations for a check run using the annotation `id`.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository.", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/update", + "operationId": "checks/list-annotations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls/#update-a-pull-request" + "url": "https://docs.github.com/rest/checks/runs#list-check-run-annotations" }, "parameters": [ { @@ -37130,95 +39187,59 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/check-run-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "The title of the pull request." - }, - "body": { - "type": "string", - "description": "The contents of the pull request." - }, - "state": { - "type": "string", - "description": "State of this Pull Request. Either `open` or `closed`.", - "enum": [ - "open", - "closed" - ] - }, - "base": { - "type": "string", - "description": "The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository." - }, - "maintainer_can_modify": { - "type": "boolean", - "description": "Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request." - } - } - }, - "example": { - "title": "new title", - "body": "updated body", - "state": "open", - "base": "master" - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request" + "type": "array", + "items": { + "$ref": "#/components/schemas/check-annotation" + } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request" + "$ref": "#/components/examples/check-annotation-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { - "get": { - "summary": "List review comments on a pull request", - "description": "Lists all review comments for a pull request. By default, review comments are in ascending order by ID.", + "/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": { + "post": { + "summary": "Rerequest a check run", + "description": "Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, the `status` of the check suite it belongs to is reset to `queued` and the `conclusion` is cleared. The check run itself is not updated. GitHub apps recieving the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) with the `rerequested` action should then decide if the check run should be reset or updated and call the [update `check_run` endpoint](https://docs.github.com/rest/checks/runs#update-a-check-run) to update the check_run if desired.\n\nFor more information about how to re-run GitHub Actions jobs, see \"[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)\".", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/list-review-comments", + "operationId": "checks/rerequest-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-review-comments-on-a-pull-request" + "url": "https://docs.github.com/rest/checks/runs#rerequest-a-check-run" }, "parameters": [ { @@ -37228,88 +39249,68 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/sort" - }, - { - "name": "direction", - "description": "Can be either `asc` or `desc`. Ignored without `sort` parameter.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "$ref": "#/components/parameters/since" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/check-run-id" } ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-review-comment" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-comment-items" + "value": null } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "403": { + "description": "Forbidden if the check run is not rerequestable or doesn't belong to the authenticated GitHub App", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "422": { + "description": "Validation error if the check run is not rerequestable", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "comfort-fade", - "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." - }, - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "pulls", - "subcategory": "comments" + "category": "checks", + "subcategory": "runs" } - }, + } + }, + "/repos/{owner}/{repo}/check-suites": { "post": { - "summary": "Create a review comment for a pull request", - "description": "\nCreates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see \"[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment).\" We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff.\n\nYou can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see the [`comfort-fade` preview notice](https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request-preview-notices).\n\n**Note:** The position value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "summary": "Create a check suite", + "description": "Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using \"[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)\".\n\n> [!NOTE]\n> The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nOAuth apps and personal access tokens (classic) cannot use this endpoint.", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/create-review-comment", + "operationId": "checks/create-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request" + "url": "https://docs.github.com/rest/checks/suites#create-a-check-suite" }, "parameters": [ { @@ -37317,88 +39318,28 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "The text of the review comment." - }, - "commit_id": { - "type": "string", - "description": "The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`." - }, - "path": { - "type": "string", - "description": "The relative path to the file that necessitates a comment." - }, - "position": { - "type": "integer", - "description": "**Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above." - }, - "side": { - "type": "string", - "description": "**Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see \"[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)\" in the GitHub Help documentation.", - "enum": [ - "LEFT", - "RIGHT" - ] - }, - "line": { - "type": "integer", - "description": "**Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to." - }, - "start_line": { - "type": "integer", - "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation." - }, - "start_side": { + "head_sha": { "type": "string", - "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation. See `side` in this table for additional context.", - "enum": [ - "LEFT", - "RIGHT", - "side" - ] - }, - "in_reply_to": { - "type": "integer", - "example": 2 + "description": "The sha of the head commit." } }, "required": [ - "body" + "head_sha" ] }, "examples": { - "example-for-a-single-line-comment": { - "summary": "Example for a single-line comment", - "value": { - "body": "Let's add this deleted line back.", - "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "path": "file1.txt", - "line": 5, - "side": "LEFT" - } - }, - "example-for-a-multi-line-comment": { - "summary": "Example for a multi-line comment", + "default": { "value": { - "body": "Great stuff!", - "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "path": "file1.txt", - "start_line": 1, - "start_side": "RIGHT", - "line": 2, - "side": "RIGHT" + "head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3" } } } @@ -37406,63 +39347,56 @@ } }, "responses": { - "201": { - "description": "Response", + "200": { + "description": "Response when the suite already exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-comment" + "$ref": "#/components/schemas/check-suite" }, "examples": { - "example-for-a-multi-line-comment": { - "$ref": "#/components/examples/pull-request-review-comment-example-for-a-multi-line-comment" + "default": { + "$ref": "#/components/examples/check-suite" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + } + }, + "201": { + "description": "Response when the suite was created", + "content": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/check-suite" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-suite" + } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "comfort-fade", - "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." - } - ], - "category": "pulls", - "subcategory": "comments" + "category": "checks", + "subcategory": "suites" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { - "post": { - "summary": "Create a reply for a review comment", - "description": "Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "/repos/{owner}/{repo}/check-suites/preferences": { + "patch": { + "summary": "Update repository preferences for check suites", + "description": "Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite).\nYou must have admin permissions in the repository to set preferences for check suites.", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/create-reply-for-review-comment", + "operationId": "checks/set-suites-preferences", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#create-a-reply-for-a-review-comment" + "url": "https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites" }, "parameters": [ { @@ -37470,86 +39404,90 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/comment-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "The text of the review comment." + "auto_trigger_checks": { + "type": "array", + "description": "Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default.", + "items": { + "type": "object", + "properties": { + "app_id": { + "type": "integer", + "description": "The `id` of the GitHub App." + }, + "setting": { + "type": "boolean", + "description": "Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them.", + "default": true + } + }, + "required": [ + "app_id", + "setting" + ] + } } - }, - "required": [ - "body" - ] + } }, - "example": { - "body": "Great stuff!" + "examples": { + "default": { + "value": { + "auto_trigger_checks": [ + { + "app_id": 4, + "setting": false + } + ] + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-comment" + "$ref": "#/components/schemas/check-suite-preference" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-comment" + "$ref": "#/components/examples/check-suite-preference" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", - "schema": { - "type": "string" - } - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "pulls", - "subcategory": "comments" + "enabledForGitHubApps": true, + "category": "checks", + "subcategory": "suites" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { "get": { - "summary": "List commits on a pull request", - "description": "Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint.", + "summary": "Get a check suite", + "description": "Gets a single check suite using its `id`.\n\n> [!NOTE]\n> The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository.", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/list-commits", + "operationId": "checks/get-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-commits-on-a-pull-request" + "url": "https://docs.github.com/rest/checks/suites#get-a-check-suite" }, "parameters": [ { @@ -37559,13 +39497,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/check-suite-id" } ], "responses": { @@ -37574,47 +39506,36 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit" - } + "$ref": "#/components/schemas/check-suite" }, "examples": { "default": { - "$ref": "#/components/examples/commit-items" + "$ref": "#/components/examples/check-suite" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "category": "checks", + "subcategory": "suites" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { "get": { - "summary": "List pull requests files", - "description": "**Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default.", + "summary": "List check runs in a check suite", + "description": "Lists check runs for a check suite using its `id`.\n\n> [!NOTE]\n> The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository.", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/list-files", + "operationId": "checks/list-for-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-pull-requests-files" + "url": "https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite" }, "parameters": [ { @@ -37624,7 +39545,27 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/check-suite-id" + }, + { + "$ref": "#/components/parameters/check-name" + }, + { + "$ref": "#/components/parameters/status" + }, + { + "name": "filter", + "description": "Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "latest", + "all" + ], + "default": "latest" + } }, { "$ref": "#/components/parameters/per-page" @@ -37639,14 +39580,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/diff-entry" + "type": "object", + "required": [ + "total_count", + "check_runs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "check_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/check-run" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/diff-entry-items" + "$ref": "#/components/examples/check-run-paginated" } } } @@ -37656,36 +39609,27 @@ "$ref": "#/components/headers/link" } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "500": { - "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { - "get": { - "summary": "Check if a pull request has been merged", - "description": "", + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { + "post": { + "summary": "Rerequest a check suite", + "description": "Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared.", "tags": [ - "pulls" + "checks" ], - "operationId": "pulls/check-if-merged", + "operationId": "checks/rerequest-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#check-if-a-pull-request-has-been-merged" + "url": "https://docs.github.com/rest/checks/suites#rerequest-a-check-suite" }, "parameters": [ { @@ -37695,37 +39639,45 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/check-suite-id" } ], "responses": { - "204": { - "description": "Response if pull request has been merged" - }, - "404": { - "description": "Not Found if pull request has not been merged" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "category": "checks", + "subcategory": "suites" } - }, - "put": { - "summary": "Merge a pull request", - "description": "This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + } + }, + "/repos/{owner}/{repo}/code-scanning/alerts": { + "get": { + "summary": "List code scanning alerts for a repository", + "description": "Lists code scanning alerts.\n\nThe response includes a `most_recent_instance` object.\nThis provides details of the most recent instance of this alert\nfor the default branch (or for the specified Git reference if you used `ref` in the request).\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/merge", + "operationId": "code-scanning/list-alerts-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#merge-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-a-repository" }, "parameters": [ { @@ -37735,141 +39687,125 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "nullable": true, - "properties": { - "commit_title": { - "type": "string", - "description": "Title for the automatic commit message." - }, - "commit_message": { - "type": "string", - "description": "Extra detail to append to automatic commit message." - }, - "sha": { - "type": "string", - "description": "SHA that pull request head must match to allow merge." - }, - "merge_method": { - "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", - "enum": [ - "merge", - "squash", - "rebase" - ] - } - } - } + "$ref": "#/components/parameters/tool-name" + }, + { + "$ref": "#/components/parameters/tool-guid" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/git-ref" + }, + { + "$ref": "#/components/parameters/pr-alias" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "name": "sort", + "description": "The property by which to sort the results.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" } - } - }, - "responses": { - "200": { - "description": "if merge was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/pull-request-merge-result" - }, - "examples": { - "response-if-merge-was-successful": { - "$ref": "#/components/examples/pull-request-merge-result-response-if-merge-was-successful" - } - } - } + }, + { + "name": "state", + "description": "If specified, only code scanning alerts with this state will be returned.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-alert-state-query" } }, - "405": { - "description": "Method Not Allowed if merge cannot be performed", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } - } - }, - "examples": { - "response-if-merge-cannot-be-performed": { - "value": { - "message": "Pull Request is not mergeable" - } - } - } - } + { + "name": "severity", + "description": "If specified, only code scanning alerts with this severity will be returned.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-alert-severity" } }, - "409": { - "description": "Conflict if sha was provided and pull request head did not match", + { + "name": "assignees", + "description": "Filter alerts by assignees. Provide a comma-separated list of user handles (e.g., `octocat` or `octocat,hubot`).\nUse `*` to list alerts with at least one assignee or `none` to list alerts with no assignees.\n", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-alert-items" } }, "examples": { - "response-if-sha-was-provided-and-pull-request-head-did-not-match": { - "value": { - "message": "Head branch was modified. Review and try the merge again." - } + "default": { + "$ref": "#/components/examples/code-scanning-alert-items" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "304": { + "$ref": "#/components/responses/not_modified" }, "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/code_scanning_forbidden_read" }, "404": { "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": null + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { "get": { - "summary": "List requested reviewers for a pull request", - "description": "", + "summary": "Get a code scanning alert", + "description": "Gets a single code scanning alert.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/list-requested-reviewers", + "operationId": "code-scanning/get-alert", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-requested-reviewers-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert" }, "parameters": [ { @@ -37879,13 +39815,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/alert-number" } ], "responses": { @@ -37894,42 +39824,46 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-request" + "$ref": "#/components/schemas/code-scanning-alert" }, "examples": { "default": { - "$ref": "#/components/examples/simple-pull-request-review-request" + "$ref": "#/components/examples/code-scanning-alert" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "review-requests" + "category": "code-scanning", + "subcategory": "code-scanning" } }, - "post": { - "summary": "Request reviewers for a pull request", - "description": "This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "patch": { + "summary": "Update a code scanning alert", + "description": "Updates the status of a single code scanning alert.\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", + "operationId": "code-scanning/update-alert", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/request-reviewers", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-alert" }, "parameters": [ { @@ -37939,100 +39873,106 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/alert-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "reviewers": { - "type": "array", - "description": "An array of user `login`s that will be requested.", - "items": { - "type": "string" - } + "state": { + "$ref": "#/components/schemas/code-scanning-alert-set-state" }, - "team_reviewers": { - "type": "array", - "description": "An array of team `slug`s that will be requested.", - "items": { - "type": "string" - } + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "create_request": { + "$ref": "#/components/schemas/code-scanning-alert-create-request" + }, + "assignees": { + "$ref": "#/components/schemas/code-scanning-alert-assignees" } }, "anyOf": [ { "required": [ - "reviewers" + "state" ] }, { "required": [ - "team_reviewers" + "assignees" ] } ] }, - "example": { - "reviewers": [ - "octocat", - "hubot", - "other_user" - ], - "team_reviewers": [ - "justice-league" - ] + "examples": { + "default": { + "value": { + "state": "dismissed", + "dismissed_reason": "false positive", + "dismissed_comment": "This alert is not actually correct, because there's a sanitizer included in the library.", + "create_request": true + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-simple" + "$ref": "#/components/schemas/code-scanning-alert" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-request" + "$ref": "#/components/examples/code-scanning-alert-dismissed" } } } } }, - "422": { - "description": "Unprocessable Entity if user is not a collaborator" + "400": { + "$ref": "#/components/responses/bad_request" }, "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/code_scanning_forbidden_write" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "triggersNotification": true, - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "review-requests" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "delete": { - "summary": "Remove requested reviewers from a pull request", - "description": "", + } + }, + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix": { + "get": { + "summary": "Get the status of an autofix for a code scanning alert", + "description": "Gets the status and description of an autofix for a code scanning alert.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/remove-requested-reviewers", + "operationId": "code-scanning/get-autofix", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#remove-requested-reviewers-from-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-status-of-an-autofix-for-a-code-scanning-alert" }, "parameters": [ { @@ -38042,84 +39982,55 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/alert-number" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "reviewers": { - "type": "array", - "description": "An array of user `login`s that will be removed.", - "items": { - "type": "string" - } - }, - "team_reviewers": { - "type": "array", - "description": "An array of team `slug`s that will be removed.", - "items": { - "type": "string" - } - } - }, - "required": [ - "reviewers" - ] - }, - "example": { - "reviewers": [ - "octocat", - "hubot", - "other_user" - ], - "team_reviewers": [ - "justice-league" - ] - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-simple" + "$ref": "#/components/schemas/code-scanning-autofix" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-autofix" + } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "400": { + "$ref": "#/components/responses/code_scanning_bad_request" + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "review-requests" + "category": "code-scanning", + "subcategory": "code-scanning" } - } - }, - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { - "get": { - "summary": "List reviews for a pull request", - "description": "The list of reviews returns in chronological order.", + }, + "post": { + "summary": "Create an autofix for a code scanning alert", + "description": "Creates an autofix for a code scanning alert.\n\nIf a new autofix is to be created as a result of this request or is currently being generated, then this endpoint will return a 202 Accepted response.\n\nIf an autofix already exists for a given alert, then this endpoint will return a 200 OK response.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/list-reviews", + "operationId": "code-scanning/create-autofix", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-reviews-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#create-an-autofix-for-a-code-scanning-alert" }, "parameters": [ { @@ -38129,60 +40040,75 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/alert-number" } ], "responses": { "200": { - "description": "The list of reviews returns in chronological order.", + "description": "OK", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-review" - } + "$ref": "#/components/schemas/code-scanning-autofix" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-items" + "$ref": "#/components/examples/code-scanning-autofix" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-autofix" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-autofix-pending" + } + } } } + }, + "400": { + "$ref": "#/components/responses/code_scanning_bad_request" + }, + "403": { + "$ref": "#/components/responses/code_scanning_autofix_create_forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Unprocessable Entity" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "category": "code-scanning", + "subcategory": "code-scanning" } - }, + } + }, + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits": { "post": { - "summary": "Create a review for a pull request", - "description": "This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.\n\nPull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response.\n\n**Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/overview/media-types#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint.\n\nThe `position` value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.", + "summary": "Commit an autofix for a code scanning alert", + "description": "Commits an autofix for a code scanning alert.\n\nIf an autofix is committed as a result of this request, then this endpoint will return a 201 Created response.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/create-review", + "operationId": "code-scanning/commit-autofix", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#create-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#commit-an-autofix-for-a-code-scanning-alert" }, "parameters": [ { @@ -38192,136 +40118,75 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/alert-number" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "commit_id": { - "type": "string", - "description": "The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value." - }, - "body": { - "type": "string", - "description": "**Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review." - }, - "event": { - "type": "string", - "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request) when you are ready.", - "enum": [ - "APPROVE", - "REQUEST_CHANGES", - "COMMENT" - ] - }, - "comments": { - "type": "array", - "description": "Use the following table to specify the location, destination, and contents of the draft review comment.", - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "The relative path to the file that necessitates a review comment." - }, - "position": { - "type": "integer", - "description": "The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note below." - }, - "body": { - "type": "string", - "description": "Text of the review comment." - }, - "line": { - "type": "integer", - "example": 28 - }, - "side": { - "type": "string", - "example": "RIGHT" - }, - "start_line": { - "type": "integer", - "example": 26 - }, - "start_side": { - "type": "string", - "example": "LEFT" - } - }, - "required": [ - "path", - "body" - ] - } - } - } + "$ref": "#/components/schemas/code-scanning-autofix-commits" }, - "example": { - "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", - "body": "This is close to perfect! Please address the suggested inline change.", - "event": "REQUEST_CHANGES", - "comments": [ - { - "path": "file.md", - "position": 6, - "body": "Please add more information here, and fix this typo." - } - ] + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-autofix-commits" + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "$ref": "#/components/schemas/code-scanning-autofix-commits-response" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review" + "$ref": "#/components/examples/code-scanning-autofix-commits-response" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "400": { + "$ref": "#/components/responses/code_scanning_bad_request" }, "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/code_scanning_forbidden_write" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Unprocessable Entity" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { "get": { - "summary": "Get a review for a pull request", - "description": "", + "summary": "List instances of a code scanning alert", + "description": "Lists all instances of the specified code scanning alert.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/get-review", + "operationId": "code-scanning/list-alert-instances", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#get-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert" }, "parameters": [ { @@ -38331,10 +40196,19 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/alert-number" }, { - "$ref": "#/components/parameters/review-id" + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/git-ref" + }, + { + "$ref": "#/components/parameters/pr-alias" } ], "responses": { @@ -38343,40 +40217,48 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-alert-instance-list" + } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-4" + "$ref": "#/components/examples/code-scanning-alert-instances" } } } } }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "put": { - "summary": "Update a review for a pull request", - "description": "Update the review summary comment with new text.", + } + }, + "/repos/{owner}/{repo}/code-scanning/analyses": { + "get": { + "summary": "List code scanning analyses for a repository", + "description": "Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the `page` and `per_page` parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.\n\nThe `rules_count` field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand `0` is returned in this field.\n\n> [!WARNING]\n> **Closing down notice:** The `tool_name` field is closing down and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", + "operationId": "code-scanning/list-recent-analyses", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/update-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#update-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository" }, "parameters": [ { @@ -38386,73 +40268,103 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/tool-name" }, { - "$ref": "#/components/parameters/review-id" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The body text of the pull request review." - } - }, - "required": [ - "body" - ] - }, - "example": { - "body": "This is close to perfect! Please address the suggested inline change. And add more about this." - } + "$ref": "#/components/parameters/tool-guid" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pr-alias" + }, + { + "name": "ref", + "in": "query", + "description": "The Git reference for the analyses you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`.", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-ref" + } + }, + { + "name": "sarif_id", + "in": "query", + "description": "Filter analyses belonging to the same SARIF upload.", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + } + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "name": "sort", + "description": "The property by which to sort the results.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created" + ], + "default": "created" } } - }, + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-analysis" + } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-5" + "$ref": "#/components/examples/code-scanning-analysis-items" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "delete": { - "summary": "Delete a pending review for a pull request", - "description": "", + } + }, + "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { + "get": { + "summary": "Get a code scanning analysis for a repository", + "description": "Gets a specified code scanning analysis for a repository.\n\nThe default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.\n\nThe `rules_count` field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand `0` is returned in this field.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", + "operationId": "code-scanning/get-analysis", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/delete-pending-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#delete-a-pending-review-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository" }, "parameters": [ { @@ -38462,10 +40374,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" + "name": "analysis_id", + "in": "path", + "description": "The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation.", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -38474,45 +40389,57 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "$ref": "#/components/schemas/code-scanning-analysis" }, "examples": { - "default": { - "$ref": "#/components/examples/pull-request-review" + "response": { + "$ref": "#/components/examples/code-scanning-analysis-default" + } + } + }, + "application/sarif+json": { + "schema": { + "type": "object", + "additionalProperties": true + }, + "examples": { + "response": { + "$ref": "#/components/examples/code-scanning-analysis-sarif" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/unprocessable_analysis" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } - } - }, - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { - "get": { - "summary": "List comments for a pull request review", - "description": "List comments for a specific pull request review.", + }, + "delete": { + "summary": "Delete a code scanning analysis from a repository", + "description": "Deletes a specified code scanning analysis from a repository.\n\nYou can delete one analysis at a time.\nTo delete a series of analyses, start with the most recent analysis and work backwards.\nConceptually, the process is similar to the undo function in a text editor.\n\nWhen you list the analyses for a repository,\none or more will be identified as deletable in the response:\n\n```\n\"deletable\": true\n```\n\nAn analysis is deletable when it's the most recent in a set of analyses.\nTypically, a repository will have multiple sets of analyses\nfor each enabled code scanning tool,\nwhere a set is determined by a unique combination of analysis values:\n\n* `ref`\n* `tool`\n* `category`\n\nIf you attempt to delete an analysis that is not the most recent in a set,\nyou'll get a 400 response with the message:\n\n```\nAnalysis specified is not deletable.\n```\n\nThe response from a successful `DELETE` operation provides you with\ntwo alternative URLs for deleting the next analysis in the set:\n`next_analysis_url` and `confirm_delete_url`.\nUse the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis\nin a set. This is a useful option if you want to preserve at least one analysis\nfor the specified tool in your repository.\nUse the `confirm_delete_url` URL if you are content to remove all analyses for a tool.\nWhen you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url`\nin the 200 response is `null`.\n\nAs an example of the deletion process,\nlet's imagine that you added a workflow that configured a particular code scanning tool\nto analyze the code in a repository. This tool has added 15 analyses:\n10 on the default branch, and another 5 on a topic branch.\nYou therefore have two separate sets of analyses for this tool.\nYou've now decided that you want to remove all of the analyses for the tool.\nTo do this you must make 15 separate deletion requests.\nTo start, you must find an analysis that's identified as deletable.\nEach set of analyses always has one that's identified as deletable.\nHaving found the deletable analysis for one of the two sets,\ndelete this analysis and then continue deleting the next analysis in the set until they're all deleted.\nThen repeat the process for the second set.\nThe procedure therefore consists of a nested loop:\n\n**Outer loop**:\n* List the analyses for the repository, filtered by tool.\n* Parse this list to find a deletable analysis. If found:\n\n **Inner loop**:\n * Delete the identified analysis.\n * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration.\n\nThe above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", + "operationId": "code-scanning/delete-analysis", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/list-comments-for-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#list-comments-for-a-pull-request-review" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository" }, "parameters": [ { @@ -38522,16 +40449,23 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" - }, - { - "$ref": "#/components/parameters/per-page" + "name": "analysis_id", + "in": "path", + "description": "The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation.", + "required": true, + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/page" + "name": "confirm_delete", + "in": "query", + "description": "Allow deletion if the specified analysis is the last in a set. If you attempt to delete the final analysis in a set without setting this parameter to `true`, you'll get a 400 response with the message: `Analysis is last of its type and deletion may result in the loss of historical alert data. Please specify confirm_delete.`", + "required": false, + "schema": { + "type": "string", + "nullable": true + } } ], "responses": { @@ -38540,50 +40474,48 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/review-comment" - } + "$ref": "#/components/schemas/code-scanning-analysis-deletion" }, "examples": { - "default": { - "$ref": "#/components/examples/review-comment-items" + "default-response": { + "$ref": "#/components/examples/code-scanning-analysis-deletion" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_write" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { - "put": { - "summary": "Dismiss a review for a pull request", - "description": "**Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews.", + "/repos/{owner}/{repo}/code-scanning/codeql/databases": { + "get": { + "summary": "List CodeQL databases for a repository", + "description": "Lists the CodeQL databases that are available in a repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/dismiss-review", + "operationId": "code-scanning/list-codeql-databases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#dismiss-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository" }, "parameters": [ { @@ -38591,81 +40523,57 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message for the pull request review dismissal" - }, - "event": { - "type": "string", - "example": "\"APPROVE\"" - } - }, - "required": [ - "message" - ] - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-codeql-database" + } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-3" + "$ref": "#/components/examples/code-scanning-codeql-databases" } } } } }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { - "post": { - "summary": "Submit a review for a pull request", - "description": "", + "/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": { + "get": { + "summary": "Get a CodeQL database for a repository", + "description": "Gets a CodeQL database for a language in a repository.\n\nBy default this endpoint returns JSON metadata about the CodeQL database. To\ndownload the CodeQL database binary content, set the `Accept` header of the request\nto [`application/zip`](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types), and make sure\nyour HTTP client is configured to follow redirects or use the `Location` header\nto make a second request to get the redirect URL.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/submit-review", + "operationId": "code-scanning/get-codeql-database", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository" }, "parameters": [ { @@ -38675,87 +40583,114 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" + "name": "language", + "in": "path", + "description": "The language of the CodeQL database.", + "schema": { + "type": "string" + }, + "required": true } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The body text of the pull request review" - }, - "event": { - "type": "string", - "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action.", - "enum": [ - "APPROVE", - "REQUEST_CHANGES", - "COMMENT" - ] - } - }, - "required": [ - "event" - ] - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "$ref": "#/components/schemas/code-scanning-codeql-database" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-4" + "$ref": "#/components/examples/code-scanning-codeql-database" } } } } }, + "302": { + "$ref": "#/components/responses/found" + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" + } + }, + "delete": { + "summary": "Delete a CodeQL database", + "description": "Deletes a CodeQL database for a language in a repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", + "tags": [ + "code-scanning" + ], + "operationId": "code-scanning/delete-codeql-database", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/code-scanning/code-scanning#delete-a-codeql-database" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "language", + "in": "path", + "description": "The language of the CodeQL database.", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "204": { + "description": "Response" }, "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/code_scanning_forbidden_write" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "pulls", - "subcategory": "reviews" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { - "put": { - "summary": "Update a pull request branch", - "description": "Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch.", + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses": { + "post": { + "summary": "Create a CodeQL variant analysis", + "description": "Creates a new CodeQL variant analysis, which will run a CodeQL query against one or more repositories.\n\nGet started by learning more about [running CodeQL queries at scale with Multi-Repository Variant Analysis](https://docs.github.com/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis).\n\nUse the `owner` and `repo` parameters in the URL to specify the controller repository that\nwill be used for running GitHub Actions workflows and storing the results of the CodeQL variant analysis.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "pulls" + "code-scanning" ], - "operationId": "pulls/update-branch", + "operationId": "code-scanning/create-variant-analysis", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/pulls#update-a-pull-request-branch" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#create-a-codeql-variant-analysis" }, "parameters": [ { @@ -38763,89 +40698,173 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", - "nullable": true, + "additionalProperties": false, "properties": { - "expected_head_sha": { - "type": "string", - "description": "The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the \"[List commits](https://docs.github.com/rest/reference/repos#list-commits)\" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref." + "language": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-language" + }, + "query_pack": { + "description": "A Base64-encoded tarball containing a CodeQL query and all its dependencies", + "type": "string" + }, + "repositories": { + "type": "array", + "description": "List of repository names (in the form `owner/repo-name`) to run the query against. Precisely one property from `repositories`, `repository_lists` and `repository_owners` is required.", + "items": { + "type": "string" + } + }, + "repository_lists": { + "description": "List of repository lists to run the query against. Precisely one property from `repositories`, `repository_lists` and `repository_owners` is required.", + "type": "array", + "maxItems": 1, + "items": { + "type": "string" + } + }, + "repository_owners": { + "description": "List of organization or user names whose repositories the query should be run against. Precisely one property from `repositories`, `repository_lists` and `repository_owners` is required.", + "type": "array", + "maxItems": 1, + "items": { + "type": "string" + } } - } + }, + "required": [ + "language", + "query_pack" + ], + "oneOf": [ + { + "required": [ + "repositories" + ] + }, + { + "required": [ + "repository_lists" + ] + }, + { + "required": [ + "repository_owners" + ] + } + ] }, - "example": { - "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + "examples": { + "repositories_parameter": { + "summary": "Using the \"repositories\" field. \"query_pack\" is abridged for brevity.", + "value": { + "language": "csharp", + "query_pack": "aGVsbG8=", + "repositories": [ + "octocat/Hello-World", + "octocat/example" + ] + } + }, + "repository_owners": { + "summary": "Using the \"repository_owners\" field. \"query_pack\" is abridged.", + "value": { + "language": "csharp", + "query_pack": "aGVsbG8=", + "repository_owners": [ + "octocat" + ] + } + }, + "repository_lists": { + "summary": "Using the \"repository_lists\" field. \"query_pack\" is abridged.", + "value": { + "language": "csharp", + "query_pack": "aGVsbG8=", + "repository_lists": [ + "top-100-csharp" + ] + } + } } } } }, "responses": { - "202": { - "description": "Response", + "201": { + "description": "Variant analysis submitted for processing", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "url": { - "type": "string" + "$ref": "#/components/schemas/code-scanning-variant-analysis" + }, + "examples": { + "repositories_parameter": { + "summary": "Response for a successful variant analysis submission", + "value": { + "$ref": "#/components/examples/code-scanning-variant-analysis" + } + }, + "repository_owners": { + "summary": "Response for a successful variant analysis submission", + "value": { + "$ref": "#/components/examples/code-scanning-variant-analysis" + } + }, + "repository_lists": { + "summary": "Response for a successful variant analysis submission", + "value": { + "$ref": "#/components/examples/code-scanning-variant-analysis" } } - }, - "example": { - "message": "Updating pull request branch.", - "url": "https://github.com/repos/octocat/Hello-World/pulls/53" } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "description": "Unable to process variant analysis submission", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "lydian", - "note": "Updating the pull request branch with latest upstream changes is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.lydian-preview+json\n```" - } - ], - "category": "pulls", - "subcategory": null + "enabledForGitHubApps": true, + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/readme": { + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}": { "get": { - "summary": "Get a repository README", - "description": "Gets the preferred README for a repository.\n\nREADMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML.", + "summary": "Get the summary of a CodeQL variant analysis", + "description": "Gets the summary of a CodeQL variant analysis.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "repos" + "code-scanning" ], - "operationId": "repos/get-readme", + "operationId": "code-scanning/get-variant-analysis", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-repository-readme" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-summary-of-a-codeql-variant-analysis" }, "parameters": [ { @@ -38855,13 +40874,13 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ref", - "description": "The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`)", - "in": "query", - "required": false, + "name": "codeql_variant_analysis_id", + "in": "path", + "description": "The unique identifier of the variant analysis.", "schema": { - "type": "string" - } + "type": "integer" + }, + "required": true } ], "responses": { @@ -38870,11 +40889,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/content-file" + "$ref": "#/components/schemas/code-scanning-variant-analysis" }, "examples": { "default": { - "$ref": "#/components/examples/content-file" + "$ref": "#/components/examples/code-scanning-variant-analysis" } } } @@ -38883,58 +40902,70 @@ "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "contents" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/readme/{dir}": { + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}": { "get": { - "summary": "Get a repository README for a directory", - "description": "Gets the README from a repository directory.\n\nREADMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML.", + "summary": "Get the analysis status of a repository in a CodeQL variant analysis", + "description": "Gets the analysis status of a repository in a CodeQL variant analysis.\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "repos" + "code-scanning" ], - "operationId": "repos/get-readme-in-directory", + "operationId": "code-scanning/get-variant-analysis-repo-task", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-repository-directory-readme" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-analysis-status-of-a-repository-in-a-codeql-variant-analysis" }, "parameters": [ { "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/repo" + "name": "repo", + "in": "path", + "description": "The name of the controller repository.", + "schema": { + "type": "string" + }, + "required": true }, { - "name": "dir", - "description": "The alternate path to look for a README file", + "name": "codeql_variant_analysis_id", "in": "path", - "required": true, + "description": "The ID of the variant analysis.", + "schema": { + "type": "integer" + }, + "required": true + }, + { + "name": "repo_owner", + "in": "path", + "description": "The account owner of the variant analysis repository. The name is not case sensitive.", "schema": { "type": "string" }, - "x-multi-segment": true + "required": true }, { - "name": "ref", - "description": "The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`)", - "in": "query", - "required": false, + "name": "repo_name", + "in": "path", + "description": "The name of the variant analysis repository.", "schema": { "type": "string" - } + }, + "required": true } ], "responses": { @@ -38943,11 +40974,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/content-file" + "$ref": "#/components/schemas/code-scanning-variant-analysis-repo-task" }, "examples": { "default": { - "$ref": "#/components/examples/content-file" + "$ref": "#/components/examples/code-scanning-variant-analysis-repo-task" } } } @@ -38956,32 +40987,30 @@ "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "contents" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/releases": { + "/repos/{owner}/{repo}/code-scanning/default-setup": { "get": { - "summary": "List releases", - "description": "This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags).\n\nInformation about published releases are available to everyone. Only users with push access will receive listings for draft releases.", + "summary": "Get a code scanning default setup configuration", + "description": "Gets a code scanning default setup configuration.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "repos" + "code-scanning" ], - "operationId": "repos/list-releases", + "operationId": "code-scanning/get-default-setup", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-releases" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration" }, "parameters": [ { @@ -38989,12 +41018,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -39003,48 +41026,43 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/release" - } + "$ref": "#/components/schemas/code-scanning-default-setup" }, "examples": { "default": { - "$ref": "#/components/examples/release-items" + "$ref": "#/components/examples/code-scanning-default-setup" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "category": "code-scanning", + "subcategory": "code-scanning" } }, - "post": { - "summary": "Create a release", - "description": "Users with push access to the repository can create a release.\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "patch": { + "summary": "Update a code scanning default setup configuration", + "description": "Updates a code scanning default setup configuration.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", "tags": [ - "repos" + "code-scanning" ], - "operationId": "repos/create-release", + "operationId": "code-scanning/update-default-setup", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-release" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration" }, "parameters": [ { @@ -39055,176 +41073,86 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "tag_name": { - "type": "string", - "description": "The name of the tag." - }, - "target_commitish": { - "type": "string", - "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`)." - }, - "name": { - "type": "string", - "description": "The name of the release." - }, - "body": { - "type": "string", - "description": "Text describing the contents of the tag." - }, - "draft": { - "type": "boolean", - "description": "`true` to create a draft (unpublished) release, `false` to create a published one.", - "default": false - }, - "prerelease": { - "type": "boolean", - "description": "`true` to identify the release as a prerelease. `false` to identify the release as a full release.", - "default": false - }, - "discussion_category_name": { - "type": "string", - "description": "If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see \"[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository).\"" - } - }, - "required": [ - "tag_name" - ] + "$ref": "#/components/schemas/code-scanning-default-setup-update" }, - "example": { - "tag_name": "v1.0.0", - "target_commitish": "master", - "name": "v1.0.0", - "body": "Description of the release", - "draft": false, - "prerelease": false + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-default-setup-update" + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/release" + "value": null } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/releases/1", - "schema": { - "type": "string" - } - } - } - }, - "404": { - "description": "Not Found if the discussion category name is invalid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "triggersNotification": true, - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" - } - } - }, - "/repos/{owner}/{repo}/releases/assets/{asset_id}": { - "get": { - "summary": "Get a release asset", - "description": "To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response.", - "tags": [ - "repos" - ], - "operationId": "repos/get-release-asset", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-release-asset" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/asset-id" - } - ], - "responses": { - "200": { - "description": "To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response.", + "202": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release-asset" + "$ref": "#/components/schemas/code-scanning-default-setup-update-response" }, "examples": { "default": { - "$ref": "#/components/examples/release-asset" + "$ref": "#/components/examples/code-scanning-default-setup-update-response" } } } } }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_write" + }, "404": { "$ref": "#/components/responses/not_found" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "409": { + "$ref": "#/components/responses/code_scanning_conflict" }, - "302": { - "$ref": "#/components/responses/found" + "422": { + "$ref": "#/components/responses/code_scanning_invalid_state" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "patch": { - "summary": "Update a release asset", - "description": "Users with push access to the repository can edit a release asset.", + } + }, + "/repos/{owner}/{repo}/code-scanning/sarifs": { + "post": { + "summary": "Upload an analysis as SARIF data", + "description": "Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see \"[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif).\"\n\nThere are two places where you can upload code scanning results.\n - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see \"[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests).\"\n - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see \"[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository).\"\n\nYou must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example:\n\n```\ngzip -c analysis-data.sarif | base64 -w0\n```\n\nSARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable.\nTo get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see \"[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit).\"\n\n\n| **SARIF data** | **Maximum values** | **Additional limits** |\n|----------------------------------|:------------------:|----------------------------------------------------------------------------------|\n| Runs per file | 20 | |\n| Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. |\n| Rules per run | 25,000 | |\n| Tool extensions per run | 100 | |\n| Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. |\n| Location per result\t | 1,000 | Only 100 locations will be included. |\n| Tags per rule\t | 20 | Only 10 tags will be included. |\n\n\nThe `202 Accepted` response includes an `id` value.\nYou can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint.\nFor more information, see \"[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload).\"\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.\n\nThis endpoint is limited to 1,000 requests per hour for each user or app installation calling it.", + "operationId": "code-scanning/upload-sarif", "tags": [ - "repos" + "code-scanning" ], - "operationId": "repos/update-release-asset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-a-release-asset" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data" }, "parameters": [ { @@ -39232,75 +41160,114 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/asset-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The file name of the asset." + "commit_sha": { + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" }, - "label": { - "type": "string", - "description": "An alternate short description of the asset. Used in place of the filename." + "ref": { + "$ref": "#/components/schemas/code-scanning-ref-full" }, - "state": { + "sarif": { + "$ref": "#/components/schemas/code-scanning-analysis-sarif-file" + }, + "checkout_uri": { + "description": "The base directory used in the analysis, as it appears in the SARIF file.\nThis property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository.", + "example": "file:///github/workspace/", "type": "string", - "example": "\"uploaded\"" + "format": "uri" + }, + "started_at": { + "description": "The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "type": "string" + }, + "tool_name": { + "description": "The name of the tool used to generate the code scanning analysis. If this parameter is not used, the tool name defaults to \"API\". If the uploaded SARIF contains a tool GUID, this will be available for filtering using the `tool_guid` parameter of operations such as `GET /repos/{owner}/{repo}/code-scanning/alerts`.", + "type": "string" + }, + "validate": { + "description": "Whether the SARIF file will be validated according to the code scanning specifications.\nThis parameter is intended to help integrators ensure that the uploaded SARIF files are correctly rendered by code scanning.", + "type": "boolean" } - } + }, + "additionalProperties": false, + "required": [ + "commit_sha", + "ref", + "sarif" + ] }, - "example": { - "name": "foo-1.0.0-osx.zip", - "label": "Mac binary" + "examples": { + "default": { + "value": { + "commit_sha": "4b6472266afd7b471e86085a6659e8c7f2b119da", + "ref": "refs/heads/master", + "sarif": "H4sICMLGdF4AA2V4YW1wbGUuc2FyaWYAvVjdbts2FL7PUxDCijaA/CM7iRNfLkPXYgHSNstumlzQ0pHFVCI1korjFgH2ONtr7Ul2KFmy/mOn6QIkjsjDw0/nfN85NL8dEGL9pNwAImqRObECrWM1H40kXQ2XTAfJIlEgXcE1cD10RTQSVDE10K4aKSqZP1AxuKOIKg1ydJU60jSfSh8Hk6EzHA/vlOCWbfa7B6kYPpj90rlsWCZcmbHP5Bs+4oAWIjQD2SMOeJLh2vIQDnIaQerqXHjw8YIgxohybxAyDsS4cAPKsp03K4RcUs6+Up2D+JXpd8mibKIQN9fM/aMCdbyBujGSSQgVxJtx5qX2d2qUcIweQhEuDQf3GBO6CKHkogx/N3MVCKl/AeVKFuf4y5ubsMGDTj1ep+5I7sgmLIpxtU38hLtmMRGSuCFVyip5eKzs5ydh+LztVL6f2m6oih1BkYiuyQIIJWodxVpERPj4sEiWBNNH8EWT0DMG8EAjzKVHXCrB4FkPu/F64NMk1OeC+2yZSNoBOoR7CC0EzYWGbm+xFDFIzbI011+cLjfZtyJkmMZfumAh02uL3NpV2y+MZ6RAjxibyKrNxxJcVjANSb4eBGwZ1M0KsuyR2poLr5rMl8vaDSeVn6eTWEO2j2xIEcmhwlTKNOi4GMOI8gfuZYkvJ7b4v5Tiumyz7RnHeodFzpS8ASIZCH/AYdWi2z3sG8JtFxJ6fF9yR9CdifBr9Pd6d5V2+zbJKjjCFGGmsHuYFy2ytJq9tUxcLSRSQecppOGKrpUxYfxefMEFK+wOGa4hudQByBVT0L+EKtyACxnRsABhEx1QjVDs1KNI9MbpnhqfE45B6FJvu3hRu5VRU9MhZLmK7fqkKyQSTHNoyMqUFMqXCV3CwAeqEwmVokraK8IuBaGvHjQ0gMYrKjnjyw7uk9uD8tgmsBbFMPnU1bV2ZhkJNkuolUiWys3UPWzs5aaIUz9TBe8zMb+6+nT+6fLy91dlE3xzeDDT4zYszb0bW6NjJd0Rvn2EnLvWLFSdKPpBzInzfRgu8ETyMcH8nIfMnJCeC2PyfTA+UKngcnGH7Hw2hGkVQs5YlIRCtdWZYQ4/73es2JlxkfViOEIhoWJq5Oo6UBBfiKIqFBWhiE3jJGbFwVoxBHTRSuIS67sMeplei24X20shLjG+8gqbKC/bESiNMC+wd5q5id0yeS7CJEqXzmrTWNq3k05l84P6f4/bEmXFJjI0fIt1BGQssUnUDkBYeVhE5TqPnMH3jqogDcP0zKcTgLPTMSzOjhbjuVOmW23l1fYNStulfo6sXlFsGLhbDy5RECPRYGCTgOj2bd4nUQEivEd0H7KKYxqnEhFohuur3a3UPskbH/+Yg0+M5P2MHRJu3ziHh3Z2NCrWt3XF1rWTw8Ne/pfbWYXnDSE0SNZQQt1i18q7te2vOhu7ehWuvVyeu0wbLZi24mhoo6aOOTltzG/lgdVvVoXQq5V+pewkFIzL8fjEcadT55jOjpzFzHuOTtDNrMkJPMVQDd7F09RID72O/UPZ0tmctqZ7kWX6EmSZnDpP8GU67SXM8XE3YSrxbKsx6UReZ4y6n/FVZfJjs9Z7stma75W5yQtkzjk5eSJxk1lv4o7+j8TlhaJ2lsKWZO6lruDPBLib3x5ZN/KGWzZ+pn///evv7OOf4iIBv3oY9L/l1wiJ9p0Tc+F1zZnOE9NxXWEus6IQhr5pMfoqxi8WPsuu0azsns4UC6WzNzHIzbeEx4P/AJ3SefgcFAAA" + } + } } } } }, "responses": { - "200": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release-asset" + "$ref": "#/components/schemas/code-scanning-sarifs-receipt" }, "examples": { "default": { - "$ref": "#/components/examples/release-asset" + "$ref": "#/components/examples/code-scanning-sarif-upload" } } } } + }, + "400": { + "description": "Bad Request if the sarif field is invalid" + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_write" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "413": { + "description": "Payload Too Large if the sarif field is too large" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "delete": { - "summary": "Delete a release asset", - "description": "", + } + }, + "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": { + "get": { + "summary": "Get information about a SARIF upload", + "description": "Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository).\"\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories.", + "operationId": "code-scanning/get-sarif", "tags": [ - "repos" + "code-scanning" ], - "operationId": "repos/delete-release-asset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-release-asset" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload" }, "parameters": [ { @@ -39310,36 +41277,60 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/asset-id" + "name": "sarif_id", + "description": "The SARIF ID obtained after uploading.", + "in": "path", + "schema": { + "type": "string" + }, + "required": true } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-sarifs-status" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-sarif-upload-status" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, + "404": { + "description": "Not Found if the sarif id does not match any upload" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/releases/latest": { + "/repos/{owner}/{repo}/code-security-configuration": { "get": { - "summary": "Get the latest release", - "description": "View the latest published full release for the repository.\n\nThe latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published.", + "summary": "Get the code security configuration associated with a repository", + "description": "Get the code security configuration that manages a repository's code security settings.\n\nThe authenticated user must be an administrator or security manager for the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "repos" + "code-security" ], - "operationId": "repos/get-latest-release", + "operationId": "code-security/get-configuration-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-the-latest-release" + "url": "https://docs.github.com/rest/code-security/configurations#get-the-code-security-configuration-associated-with-a-repository" }, "parameters": [ { @@ -39355,39 +41346,48 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/code-security-configuration-for-repository" }, "examples": { "default": { - "$ref": "#/components/examples/release" + "$ref": "#/components/examples/code-security-configuration-for-repository" } } } } + }, + "204": { + "$ref": "#/components/responses/no_content" + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "category": "code-security", + "subcategory": "configurations" } } }, - "/repos/{owner}/{repo}/releases/tags/{tag}": { + "/repos/{owner}/{repo}/codeowners/errors": { "get": { - "summary": "Get a release by tag name", - "description": "Get a published release with the specified tag.", + "summary": "List CODEOWNERS errors", + "description": "List any syntax errors that are detected in the CODEOWNERS\nfile.\n\nFor more information about the correct CODEOWNERS syntax,\nsee \"[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners).\"", "tags": [ "repos" ], - "operationId": "repos/get-release-by-tag", + "operationId": "repos/codeowners-errors", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-release-by-tag-name" + "url": "https://docs.github.com/rest/repos/repos#list-codeowners-errors" }, "parameters": [ { @@ -39397,14 +41397,13 @@ "$ref": "#/components/parameters/repo" }, { - "name": "tag", - "description": "tag parameter", - "in": "path", - "required": true, + "name": "ref", + "description": "A branch, tag or commit name used to determine which version of the CODEOWNERS file to use. Default: the repository's default branch (e.g. `main`)", + "in": "query", + "required": false, "schema": { "type": "string" - }, - "x-multi-segment": true + } } ], "responses": { @@ -39413,94 +41412,116 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/codeowners-errors" }, "examples": { "default": { - "$ref": "#/components/examples/release" + "$ref": "#/components/examples/codeowners-errors" } } } } }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Resource not found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], + "previews": [], "category": "repos", - "subcategory": "releases" + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/releases/{release_id}": { + "/repos/{owner}/{repo}/codespaces": { "get": { - "summary": "Get a release", - "description": "**Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia).", + "summary": "List codespaces in a repository for the authenticated user", + "description": "Lists the codespaces associated to a specified repository and the authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", "tags": [ - "repos" + "codespaces" ], - "operationId": "repos/get-release", + "operationId": "codespaces/list-in-repository-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-a-release" + "url": "https://docs.github.com/rest/codespaces/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/release-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "**Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia).", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/release" + "$ref": "#/components/examples/codespaces-list-for-repository" } } } } }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } }, - "patch": { - "summary": "Update a release", - "description": "Users with push access to the repository can edit a release.", + "post": { + "summary": "Create a codespace in a repository", + "description": "Creates a codespace owned by the authenticated user in the specified repository.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", "tags": [ - "repos" + "codespaces" ], - "operationId": "repos/update-release", + "operationId": "codespaces/create-with-repo-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#update-a-release" + "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-in-a-repository" }, "parameters": [ { @@ -39508,144 +41529,240 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/release-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "tag_name": { - "type": "string", - "description": "The name of the tag." + "ref": { + "description": "Git ref (typically a branch name) for this codespace", + "type": "string" }, - "target_commitish": { - "type": "string", - "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`)." + "location": { + "description": "The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided.", + "type": "string" }, - "name": { + "geo": { + "description": "The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is closing down.", "type": "string", - "description": "The name of the release." + "enum": [ + "EuropeWest", + "SoutheastAsia", + "UsEast", + "UsWest" + ] }, - "body": { - "type": "string", - "description": "Text describing the contents of the tag." + "client_ip": { + "description": "IP for location auto-detection when proxying a request", + "type": "string" }, - "draft": { - "type": "boolean", - "description": "`true` makes the release a draft, and `false` publishes the release." + "machine": { + "description": "Machine type to use for this codespace", + "type": "string" }, - "prerelease": { - "type": "boolean", - "description": "`true` to identify the release as a prerelease, `false` to identify the release as a full release." + "devcontainer_path": { + "description": "Path to devcontainer.json config to use for this codespace", + "type": "string" }, - "discussion_category_name": { - "type": "string", - "description": "If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored. For more information, see \"[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository).\"" + "multi_repo_permissions_opt_out": { + "description": "Whether to authorize requested permissions from devcontainer.json", + "type": "boolean" + }, + "working_directory": { + "description": "Working directory for this codespace", + "type": "string" + }, + "idle_timeout_minutes": { + "description": "Time in minutes before codespace stops from inactivity", + "type": "integer" + }, + "display_name": { + "description": "Display name for this codespace", + "type": "string" + }, + "retention_period_minutes": { + "description": "Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days).", + "type": "integer" } } }, - "example": { - "tag_name": "v1.0.0", - "target_commitish": "master", - "name": "v1.0.0", - "body": "Description of the release", - "draft": false, - "prerelease": false + "examples": { + "default": { + "value": { + "ref": "main", + "machine": "standardLinux32gb" + } + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when the codespace was successfully created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/codespace" }, "examples": { "default": { - "$ref": "#/components/examples/release" + "$ref": "#/components/examples/codespace" } } } } }, - "404": { - "description": "Not Found if the discussion category name is invalid", + "202": { + "description": "Response when the codespace creation partially failed but is being retried in the background", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } } } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } - }, - "delete": { - "summary": "Delete a release", - "description": "Users with push access to the repository can delete a release.", + } + }, + "/repos/{owner}/{repo}/codespaces/devcontainers": { + "get": { + "summary": "List devcontainer configurations in a repository for the authenticated user", + "description": "Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files\nspecify launchpoint configurations for codespaces created within the repository.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", "tags": [ - "repos" + "codespaces" ], - "operationId": "repos/delete-release", + "operationId": "codespaces/list-devcontainers-in-repository-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#delete-a-release" + "url": "https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/release-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "devcontainers" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "devcontainers": { + "type": "array", + "items": { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "type": "string" + }, + "name": { + "type": "string" + }, + "display_name": { + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespaces-list-devcontainers-for-repository" + } + } + } + } + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/repos/{owner}/{repo}/releases/{release_id}/assets": { + "/repos/{owner}/{repo}/codespaces/machines": { "get": { - "summary": "List release assets", - "description": "", + "summary": "List available machine types for a repository", + "description": "List the machine types available for a given repository based on its configuration.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", "tags": [ - "repos" + "codespaces" ], - "operationId": "repos/list-release-assets", + "operationId": "codespaces/repo-machines-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-release-assets" + "url": "https://docs.github.com/rest/codespaces/machines#list-available-machine-types-for-a-repository" }, "parameters": [ { @@ -39655,13 +41772,30 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" + "name": "location", + "description": "The location to check for available machines. Assigned by IP if not provided.", + "in": "query", + "schema": { + "type": "string", + "example": "WestUs2" + } }, { - "$ref": "#/components/parameters/per-page" + "name": "client_ip", + "description": "IP for location auto-detection when proxying a request", + "in": "query", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/page" + "name": "ref", + "description": "The branch or commit to check for prebuild availability and devcontainer restrictions.", + "in": "query", + "schema": { + "type": "string", + "example": "main" + } } ], "responses": { @@ -39670,57 +41804,67 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/release-asset" + "type": "object", + "required": [ + "total_count", + "machines" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace-machine" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/release-asset-items" + "$ref": "#/components/examples/codespace-machines-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "category": "codespaces", + "subcategory": "machines" } - }, - "post": { - "summary": "Upload a release asset", - "description": "This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in\nthe response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset.\n\nYou need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint.\n\nMost libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: \n\n`application/zip`\n\nGitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example,\nyou'll still need to pass your authentication to be able to upload an asset.\n\nWhen an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted.\n\n**Notes:**\n* GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The \"[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)\"\nendpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=rest-api).\n* If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset.", + } + }, + "/repos/{owner}/{repo}/codespaces/new": { + "get": { + "summary": "Get default attributes for a codespace", + "description": "Gets the default attributes for codespaces created by the user with the repository.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", "tags": [ - "repos" + "codespaces" ], - "operationId": "repos/upload-release-asset", + "operationId": "codespaces/pre-flight-with-repo-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#upload-a-release-asset" + "url": "https://docs.github.com/rest/codespaces/codespaces#get-default-attributes-for-a-codespace" }, - "servers": [ - { - "url": "{origin}", - "variables": { - "origin": { - "default": "https://uploads.github.com", - "description": "The URL origin (protocol + host name + port) is included in `upload_url` returned in the response of the \"Create a release\" endpoint" - } - } - } - ], "parameters": [ { "$ref": "#/components/parameters/owner" @@ -39729,80 +41873,90 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" - }, - { - "name": "name", + "name": "ref", + "description": "The branch or commit to check for a default devcontainer path. If not specified, the default branch will be checked.", "in": "query", - "required": true, "schema": { - "type": "string" + "type": "string", + "example": "main" } }, { - "name": "label", + "name": "client_ip", + "description": "An alternative IP for default location auto-detection, such as when proxying a request.", "in": "query", "schema": { - "type": "string" + "type": "string", + "example": "1.2.3.4" } } ], - "requestBody": { - "required": false, - "content": { - "application/octet-stream": { - "schema": { - "type": "string", - "format": "binary", - "description": "The raw file data" - }, - "examples": { - "default": { - "value": "@example.zip" - } - } - } - } - }, "responses": { - "201": { - "description": "Response for successful upload", + "200": { + "description": "Response when a user is able to create codespaces from the repository.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release-asset" + "type": "object", + "properties": { + "billable_owner": { + "$ref": "#/components/schemas/simple-user" + }, + "defaults": { + "type": "object", + "required": [ + "location", + "devcontainer_path" + ], + "properties": { + "location": { + "type": "string" + }, + "devcontainer_path": { + "type": "string", + "nullable": true + } + } + } + } }, "examples": { - "response-for-successful-upload": { - "$ref": "#/components/examples/release-asset-response-for-successful-upload" + "default": { + "$ref": "#/components/examples/codespaces-default-attributes-for-a-codespace" } } } } + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "releases" + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/repos/{owner}/{repo}/releases/{release_id}/reactions": { - "post": { - "summary": "Create reaction for a release", - "description": "Create a reaction to a [release](https://docs.github.com/rest/reference/repos#releases). A response with a `Status: 200 OK` means that you already added the reaction type to this release.", + "/repos/{owner}/{repo}/codespaces/permissions_check": { + "get": { + "summary": "Check if permissions defined by a devcontainer have been accepted by the authenticated user", + "description": "Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", "tags": [ - "reactions" + "codespaces" ], - "operationId": "reactions/create-for-release", + "operationId": "codespaces/check-permissions-for-devcontainer", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions/#create-reaction-for-a-release" + "url": "https://docs.github.com/rest/codespaces/codespaces#check-if-permissions-defined-by-a-devcontainer-have-been-accepted-by-the-authenticated-user" }, "parameters": [ { @@ -39812,102 +41966,77 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the release.", - "enum": [ - "+1", - "laugh", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - "required": [ - "content" - ] - }, - "example": { - "content": "heart" - } + "name": "ref", + "description": "The git reference that points to the location of the devcontainer configuration to use for the permission check. The value of `ref` will typically be a branch name (`heads/BRANCH_NAME`). For more information, see \"[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)\" in the Git documentation.", + "in": "query", + "required": true, + "schema": { + "type": "string", + "example": "master" + } + }, + { + "name": "devcontainer_path", + "description": "Path to the devcontainer.json configuration to use for the permission check.", + "in": "query", + "required": true, + "schema": { + "type": "string", + "example": ".devcontainer/example/devcontainer.json" } } - }, + ], "responses": { "200": { - "description": "Reaction exists", + "description": "Response when the permission check is successful", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/codespaces-permissions-check-for-devcontainer" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "$ref": "#/components/examples/codespaces-permissions-check-for-devcontainer" } } } } }, - "201": { - "description": "Reaction created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "category": "reactions", - "subcategory": null + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/repos/{owner}/{repo}/secret-scanning/alerts": { + "/repos/{owner}/{repo}/codespaces/secrets": { "get": { - "summary": "List secret scanning alerts for a repository", - "description": "Lists all secret scanning alerts for a private repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nGitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint.", + "summary": "List repository secrets", + "description": "Lists all development environment secrets available in a repository without revealing their encrypted\nvalues.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "secret-scanning" + "codespaces" ], - "operationId": "secret-scanning/list-alerts-for-repo", + "operationId": "codespaces/list-repo-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets" }, "parameters": [ { @@ -39917,32 +42046,75 @@ "$ref": "#/components/parameters/repo" }, { - "name": "state", - "in": "query", - "description": "Set to `open` or `resolved` to only list secret scanning alerts in a specific state.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "open", - "resolved" - ] - } + "$ref": "#/components/parameters/per-page" }, { - "name": "secret_type", - "in": "query", - "description": "A comma separated list of secret types to return. By default all secret types are returned. See \"[About secret scanning for private repositories](https://docs.github.com/code-security/secret-security/about-secret-scanning#about-secret-scanning-for-private-repositories)\" for a complete list of secret types (API slug).", - "required": false, - "schema": { - "type": "string" + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repo-codespaces-secret" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repo-codespaces-secret-paginated" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "codespaces", + "subcategory": "repository-secrets" + } + } + }, + "/repos/{owner}/{repo}/codespaces/secrets/public-key": { + "get": { + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to\nencrypt a secret before you can create or update secrets.\n\nIf the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/get-repo-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key" + }, + "parameters": [ { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -39951,48 +42123,36 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/secret-scanning-alert" - } + "$ref": "#/components/schemas/codespaces-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/secret-scanning-alert-list" + "$ref": "#/components/examples/codespaces-public-key" } } } } - }, - "404": { - "description": "Repository is public or secret scanning is disabled for the repository" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "secret-scanning", - "subcategory": null + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "repository-secrets" } } }, - "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": { "get": { - "summary": "Get a secret scanning alert", - "description": "Gets a single secret scanning alert detected in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nGitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint.", + "summary": "Get a repository secret", + "description": "Gets a single repository development environment secret without revealing its encrypted value.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "secret-scanning" + "codespaces" ], - "operationId": "secret-scanning/get-alert", + "operationId": "codespaces/get-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/secret-scanning#get-a-secret-scanning-alert" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-secret" }, "parameters": [ { @@ -40002,7 +42162,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -40011,43 +42171,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/secret-scanning-alert" + "$ref": "#/components/schemas/repo-codespaces-secret" }, "examples": { "default": { - "$ref": "#/components/examples/secret-scanning-alert-open" + "$ref": "#/components/examples/repo-codespaces-secret" } } } } - }, - "404": { - "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "secret-scanning", - "subcategory": null + "category": "codespaces", + "subcategory": "repository-secrets" } }, - "patch": { - "summary": "Update a secret scanning alert", - "description": "Updates the status of a secret scanning alert in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nGitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint.", - "operationId": "secret-scanning/update-alert", + "put": { + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The associated user must be a repository admin.", "tags": [ - "secret-scanning" + "codespaces" ], + "operationId": "codespaces/create-or-update-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/secret-scanning#update-a-secret-scanning-alert" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#create-or-update-a-repository-secret" }, "parameters": [ { @@ -40057,80 +42208,111 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "state": { - "$ref": "#/components/schemas/secret-scanning-alert-state" + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" }, - "resolution": { - "$ref": "#/components/schemas/secret-scanning-alert-resolution" + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." } - }, - "required": [ - "state" - ] + } }, - "example": { - "state": "resolved", - "resolution": "false_positive" + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } } } } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/secret-scanning-alert" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/secret-scanning-alert-resolved" + "value": null } } } } }, - "404": { - "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" + "204": { + "description": "Response when updating a secret" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "codespaces", + "subcategory": "repository-secrets" + } + }, + "delete": { + "summary": "Delete a repository secret", + "description": "Deletes a development environment secret in a repository using the secret name.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The associated user must be a repository admin.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/delete-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/repository-secrets#delete-a-repository-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "422": { - "description": "State does not match the resolution" + { + "$ref": "#/components/parameters/repo" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + { + "$ref": "#/components/parameters/secret-name" + } + ], + "responses": { + "204": { + "description": "Response" } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "previews": [ - - ], - "category": "secret-scanning" + "enabledForGitHubApps": true, + "category": "codespaces", + "subcategory": "repository-secrets" } } }, - "/repos/{owner}/{repo}/stargazers": { + "/repos/{owner}/{repo}/collaborators": { "get": { - "summary": "List stargazers", - "description": "Lists the people that have starred the repository.\n\nYou can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "summary": "List repository collaborators", + "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\nThe `permissions` hash returned in the response contains the base role permissions of the collaborator. The `role_name` is the highest role assigned to the collaborator after considering all sources of grants, including: repo, teams, organization, and enterprise.\nThere is presently not a way to differentiate between an organization level grant and a repository level grant from this endpoint response.\n\nTeam members will include the members of child teams.\n\nThe authenticated user must have write, maintain, or admin privileges on the repository to use this endpoint. For organization-owned repositories, the authenticated user needs to be a member of the organization.\nOAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint.", "tags": [ - "activity" + "repos" ], - "operationId": "activity/list-stargazers-for-repo", + "operationId": "repos/list-collaborators", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-stargazers" + "url": "https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators" }, "parameters": [ { @@ -40139,6 +42321,37 @@ { "$ref": "#/components/parameters/repo" }, + { + "name": "affiliation", + "description": "Filter collaborators returned by their affiliation. `outside` means all outside collaborators of an organization-owned repository. `direct` means all collaborators with permissions to an organization-owned repository, regardless of organization membership status. `all` means all collaborators the authenticated user can see.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "outside", + "direct", + "all" + ], + "default": "all" + } + }, + { + "name": "permission", + "description": "Filter collaborators by the permissions they have on the repository. If not specified, all collaborators will be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + } + }, { "$ref": "#/components/parameters/per-page" }, @@ -40152,27 +42365,14 @@ "content": { "application/json": { "schema": { - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/stargazer" - } - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/collaborator" + } }, "examples": { - "default-response": { - "$ref": "#/components/examples/simple-user-items-default-response" - }, - "alternative-response-with-star-creation-timestamps": { - "$ref": "#/components/examples/stargazer-items-alternative-response-with-star-creation-timestamps" + "default": { + "$ref": "#/components/examples/collaborator-items" } } } @@ -40183,32 +42383,29 @@ } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "starring" + "category": "collaborators", + "subcategory": "collaborators" } } }, - "/repos/{owner}/{repo}/stats/code_frequency": { + "/repos/{owner}/{repo}/collaborators/{username}": { "get": { - "summary": "Get the weekly commit activity", - "description": "Returns a weekly aggregate of the number of additions and deletions pushed to a repository.", + "summary": "Check if a user is a repository collaborator", + "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\n\nTeam members will include the members of child teams.\n\nThe authenticated user must have push access to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint.", "tags": [ "repos" ], - "operationId": "repos/get-code-frequency-stats", + "operationId": "repos/check-collaborator", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-the-weekly-commit-activity" + "url": "https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator" }, "parameters": [ { @@ -40216,56 +42413,36 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "description": "Returns a weekly aggregate of the number of additions and deletions pushed to a repository.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-frequency-stat" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-frequency-stat-items" - } - } - } - } - }, - "202": { - "$ref": "#/components/responses/accepted" - }, "204": { - "$ref": "#/components/responses/no_content" + "description": "Response if user is a collaborator" + }, + "404": { + "description": "Not Found if user is not a collaborator" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statistics" + "category": "collaborators", + "subcategory": "collaborators" } - } - }, - "/repos/{owner}/{repo}/stats/commit_activity": { - "get": { - "summary": "Get the last year of commit activity", - "description": "Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`.", + }, + "put": { + "summary": "Add a repository collaborator", + "description": "Add a user to a repository with a specified level of access. If the repository is owned by an organization, this API does not add the user to the organization - a user that has repository access without being an organization member is called an \"outside collaborator\" (if they are not an Enterprise Managed User) or a \"repository collaborator\" if they are an Enterprise Managed User. These users are exempt from some organization policies - see \"[Adding outside collaborators to repositories](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization)\" to learn more about these collaborator types.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications).\n\nAdding an outside collaborator may be restricted by enterprise and organization administrators. For more information, see \"[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)\" and \"[Setting permissions for adding outside collaborators](https://docs.github.com/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators)\" for organization settings.\n\nFor more information on permission levels, see \"[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)\". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the role being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:\n\n```\nCannot assign {member} permission of {role name}\n```\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"\n\nThe invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations).\n\nFor Enterprise Managed Users, this endpoint does not send invitations - these users are automatically added to organizations and repositories. Enterprise Managed Users can only be added to organizations and repositories within their enterprise.\n\n**Updating an existing collaborator's permission level**\n\nThe endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed.\n\n**Rate limits**\n\nYou are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.", "tags": [ "repos" ], - "operationId": "repos/get-commit-activity-stats", + "operationId": "repos/add-collaborator", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-the-last-year-of-commit-activity" + "url": "https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator" }, "parameters": [ { @@ -40273,56 +42450,129 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/username" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any.", + "default": "push" + } + } + }, + "examples": { + "new-invitation-is-created": { + "summary": "Add a collaborator with triage permissions", + "value": { + "permission": "triage" + } + } + } + } + } + }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when a new invitation is created", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit-activity" - } + "$ref": "#/components/schemas/repository-invitation" }, "examples": { - "default": { - "$ref": "#/components/examples/commit-activity-items" + "new-invitation-is-created": { + "$ref": "#/components/examples/repository-invitation-response-when-a-new-invitation-is-created" } } } } }, - "202": { - "$ref": "#/components/responses/accepted" + "204": { + "description": "Response when:\n- an existing collaborator is added as a collaborator\n- an organization member is added as an individual collaborator\n- an existing team member (whose team is also a repository collaborator) is added as an individual collaborator" + }, + "422": { + "description": "Response when:\n- validation failed, or the endpoint has been spammed\n- an Enterprise Managed User (EMU) account was invited to a repository in an enterprise with personal user accounts", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/validation-error" + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "collaborators", + "subcategory": "collaborators" + } + }, + "delete": { + "summary": "Remove a repository collaborator", + "description": "Removes a collaborator from a repository.\n\nTo use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal.\n\nThis endpoint also:\n- Cancels any outstanding invitations sent by the collaborator\n- Unassigns the user from any issues\n- Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories.\n- Unstars the repository\n- Updates access permissions to packages\n\nRemoving a user as a collaborator has the following effects on forks:\n - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork.\n - If the user had their own fork of the repository, the fork will be deleted.\n - If the user still has read access to the repository, open pull requests by this user from a fork will be denied.\n\n> [!NOTE]\n> A user can still have access to the repository through organization permissions like base repository permissions.\n\nAlthough the API responds immediately, the additional permission updates might take some extra time to complete in the background.\n\nFor more information on fork permissions, see \"[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)\".", + "tags": [ + "repos" + ], + "operationId": "repos/remove-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/collaborators/collaborators#remove-a-repository-collaborator" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { "204": { - "$ref": "#/components/responses/no_content" + "description": "No Content when collaborator was removed from the repository." + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statistics" + "category": "collaborators", + "subcategory": "collaborators" } } }, - "/repos/{owner}/{repo}/stats/contributors": { + "/repos/{owner}/{repo}/collaborators/{username}/permission": { "get": { - "summary": "Get all contributor commit activity", - "description": "\nReturns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information:\n\n* `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time).\n* `a` - Number of additions\n* `d` - Number of deletions\n* `c` - Number of commits", + "summary": "Get repository permissions for a user", + "description": "Checks the repository permission and role of a collaborator.\n\nThe `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the\n`maintain` role is mapped to `write` and the `triage` role is mapped to `read`.\nThe `role_name` attribute provides the name of the assigned role, including custom roles. The\n`permission` can also be used to determine which base level of access the collaborator has to the repository.\n\nThe calculated permissions are the highest role assigned to the collaborator after considering all sources of grants, including: repo, teams, organization, and enterprise.\nThere is presently not a way to differentiate between an organization level grant and a repository level grant from this endpoint response.", "tags": [ "repos" ], - "operationId": "repos/get-contributors-stats", + "operationId": "repos/get-collaborator-permission-level", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-all-contributor-commit-activity" + "url": "https://docs.github.com/rest/collaborators/collaborators#get-repository-permissions-for-a-user" }, "parameters": [ { @@ -40330,56 +42580,50 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/username" } ], "responses": { "200": { - "description": "* `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time).\n* `a` - Number of additions\n* `d` - Number of deletions\n* `c` - Number of commits", + "description": "if user has admin permissions", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/contributor-activity" - } + "$ref": "#/components/schemas/repository-collaborator-permission" }, "examples": { - "default": { - "$ref": "#/components/examples/contributor-activity-items" + "response-if-user-has-admin-permissions": { + "$ref": "#/components/examples/repository-collaborator-permission-response-if-user-has-admin-permissions" } } } } }, - "202": { - "$ref": "#/components/responses/accepted" - }, - "204": { - "$ref": "#/components/responses/no_content" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statistics" + "category": "collaborators", + "subcategory": "collaborators" } } }, - "/repos/{owner}/{repo}/stats/participation": { + "/repos/{owner}/{repo}/comments": { "get": { - "summary": "Get the weekly commit count", - "description": "Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`.\n\nThe array order is oldest week (index 0) to most recent week.", + "summary": "List commit comments for a repository", + "description": "Lists the commit comments for a specified repository. Comments are ordered by ascending ID.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ "repos" ], - "operationId": "repos/get-participation-stats", + "operationId": "repos/list-commit-comments-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-the-weekly-commit-count" + "url": "https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository" }, "parameters": [ { @@ -40387,50 +42631,58 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "The array order is oldest week (index 0) to most recent week.", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/participation-stats" + "type": "array", + "items": { + "$ref": "#/components/schemas/commit-comment" + } }, "examples": { "default": { - "$ref": "#/components/examples/participation-stats" + "$ref": "#/components/examples/commit-comment-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statistics" + "category": "commits", + "subcategory": "comments" } } }, - "/repos/{owner}/{repo}/stats/punch_card": { + "/repos/{owner}/{repo}/comments/{comment_id}": { "get": { - "summary": "Get the hourly commit count for each day", - "description": "Each array contains the day number, hour number, and number of commits:\n\n* `0-6`: Sunday - Saturday\n* `0-23`: Hour of day\n* Number of commits\n\nFor example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.", + "summary": "Get a commit comment", + "description": "Gets a specified commit comment.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ "repos" ], - "operationId": "repos/get-punch-card-stats", + "operationId": "repos/get-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-the-hourly-commit-count-for-each-day" + "url": "https://docs.github.com/rest/commits/comments#get-a-commit-comment" }, "parameters": [ { @@ -40438,53 +42690,48 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "responses": { "200": { - "description": "For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.", + "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-frequency-stat" - } + "$ref": "#/components/schemas/commit-comment" }, "examples": { "default": { - "$ref": "#/components/examples/code-frequency-stat-items-2" + "$ref": "#/components/examples/commit-comment" } } } } }, - "204": { - "$ref": "#/components/responses/no_content" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statistics" + "category": "commits", + "subcategory": "comments" } - } - }, - "/repos/{owner}/{repo}/statuses/{sha}": { - "post": { - "summary": "Create a commit status", - "description": "Users with push access in a repository can create commit statuses for a given SHA.\n\nNote: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error.", + }, + "patch": { + "summary": "Update a commit comment", + "description": "Updates the contents of a specified commit comment.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ "repos" ], - "operationId": "repos/create-commit-status", + "operationId": "repos/update-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-commit-status" + "url": "https://docs.github.com/rest/commits/comments#update-a-commit-comment" }, "parameters": [ { @@ -40494,105 +42741,72 @@ "$ref": "#/components/parameters/repo" }, { - "name": "sha", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/comment-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "state": { - "type": "string", - "description": "The state of the status. Can be one of `error`, `failure`, `pending`, or `success`.", - "enum": [ - "error", - "failure", - "pending", - "success" - ] - }, - "target_url": { - "type": "string", - "description": "The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. \nFor example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: \n`http://ci.example.com/user/repo/build/sha`" - }, - "description": { - "type": "string", - "description": "A short description of the status." - }, - "context": { + "body": { "type": "string", - "description": "A string label to differentiate this status from the status of other systems. This field is case-insensitive.", - "default": "default" + "description": "The contents of the comment" } }, "required": [ - "state" + "body" ] }, - "example": { - "state": "success", - "target_url": "https://example.com/build/status", - "description": "The build succeeded!", - "context": "continuous-integration/jenkins" + "examples": { + "default": { + "value": { + "body": "Nice change" + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/status" + "$ref": "#/components/schemas/commit-comment" }, "examples": { "default": { - "$ref": "#/components/examples/status" + "$ref": "#/components/examples/commit-comment-2" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "statuses" + "category": "commits", + "subcategory": "comments" } - } - }, - "/repos/{owner}/{repo}/subscribers": { - "get": { - "summary": "List watchers", - "description": "Lists the people watching the specified repository.", + }, + "delete": { + "summary": "Delete a commit comment", + "description": "", "tags": [ - "activity" + "repos" ], - "operationId": "activity/list-watchers-for-repo", + "operationId": "repos/delete-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-watchers" + "url": "https://docs.github.com/rest/commits/comments#delete-a-commit-comment" }, "parameters": [ { @@ -40602,59 +42816,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/comment-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/simple-user-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "watching" + "category": "commits", + "subcategory": "comments" } } }, - "/repos/{owner}/{repo}/subscription": { + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { "get": { - "summary": "Get a repository subscription", - "description": "", + "summary": "List reactions for a commit comment", + "description": "List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment).", "tags": [ - "activity" + "reactions" ], - "operationId": "activity/get-repo-subscription", + "operationId": "reactions/list-for-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#get-a-repository-subscription" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment" }, "parameters": [ { @@ -40662,51 +42853,81 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" + }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a commit comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "if you subscribe to the repository", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-subscription" + "type": "array", + "items": { + "$ref": "#/components/schemas/reaction" + } }, "examples": { - "response-if-you-subscribe-to-the-repository": { - "$ref": "#/components/examples/repository-subscription-response-if-you-subscribe-to-the-repository" + "default": { + "$ref": "#/components/examples/reaction-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "404": { - "description": "Not Found if you don't subscribe to the repository" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } }, - "put": { - "summary": "Set a repository subscription", - "description": "If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely.", + "post": { + "summary": "Create reaction for a commit comment", + "description": "Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment.", "tags": [ - "activity" + "reactions" ], - "operationId": "activity/set-repo-subscription", + "operationId": "reactions/create-for-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#set-a-repository-subscription" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment" }, "parameters": [ { @@ -40714,21 +42935,41 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "subscribed": { - "type": "boolean", - "description": "Determines if notifications should be received from this repository." - }, - "ignored": { - "type": "boolean", - "description": "Determines if all notifications should be blocked from this repository." + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the commit comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": [ + "content" + ] + }, + "examples": { + "default": { + "value": { + "content": "heart" } } } @@ -40737,41 +42978,58 @@ }, "responses": { "200": { - "description": "Response", + "description": "Reaction exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-subscription" + "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/repository-subscription" + "$ref": "#/components/examples/reaction" + } + } + } + } + }, + "201": { + "description": "Reaction created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } - }, + } + }, + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { "delete": { - "summary": "Delete a repository subscription", - "description": "This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription).", + "summary": "Delete a commit comment reaction", + "description": "> [!NOTE]\n> You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`.\n\nDelete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment).", "tags": [ - "activity" + "reactions" ], - "operationId": "activity/delete-repo-subscription", + "operationId": "reactions/delete-for-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#delete-a-repository-subscription" + "url": "https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction" }, "parameters": [ { @@ -40779,6 +43037,12 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" + }, + { + "$ref": "#/components/parameters/reaction-id" } ], "responses": { @@ -40788,26 +43052,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } } }, - "/repos/{owner}/{repo}/tags": { + "/repos/{owner}/{repo}/commits": { "get": { - "summary": "List repository tags", - "description": "", + "summary": "List commits", + "description": "**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n| `verified_at` | `string` | The date the signature was verified by GitHub. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", "tags": [ "repos" ], - "operationId": "repos/list-tags", + "operationId": "repos/list-commits", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-tags" + "url": "https://docs.github.com/rest/commits/commits#list-commits" }, "parameters": [ { @@ -40816,6 +43077,62 @@ { "$ref": "#/components/parameters/repo" }, + { + "name": "sha", + "description": "SHA or branch to start listing commits from. Default: the repository’s default branch (usually `main`).", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "description": "Only commits containing this file path will be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "author", + "description": "GitHub username or email address to use to filter by commit author.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "committer", + "description": "GitHub username or email address to use to filter by commit committer.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "since", + "description": "Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Due to limitations of Git, timestamps must be between 1970-01-01 and 2099-12-31 (inclusive) or unexpected results may be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "until", + "description": "Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Due to limitations of Git, timestamps must be between 1970-01-01 and 2099-12-31 (inclusive) or unexpected results may be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, { "$ref": "#/components/parameters/per-page" }, @@ -40831,12 +43148,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/tag" + "$ref": "#/components/schemas/commit" } }, "examples": { "default": { - "$ref": "#/components/examples/tag-items" + "$ref": "#/components/examples/commit-items" } } } @@ -40846,82 +43163,39 @@ "$ref": "#/components/headers/link" } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null - } - } - }, - "/repos/{owner}/{repo}/tarball/{ref}": { - "get": { - "summary": "Download a repository archive (tar)", - "description": "Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually\n`master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use\nthe `Location` header to make a second `GET` request.\n**Note**: For private repositories, these links are temporary and expire after five minutes.", - "tags": [ - "repos" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#download-a-repository-archive" - }, - "operationId": "repos/download-tarball-archive", - "parameters": [ - { - "$ref": "#/components/parameters/owner" }, - { - "$ref": "#/components/parameters/repo" + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "name": "ref", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "302": { - "description": "Response", - "headers": { - "Location": { - "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", - "schema": { - "type": "string" - } - } - } + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "contents" + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/teams": { + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { "get": { - "summary": "List repository teams", - "description": "", + "summary": "List branches for HEAD commit", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReturns all branches where the given commit SHA is the HEAD, or latest commit for the branch.", "tags": [ "repos" ], - "operationId": "repos/list-teams", + "operationId": "repos/list-branches-for-head-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-teams" + "url": "https://docs.github.com/rest/commits/commits#list-branches-for-head-commit" }, "parameters": [ { @@ -40931,10 +43205,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/commit-sha" } ], "responses": { @@ -40945,45 +43216,43 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/team" + "$ref": "#/components/schemas/branch-short" } }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/branch-short-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/topics": { + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { "get": { - "summary": "Get all repository topics", - "description": "", + "summary": "List commit comments", + "description": "Lists the comments for a specified commit.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ "repos" ], - "operationId": "repos/get-all-topics", + "operationId": "repos/list-comments-for-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-all-repository-topics" + "url": "https://docs.github.com/rest/commits/comments#list-commit-comments" }, "parameters": [ { @@ -40993,10 +43262,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/commit-sha" }, { "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -41005,47 +43277,42 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/topic" + "type": "array", + "items": { + "$ref": "#/components/schemas/commit-comment" + } }, "examples": { "default": { - "$ref": "#/components/examples/topic" + "$ref": "#/components/examples/commit-comment-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "mercy", - "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "commits", + "subcategory": "comments" } }, - "put": { - "summary": "Replace all repository topics", - "description": "", + "post": { + "summary": "Create a commit comment", + "description": "Create a comment for a commit using its `:commit_sha`.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\" and \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ "repos" ], - "operationId": "repos/replace-all-topics", + "operationId": "repos/create-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#replace-all-repository-topics" + "url": "https://docs.github.com/rest/commits/comments#create-a-commit-comment" }, "parameters": [ { @@ -41053,89 +43320,103 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/commit-sha" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "names": { - "type": "array", - "description": "An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters.", - "items": { - "type": "string" - } + "body": { + "type": "string", + "description": "The contents of the comment." + }, + "path": { + "type": "string", + "description": "Relative path of the file to comment on." + }, + "position": { + "type": "integer", + "description": "Line index in the diff to comment on." + }, + "line": { + "type": "integer", + "description": "**Closing down notice**. Use **position** parameter instead. Line number in the file to comment on." } }, "required": [ - "names" + "body" ] }, - "example": { - "names": [ - "octocat", - "atom", - "electron", - "api" - ] + "examples": { + "default": { + "value": { + "body": "Great stuff", + "path": "file1.txt", + "position": 4, + "line": 1 + } + } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/topic" + "$ref": "#/components/schemas/commit-comment" }, "examples": { "default": { - "$ref": "#/components/examples/topic" + "$ref": "#/components/examples/commit-comment" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/comments/1", + "schema": { + "type": "string" + } + } } }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "$ref": "#/components/responses/forbidden" }, "422": { - "$ref": "#/components/responses/validation_failed_simple" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "mercy", - "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "commits", + "subcategory": "comments" } } }, - "/repos/{owner}/{repo}/traffic/clones": { + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { "get": { - "summary": "Get repository clones", - "description": "Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.", + "summary": "List pull requests associated with a commit", + "description": "Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, it will return merged and open pull requests associated with the commit.\n\nTo list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name.", "tags": [ "repos" ], - "operationId": "repos/get-clones", + "operationId": "repos/list-pull-requests-associated-with-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-repository-clones" + "url": "https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit" }, "parameters": [ { @@ -41145,7 +43426,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per" + "$ref": "#/components/parameters/commit-sha" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -41154,42 +43441,47 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/clone-traffic" + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-simple" + } }, "examples": { "default": { - "$ref": "#/components/examples/clone-traffic" + "$ref": "#/components/examples/pull-request-simple-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "traffic" + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/traffic/popular/paths": { + "/repos/{owner}/{repo}/commits/{ref}": { "get": { - "summary": "Get top referral paths", - "description": "Get the top 10 popular contents over the last 14 days.", + "summary": "Get a commit", + "description": "Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint.\n\n> [!NOTE]\n> If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\" Pagination query parameters are not supported for these media types.\n\n- **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code.\n- **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code.\n- **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n| `verified_at` | `string` | The date the signature was verified by GitHub. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", "tags": [ "repos" ], - "operationId": "repos/get-top-paths", + "operationId": "repos/get-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-top-referral-paths" + "url": "https://docs.github.com/rest/commits/commits#get-a-commit" }, "parameters": [ { @@ -41197,6 +43489,15 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/commit-ref" } ], "responses": { @@ -41205,45 +43506,51 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/content-traffic" - } + "$ref": "#/components/schemas/commit" }, "examples": { "default": { - "$ref": "#/components/examples/content-traffic-items" + "$ref": "#/components/examples/commit" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "traffic" + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/traffic/popular/referrers": { + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { "get": { - "summary": "Get top referral sources", - "description": "Get the top 10 referrers over the last 14 days.", + "summary": "List check runs for a Git reference", + "description": "Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name.\n\n> [!NOTE]\n> The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nIf there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository.", "tags": [ - "repos" + "checks" ], - "operationId": "repos/get-top-referrers", + "operationId": "checks/list-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-top-referral-sources" + "url": "https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference" }, "parameters": [ { @@ -41251,6 +43558,43 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/commit-ref" + }, + { + "$ref": "#/components/parameters/check-name" + }, + { + "$ref": "#/components/parameters/status" + }, + { + "name": "filter", + "description": "Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "latest", + "all" + ], + "default": "latest" + } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "name": "app_id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } } ], "responses": { @@ -41259,45 +43603,56 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/referrer-traffic" + "type": "object", + "required": [ + "total_count", + "check_runs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "check_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/check-run" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/referrer-traffic-items" + "$ref": "#/components/examples/check-run-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "traffic" + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/traffic/views": { + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { "get": { - "summary": "Get page views", - "description": "Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.", + "summary": "List check suites for a Git reference", + "description": "Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name.\n\n> [!NOTE]\n> The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository.", "tags": [ - "repos" + "checks" ], - "operationId": "repos/get-views", + "operationId": "checks/list-suites-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#get-page-views" + "url": "https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference" }, "parameters": [ { @@ -41307,7 +43662,26 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per" + "$ref": "#/components/parameters/commit-ref" + }, + { + "name": "app_id", + "description": "Filters check suites by GitHub App `id`.", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "$ref": "#/components/parameters/check-name" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -41316,42 +43690,56 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/view-traffic" + "type": "object", + "required": [ + "total_count", + "check_suites" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "check_suites": { + "type": "array", + "items": { + "$ref": "#/components/schemas/check-suite" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/view-traffic" + "$ref": "#/components/examples/check-suite-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": "traffic" + "category": "checks", + "subcategory": "suites" } } }, - "/repos/{owner}/{repo}/transfer": { - "post": { - "summary": "Transfer a repository", - "description": "A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://help.github.com/articles/about-repository-transfers/).", + "/repos/{owner}/{repo}/commits/{ref}/status": { + "get": { + "summary": "Get the combined status for a specific reference", + "description": "Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name.\n\n\nAdditionally, a combined `state` is returned. The `state` is one of:\n\n* **failure** if any of the contexts report as `error` or `failure`\n* **pending** if there are no statuses or a context is `pending`\n* **success** if the latest status for all contexts is `success`", "tags": [ "repos" ], - "operationId": "repos/transfer", + "operationId": "repos/get-combined-status-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#transfer-a-repository" + "url": "https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference" }, "parameters": [ { @@ -41359,79 +43747,56 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/commit-ref" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_owner": { - "type": "string", - "description": "The username or organization name the repository will be transferred to." - }, - "team_ids": { - "type": "array", - "description": "ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.", - "items": { - "type": "integer" - } - } - }, - "required": [ - "new_owner" - ] - }, - "example": { - "new_owner": "github", - "team_ids": [ - 12, - 345 - ] - } - } - } - }, "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/combined-commit-status" }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository" + "$ref": "#/components/examples/combined-commit-status" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "category": "commits", + "subcategory": "statuses" } } }, - "/repos/{owner}/{repo}/vulnerability-alerts": { + "/repos/{owner}/{repo}/commits/{ref}/statuses": { "get": { - "summary": "Check if vulnerability alerts are enabled for a repository", - "description": "Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)\".", + "summary": "List commit statuses for a reference", + "description": "Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one.\n\nThis resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`.", "tags": [ "repos" ], - "operationId": "repos/check-vulnerability-alerts", + "operationId": "repos/list-commit-statuses-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository" + "url": "https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference" }, "parameters": [ { @@ -41439,40 +43804,64 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/commit-ref" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response if repository is enabled with vulnerability alerts" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/status" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/status-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "404": { - "description": "Not Found if repository is not enabled with vulnerability alerts" + "301": { + "$ref": "#/components/responses/moved_permanently" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "dorian", - "note": "Enabling and disabling dependency alerts for a repository using the REST API is currently available for developers to preview. To access these new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.dorian-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "enabledForGitHubApps": true, + "category": "commits", + "subcategory": "statuses" } - }, - "put": { - "summary": "Enable vulnerability alerts", - "description": "Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)\".", + } + }, + "/repos/{owner}/{repo}/community/profile": { + "get": { + "summary": "Get community profile metrics", + "description": "Returns all community profile metrics for a repository. The repository cannot be a fork.\n\nThe returned metrics include an overall health score, the repository description, the presence of documentation, the\ndetected code of conduct, the detected license, and the presence of ISSUE\\_TEMPLATE, PULL\\_REQUEST\\_TEMPLATE,\nREADME, and CONTRIBUTING files.\n\nThe `health_percentage` score is defined as a percentage of how many of\nthe recommended community health files are present. For more information, see\n\"[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories).\"\n\n`content_reports_enabled` is only returned for organization-owned repositories.", "tags": [ "repos" ], - "operationId": "repos/enable-vulnerability-alerts", + "operationId": "repos/get-community-profile-metrics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#enable-vulnerability-alerts" + "url": "https://docs.github.com/rest/metrics/community#get-community-profile-metrics" }, "parameters": [ { @@ -41483,34 +43872,41 @@ } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/community-profile" + }, + "examples": { + "default": { + "$ref": "#/components/examples/community-profile" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "dorian", - "note": "Enabling and disabling dependency alerts for a repository using the REST API is currently available for developers to preview. To access these new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.dorian-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "metrics", + "subcategory": "community" } - }, - "delete": { - "summary": "Disable vulnerability alerts", - "description": "Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)\".", + } + }, + "/repos/{owner}/{repo}/compare/{basehead}": { + "get": { + "summary": "Compare two commits", + "description": "Compares two commits against one another. You can compare refs (branches or tags) and commit SHAs in the same repository, or you can compare refs and commit SHAs that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see \"[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories).\"\n\nThis endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.diff`**: Returns the diff of the commit.\n- **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property.\n\nThe API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file.\n\nWhen calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison.\n\n**Working with large comparisons**\n\nTo process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination:\n\n- The list of changed files is only shown on the first page of results, and it includes up to 300 changed files for the entire comparison.\n- The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results.\n\nFor more information on working with pagination, see \"[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api).\"\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n| `verified_at` | `string` | The date the signature was verified by GitHub. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", "tags": [ "repos" ], - "operationId": "repos/disable-vulnerability-alerts", + "operationId": "repos/compare-commits", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#disable-vulnerability-alerts" + "url": "https://docs.github.com/rest/commits/commits#compare-two-commits" }, "parameters": [ { @@ -41518,40 +43914,70 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "name": "basehead", + "description": "The base branch and head branch to compare. This parameter expects the format `BASE...HEAD`. Both must be branch names in `repo`. To compare with a branch that exists in a different repository in the same network as `repo`, the `basehead` parameter expects the format `USERNAME:BASE...USERNAME:HEAD`.", + "in": "path", + "required": true, + "x-multi-segment": true, + "schema": { + "type": "string" + } } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/commit-comparison" + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-comparison" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "dorian", - "note": "Enabling and disabling dependency alerts for a repository using the REST API is currently available for developers to preview. To access these new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.dorian-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/zipball/{ref}": { + "/repos/{owner}/{repo}/contents/{path}": { "get": { - "summary": "Download a repository archive (zip)", - "description": "Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually\n`master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use\nthe `Location` header to make a second `GET` request.\n**Note**: For private repositories, these links are temporary and expire after five minutes.", + "summary": "Get repository content", + "description": "Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks.\n- **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup).\n- **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects.\n\nIf the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their \"type\" specified as \"file\". Logically, the value _should_ be \"submodule\". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as \"submodule\".\n\nIf the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself.\n\nIf the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links[\"git\"]`) and the github.com URLs (`html_url` and `_links[\"html\"]`) will have null values.\n\n**Notes**:\n\n- To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree).\n- This API has an upper limit of 1,000 files for a directory. If you need to retrieve\nmore files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree).\n- Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download.\n- If the requested file's size is:\n - 1 MB or smaller: All features of this endpoint are supported.\n - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty\nstring and the `encoding` field will be `\"none\"`. To get the contents of these larger files, use the `raw` media type.\n - Greater than 100 MB: This endpoint is not supported.", "tags": [ "repos" ], + "operationId": "repos/get-content", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#download-a-repository-archive" + "url": "https://docs.github.com/rest/repos/contents#get-repository-content" }, - "operationId": "repos/download-zipball-archive", "parameters": [ { "$ref": "#/components/parameters/owner" @@ -41560,131 +43986,285 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ref", + "name": "path", + "description": "path parameter", "in": "path", "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + }, + { + "name": "ref", + "description": "The name of the commit/branch/tag. Default: the repository’s default branch.", + "in": "query", + "required": false, "schema": { "type": "string" } } ], "responses": { - "302": { + "200": { "description": "Response", - "headers": { - "Location": { - "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", + "content": { + "application/vnd.github.object": { "schema": { - "type": "string" + "$ref": "#/components/schemas/content-tree" + }, + "examples": { + "response-if-content-is-a-file": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-file" + }, + "response-if-content-is-a-directory": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-directory-object" + } + } + }, + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/content-directory" + }, + { + "$ref": "#/components/schemas/content-file" + }, + { + "$ref": "#/components/schemas/content-symlink" + }, + { + "$ref": "#/components/schemas/content-submodule" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "array": "#/components/schemas/content-directory", + "file": "#/components/schemas/content-file", + "symlink": "#/components/schemas/content-symlink", + "submodule": "#/components/schemas/content-submodule" + } + } + }, + "examples": { + "response-if-content-is-a-file": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-file" + }, + "response-if-content-is-a-directory": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-directory" + }, + "response-if-content-is-a-symlink": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-symlink" + }, + "response-if-content-is-a-submodule": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-submodule" + } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "302": { + "$ref": "#/components/responses/found" + }, + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], "category": "repos", "subcategory": "contents" } - } - }, - "/repos/{template_owner}/{template_repo}/generate": { - "post": { - "summary": "Create a repository using a template", - "description": "Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`.\n\n**OAuth scope requirements**\n\nWhen using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include:\n\n* `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository.\n* `repo` scope to create a private repository", + }, + "put": { + "summary": "Create or update file contents", + "description": "Creates a new file or replaces an existing file in a repository.\n\n> [!NOTE]\n> If you use this endpoint and the \"[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)\" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory.", "tags": [ "repos" ], - "operationId": "repos/create-using-template", + "operationId": "repos/create-or-update-file-contents", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-repository-using-a-template" + "url": "https://docs.github.com/rest/repos/contents#create-or-update-file-contents" }, "parameters": [ { - "name": "template_owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/owner" }, { - "name": "template_repo", + "$ref": "#/components/parameters/repo" + }, + { + "name": "path", + "description": "path parameter", "in": "path", "required": true, "schema": { "type": "string" - } + }, + "x-multi-segment": true } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "owner": { + "message": { "type": "string", - "description": "The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization." + "description": "The commit message." }, - "name": { + "content": { "type": "string", - "description": "The name of the new repository." + "description": "The new file content, using Base64 encoding." }, - "description": { + "sha": { "type": "string", - "description": "A short description of the new repository." + "description": "**Required if you are updating a file**. The blob SHA of the file being replaced." }, - "include_all_branches": { - "type": "boolean", - "description": "Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`.", - "default": false + "branch": { + "type": "string", + "description": "The branch name. Default: the repository’s default branch." }, - "private": { - "type": "boolean", - "description": "Either `true` to create a new private repository or `false` to create a new public one.", - "default": false - } - }, - "required": [ - "name" - ] - }, - "example": { - "owner": "octocat", - "name": "Hello-World", - "description": "This is your first repository", - "include_all_branches": false, - "private": false + "committer": { + "type": "object", + "description": "The person that committed the file. Default: the authenticated user.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted." + }, + "email": { + "type": "string", + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted." + }, + "date": { + "type": "string", + "example": "\"2013-01-05T13:13:22+05:00\"" + } + }, + "required": [ + "name", + "email" + ] + }, + "author": { + "type": "object", + "description": "The author of the file. Default: The `committer` or the authenticated user if you omit `committer`.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted." + }, + "email": { + "type": "string", + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted." + }, + "date": { + "type": "string", + "example": "\"2013-01-15T17:13:22+05:00\"" + } + }, + "required": [ + "name", + "email" + ] + } + }, + "required": [ + "message", + "content" + ] + }, + "examples": { + "example-for-creating-a-file": { + "summary": "Example for creating a file", + "value": { + "message": "my commit message", + "committer": { + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "content": "bXkgbmV3IGZpbGUgY29udGVudHM=" + } + }, + "example-for-updating-a-file": { + "summary": "Example for updating a file", + "value": { + "message": "a new commit message", + "committer": { + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "content": "bXkgdXBkYXRlZCBmaWxlIGNvbnRlbnRz", + "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3" + } + } } } } }, "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/file-commit" + }, + "examples": { + "example-for-updating-a-file": { + "$ref": "#/components/examples/file-commit-example-for-updating-a-file" + } + } + } + } + }, "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository" + "$ref": "#/components/schemas/file-commit" }, "examples": { - "default": { - "$ref": "#/components/examples/repository-3" + "example-for-creating-a-file": { + "$ref": "#/components/examples/file-commit-example-for-creating-a-file" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World", + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { "schema": { - "type": "string" + "oneOf": [ + { + "$ref": "#/components/schemas/basic-error" + }, + { + "$ref": "#/components/schemas/repository-rule-violation-error" + } + ] } } } @@ -41692,99 +44272,519 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "baptiste", - "note": "Creating and using repository templates is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n\n```shell\napplication/vnd.github.baptiste-preview+json\n```" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" + } + }, + "delete": { + "summary": "Delete a file", + "description": "Deletes a file in a repository.\n\nYou can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author.\n\nThe `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used.\n\nYou must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code.\n\n> [!NOTE]\n> If you use this endpoint and the \"[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)\" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-file", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/contents#delete-a-file" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "path", + "description": "path parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The commit message." + }, + "sha": { + "type": "string", + "description": "The blob SHA of the file being deleted." + }, + "branch": { + "type": "string", + "description": "The branch name. Default: the repository’s default branch" + }, + "committer": { + "type": "object", + "description": "object containing information about the committer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + } + } + }, + "author": { + "type": "object", + "description": "object containing information about the author.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + } + } + } + }, + "required": [ + "message", + "sha" + ] + }, + "examples": { + "default": { + "value": { + "message": "my commit message", + "committer": { + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "sha": "329688480d39049927147c162b9d2deaf885005f" + } + } + } } - ], + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/file-commit" + }, + "examples": { + "default": { + "$ref": "#/components/examples/file-commit" + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "repos", - "subcategory": null + "subcategory": "contents" } } }, - "/repositories": { + "/repos/{owner}/{repo}/contributors": { "get": { - "summary": "List public repositories", - "description": "Lists all public repositories in the order that they were created.\n\nNote:\n- For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise.\n- Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories.", + "summary": "List repository contributors", + "description": "Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance.\n\nGitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information.", "tags": [ "repos" ], - "operationId": "repos/list-public", + "operationId": "repos/list-contributors", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-public-repositories" + "url": "https://docs.github.com/rest/repos/repos#list-repository-contributors" }, "parameters": [ { - "$ref": "#/components/parameters/since-repo" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "anon", + "description": "Set to `1` or `true` to include anonymous contributors in results.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Response", + "description": "If repository contains content", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/contributor" } }, "examples": { - "default": { - "$ref": "#/components/examples/public-repository-items" + "response-if-repository-contains-content": { + "$ref": "#/components/examples/contributor-items-response-if-repository-contains-content" } } } }, "headers": { "Link": { - "example": "; rel=\"next\"", + "$ref": "#/components/headers/link" + } + } + }, + "204": { + "description": "Response if repository is empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/dependabot/alerts": { + "get": { + "summary": "List Dependabot alerts for a repository", + "description": "OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-alerts-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-states" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-severities" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-ecosystems" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-packages" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-manifests" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-epss" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-has" + }, + { + "$ref": "#/components/parameters/dependabot-alert-scope" + }, + { + "$ref": "#/components/parameters/dependabot-alert-sort" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "deprecated": true, + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { "schema": { - "type": "string" + "type": "array", + "items": { + "$ref": "#/components/schemas/dependabot-alert" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/dependabot-alerts-for-repository" + } } } } }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "dependabot", + "subcategory": "alerts" + } + } + }, + "/repos/{owner}/{repo}/dependabot/alerts/{alert_number}": { + "get": { + "summary": "Get a Dependabot alert", + "description": "OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-alert", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/alerts#get-a-dependabot-alert" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/dependabot-alert-number" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/dependabot-alert-open" + } + } + } + } }, "304": { "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "previews": [], + "category": "dependabot", + "subcategory": "alerts" + } + }, + "patch": { + "summary": "Update a Dependabot alert", + "description": "The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see \"[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts).\"\n\nOAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/update-alert", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/alerts#update-a-dependabot-alert" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/dependabot-alert-number" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "The state of the Dependabot alert.\nA `dismissed_reason` must be provided when setting the state to `dismissed`.", + "enum": [ + "dismissed", + "open" + ] + }, + "dismissed_reason": { + "type": "string", + "description": "**Required when `state` is `dismissed`.** A reason for dismissing the alert.", + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk" + ] + }, + "dismissed_comment": { + "type": "string", + "description": "An optional comment associated with dismissing the alert.", + "maxLength": 280 + } + }, + "required": [ + "state" + ], + "additionalProperties": false + }, + "examples": { + "default": { + "value": { + "state": "dismissed", + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/dependabot-alert-dismissed" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "dependabot", + "subcategory": "alerts" } } }, - "/repositories/{repository_id}/environments/{environment_name}/secrets": { + "/repos/{owner}/{repo}/dependabot/secrets": { "get": { - "summary": "List environment secrets", - "description": "Lists all secrets available in an environment without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "summary": "List repository secrets", + "description": "Lists all secrets available in a repository without revealing their encrypted\nvalues.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "actions" + "dependabot" ], - "operationId": "actions/list-environment-secrets", + "operationId": "dependabot/list-repo-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#list-environment-secrets" + "url": "https://docs.github.com/rest/dependabot/secrets#list-repository-secrets" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" @@ -41811,14 +44811,14 @@ "secrets": { "type": "array", "items": { - "$ref": "#/components/schemas/actions-secret" + "$ref": "#/components/schemas/dependabot-secret" } } } }, "examples": { "default": { - "$ref": "#/components/examples/actions-secret-paginated" + "$ref": "#/components/examples/dependabot-secret-paginated" } } } @@ -41833,32 +44833,29 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", + "category": "dependabot", "subcategory": "secrets" } } }, - "/repositories/{repository_id}/environments/{environment_name}/secrets/public-key": { + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { "get": { - "summary": "Get an environment public key", - "description": "Get the public key for an environment, which you need to encrypt environment secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to\nencrypt a secret before you can create or update secrets. Anyone with read access\nto the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private.", "tags": [ - "actions" + "dependabot" ], - "operationId": "actions/get-environment-public-key", + "operationId": "dependabot/get-repo-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-an-environment-public-key" + "url": "https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -41867,11 +44864,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-public-key" + "$ref": "#/components/schemas/dependabot-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/actions-public-key" + "$ref": "#/components/examples/dependabot-public-key" } } } @@ -41881,32 +44878,29 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", + "category": "dependabot", "subcategory": "secrets" } } }, - "/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": { + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { "get": { - "summary": "Get an environment secret", - "description": "Gets a single environment secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "summary": "Get a repository secret", + "description": "Gets a single repository secret without revealing its encrypted value.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "actions" + "dependabot" ], - "operationId": "actions/get-environment-secret", + "operationId": "dependabot/get-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#get-an-environment-secret" + "url": "https://docs.github.com/rest/dependabot/secrets#get-a-repository-secret" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/secret-name" @@ -41918,11 +44912,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-secret" + "$ref": "#/components/schemas/dependabot-secret" }, "examples": { "default": { - "$ref": "#/components/examples/actions-secret" + "$ref": "#/components/examples/dependabot-secret" } } } @@ -41932,36 +44926,34 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", + "category": "dependabot", "subcategory": "secrets" } }, "put": { - "summary": "Create or update an environment secret", - "description": "Creates or updates an environment secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use\nthis endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "actions" + "dependabot" ], - "operationId": "actions/create-or-update-environment-secret", + "operationId": "dependabot/create-or-update-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#create-or-update-an-environment-secret" + "url": "https://docs.github.com/rest/dependabot/secrets#create-or-update-a-repository-secret" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -41969,7 +44961,7 @@ "properties": { "encrypted_value": { "type": "string", - "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an environment public key](https://docs.github.com/rest/reference/actions#get-an-environment-public-key) endpoint.", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key) endpoint.", "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" }, "key_id": { @@ -41978,9 +44970,13 @@ } } }, - "example": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678" + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } } } } @@ -41992,6 +44988,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } } } } @@ -42003,30 +45004,27 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", + "category": "dependabot", "subcategory": "secrets" } }, "delete": { - "summary": "Delete an environment secret", - "description": "Deletes a secret in an environment using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "summary": "Delete a repository secret", + "description": "Deletes a secret in a repository using the secret name.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "actions" + "dependabot" ], - "operationId": "actions/delete-environment-secret", + "operationId": "dependabot/delete-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/actions#delete-an-environment-secret" + "url": "https://docs.github.com/rest/dependabot/secrets#delete-a-repository-secret" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/secret-name" @@ -42034,59 +45032,102 @@ ], "responses": { "204": { - "description": "Default response" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "actions", + "category": "dependabot", "subcategory": "secrets" } } }, - "/scim/v2/enterprises/{enterprise}/Groups": { + "/repos/{owner}/{repo}/dependency-graph/compare/{basehead}": { "get": { - "summary": "List provisioned SCIM groups for an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", - "operationId": "enterprise-admin/list-provisioned-groups-enterprise", + "summary": "Get a diff of the dependencies between commits", + "description": "Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits.", "tags": [ - "enterprise-admin" + "dependency-graph" ], + "operationId": "dependency-graph/diff-range", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-provisioned-scim-groups-for-an-enterprise" + "url": "https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" - }, - { - "$ref": "#/components/parameters/start-index" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/count" + "$ref": "#/components/parameters/repo" }, { - "name": "filter", - "description": "filter results", - "in": "query", - "required": false, + "name": "basehead", + "description": "The base and head Git revisions to compare. The Git revisions will be resolved to commit SHAs. Named revisions will be resolved to their corresponding HEAD commits, and an appropriate merge base will be determined. This parameter expects the format `{base}...{head}`.", + "in": "path", + "required": true, "schema": { "type": "string" } }, { - "name": "excludedAttributes", - "description": "attributes to exclude", - "in": "query", - "required": false, - "schema": { - "type": "string" + "$ref": "#/components/parameters/manifest-path" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dependency-graph-diff" + }, + "examples": { + "default": { + "$ref": "#/components/examples/diff-range-response" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/dependency_review_forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "dependency-graph", + "subcategory": "dependency-review" + } + } + }, + "/repos/{owner}/{repo}/dependency-graph/sbom": { + "get": { + "summary": "Export a software bill of materials (SBOM) for a repository.", + "description": "Exports the software bill of materials (SBOM) for a repository in SPDX JSON format.", + "tags": [ + "dependency-graph" + ], + "operationId": "dependency-graph/export-sbom", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -42095,94 +45136,66 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-group-list-enterprise" + "$ref": "#/components/schemas/dependency-graph-spdx-sbom" }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-group-list" + "$ref": "#/components/examples/dependency-graph-export-sbom-response" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "githubCloudOnly": false, + "category": "dependency-graph", + "subcategory": "sboms" } - }, + } + }, + "/repos/{owner}/{repo}/dependency-graph/snapshots": { "post": { - "summary": "Provision a SCIM enterprise group and invite users", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nProvision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to.", - "operationId": "enterprise-admin/provision-and-invite-enterprise-group", + "summary": "Create a snapshot of dependencies for a repository", + "description": "Create a new snapshot of a repository's dependencies.\n\nThe authenticated user must have access to the repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "dependency-graph" ], + "operationId": "dependency-graph/create-repository-snapshot", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#provision-a-scim-enterprise-group-and-invite-users" + "url": "https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "description": "The SCIM schema URIs.", - "items": { - "type": "string" - } - }, - "displayName": { - "type": "string", - "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to." - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The SCIM user ID for a user." - } - }, - "required": [ - "value" - ] - } - } - }, - "required": [ - "schemas", - "displayName" - ] + "$ref": "#/components/schemas/snapshot" }, - "example": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "displayName": "octo-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - }, - { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" - } - ] + "examples": { + "example-of-a-dependency-submission": { + "$ref": "#/components/examples/dependency-graph-create-snapshot-request" + } } } } @@ -42193,11 +45206,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-group" + "type": "object", + "required": [ + "id", + "created_at", + "result", + "message" + ], + "properties": { + "id": { + "type": "integer", + "description": "ID of the created snapshot." + }, + "created_at": { + "type": "string", + "description": "The time at which the snapshot was created." + }, + "result": { + "type": "string", + "description": "Either \"SUCCESS\", \"ACCEPTED\", or \"INVALID\". \"SUCCESS\" indicates that the snapshot was successfully created and the repository's dependencies were updated. \"ACCEPTED\" indicates that the snapshot was successfully created, but the repository's dependencies were not updated. \"INVALID\" indicates that the snapshot was malformed." + }, + "message": { + "type": "string", + "description": "A message providing further details about the result, such as why the dependencies were not updated." + } + } }, "examples": { - "default": { - "$ref": "#/components/examples/scim-enterprise-group" + "example-of-a-dependency-submission": { + "$ref": "#/components/examples/dependency-graph-create-snapshot-success" } } } @@ -42205,43 +45242,78 @@ } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "dependency-graph", + "subcategory": "dependency-submission" } } }, - "/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": { + "/repos/{owner}/{repo}/deployments": { "get": { - "summary": "Get SCIM provisioning information for an enterprise group", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", - "operationId": "enterprise-admin/get-provisioning-information-for-enterprise-group", + "summary": "List deployments", + "description": "Simple filtering of deployments is available via query parameters:", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/list-deployments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise-group" + "url": "https://docs.github.com/rest/deployments/deployments#list-deployments" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/scim-group-id" + "$ref": "#/components/parameters/repo" }, { - "name": "excludedAttributes", - "description": "Attributes to exclude.", + "name": "sha", + "description": "The SHA recorded at creation time.", "in": "query", "required": false, "schema": { - "type": "string" + "type": "string", + "default": "none" + } + }, + { + "name": "ref", + "description": "The name of the ref. This can be a branch, tag, or SHA.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "none" + } + }, + { + "name": "task", + "description": "The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`).", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "none" + } + }, + { + "name": "environment", + "description": "The name of the environment that was deployed to (e.g., `staging` or `production`).", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "none", + "nullable": true } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -42250,317 +45322,314 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-group" + "type": "array", + "items": { + "$ref": "#/components/schemas/deployment" + } }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-group" + "$ref": "#/components/examples/deployment-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "deployments" } }, - "put": { - "summary": "Set SCIM information for a provisioned enterprise group", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nReplaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the [Update an attribute for a SCIM enterprise group](#update-an-attribute-for-a-scim-enterprise-group) endpoint instead.", - "operationId": "enterprise-admin/set-information-for-provisioned-enterprise-group", + "post": { + "summary": "Create a deployment", + "description": "Deployments offer a few configurable parameters with certain defaults.\n\nThe `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them\nbefore we merge a pull request.\n\nThe `environment` parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is `production`.\n\nThe `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.\n\nBy default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success`\nstate. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.\n\nThe `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.\n\nThe `task` parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.\n\nMerged branch response:\n\nYou will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:\n* Auto-merge option is enabled in the repository\n* Topic branch does not include the latest changes on the base branch, which is `master` in the response example\n* There are no merge conflicts\n\nIf there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.\n\nMerge conflict response:\n\nThis error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't\nbe merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts.\n\nFailed commit status checks:\n\nThis error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success`\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of `success`.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/create-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-group" + "url": "https://docs.github.com/rest/deployments/deployments#create-a-deployment" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/scim-group-id" + "$ref": "#/components/parameters/repo" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "schemas": { + "ref": { + "type": "string", + "description": "The ref to deploy. This can be a branch, tag, or SHA." + }, + "task": { + "type": "string", + "description": "Specifies a task to execute (e.g., `deploy` or `deploy:migrations`).", + "default": "deploy" + }, + "auto_merge": { + "type": "boolean", + "description": "Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch.", + "default": true + }, + "required_contexts": { "type": "array", - "description": "The SCIM schema URIs.", + "description": "The [status](https://docs.github.com/rest/commits/statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts.", "items": { "type": "string" } }, - "displayName": { + "payload": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "string", + "description": "JSON payload with extra information about the deployment.", + "default": "" + } + ] + }, + "environment": { "type": "string", - "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to." + "description": "Name for the target deployment environment (e.g., `production`, `staging`, `qa`).", + "default": "production" }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The SCIM user ID for a user." - } - }, - "required": [ - "value" - ] - } + "description": { + "type": "string", + "description": "Short description of the deployment.", + "default": "", + "nullable": true + }, + "transient_environment": { + "type": "boolean", + "description": "Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false`", + "default": false + }, + "production_environment": { + "type": "boolean", + "description": "Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise." } }, "required": [ - "schemas", - "displayName" + "ref" ] }, - "example": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "displayName": "octo-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - }, - { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" + "examples": { + "simple-example": { + "summary": "Simple example", + "value": { + "ref": "topic-branch", + "payload": "{ \"deploy\": \"migrate\" }", + "description": "Deploy request from hubot" } - ] + }, + "advanced-example": { + "summary": "Advanced example", + "value": { + "ref": "topic-branch", + "auto_merge": false, + "payload": "{ \"deploy\": \"migrate\" }", + "description": "Deploy request from hubot", + "required_contexts": [ + "ci/janky", + "security/brakeman" + ] + } + } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-group" + "$ref": "#/components/schemas/deployment" }, "examples": { - "default": { - "$ref": "#/components/examples/scim-enterprise-group" + "simple-example": { + "$ref": "#/components/examples/deployment-simple-example" + } + } + } + } + }, + "202": { + "description": "Merged branch response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + } + }, + "examples": { + "merged-branch-response": { + "value": { + "message": "Auto-merged master into topic-branch on deployment." + } } } } } + }, + "409": { + "description": "Conflict when there is a merge conflict or the commit's status checks failed" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "deployments" } - }, - "patch": { - "summary": "Update an attribute for a SCIM enterprise group", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nAllows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).", - "operationId": "enterprise-admin/update-attribute-for-enterprise-group", + } + }, + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + "get": { + "summary": "Get a deployment", + "description": "", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/get-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-group" + "url": "https://docs.github.com/rest/deployments/deployments#get-a-deployment" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/scim-group-id" + "$ref": "#/components/parameters/deployment-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "description": "The SCIM schema URIs.", - "items": { - "type": "string" - } - }, - "Operations": { - "type": "array", - "description": "Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2).", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "op": { - "type": "string", - "enum": [ - "add", - "Add", - "remove", - "Remove", - "replace", - "Replace" - ] - }, - "path": { - "type": "string" - }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object" - }, - { - "type": "array" - } - ] - } - }, - "required": [ - "op" - ] - } - } - }, - "required": [ - "schemas", - "Operations" - ] - }, - "example": { - "schemas": [ - "urn:ietf:params:scim:api:messages:2.0:PatchOp" - ], - "Operations": [ - { - "op": "remove", - "path": "members", - "value": [ - { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" - } - ] - } - ] - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-group" + "$ref": "#/components/schemas/deployment" }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-group-2" + "$ref": "#/components/examples/deployment" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "deployments" } }, "delete": { - "summary": "Delete a SCIM group from an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", - "operationId": "enterprise-admin/delete-scim-group-from-enterprise", + "summary": "Delete a deployment", + "description": "If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment.\n\nTo set a deployment as inactive, you must:\n\n* Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment.\n* Mark the active deployment as inactive by adding any non-successful deployment status.\n\nFor more information, see \"[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)\" and \"[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/delete-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-group-from-an-enterprise" + "url": "https://docs.github.com/rest/deployments/deployments#delete-a-deployment" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/scim-group-id" + "$ref": "#/components/parameters/deployment-id" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "deployments" } } }, - "/scim/v2/enterprises/{enterprise}/Users": { + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { "get": { - "summary": "List SCIM provisioned identities for an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nRetrieves a paginated list of all provisioned enterprise members, including pending invitations.\n\nWhen a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member:\n - When a user with a SCIM-provisioned external identity is removed from an enterprise, the account's metadata is preserved to allow the user to re-join the organization in the future.\n - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted).\n - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO.\n\nThe returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO:\n\n1. The user is granted access by the IdP and is not a member of the GitHub enterprise.\n\n1. The user attempts to access the GitHub enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub account.\n\n1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account:\n - If the user signs in, their GitHub account is linked to this entry.\n - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub enterprise, and the external identity `null` entry remains in place.", - "operationId": "enterprise-admin/list-provisioned-identities-enterprise", + "summary": "List deployment statuses", + "description": "Users with pull access can view deployment statuses for a deployment:", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/list-deployment-statuses", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#list-scim-provisioned-identities-for-an-enterprise" + "url": "https://docs.github.com/rest/deployments/statuses#list-deployment-statuses" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/start-index" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/count" + "$ref": "#/components/parameters/deployment-id" }, { - "name": "filter", - "description": "filter results", - "in": "query", - "required": false, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -42569,144 +45638,119 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-user-list-enterprise" + "type": "array", + "items": { + "$ref": "#/components/schemas/deployment-status" + } }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-user-list" + "$ref": "#/components/examples/deployment-status-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "statuses" } }, "post": { - "summary": "Provision and invite a SCIM enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nProvision enterprise membership for a user, and send organization invitation emails to the email address.\n\nYou can optionally include the groups a user will be invited to join. If you do not provide a list of `groups`, the user is provisioned for the enterprise, but no organization invitation emails will be sent.", - "operationId": "enterprise-admin/provision-and-invite-enterprise-user", + "summary": "Create a deployment status", + "description": "Users with `push` access can create deployment statuses for a given deployment.\n\nOAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/create-deployment-status", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#provision-and-invite-a-scim-enterprise-user" + "url": "https://docs.github.com/rest/deployments/statuses#create-a-deployment-status" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/deployment-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "schemas": { - "type": "array", - "description": "The SCIM schema URIs.", - "items": { - "type": "string" - } + "state": { + "type": "string", + "description": "The state of the status. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub.", + "enum": [ + "error", + "failure", + "inactive", + "in_progress", + "queued", + "pending", + "success" + ] }, - "userName": { + "target_url": { "type": "string", - "description": "The username for the user." + "description": "The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment.\n\n> [!NOTE]\n> It's recommended to use the `log_url` parameter, which replaces `target_url`.", + "default": "" }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string", - "description": "The first name of the user." - }, - "familyName": { - "type": "string", - "description": "The last name of the user." - } - }, - "required": [ - "givenName", - "familyName" - ] + "log_url": { + "type": "string", + "description": "The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `\"\"`", + "default": "" }, - "emails": { - "type": "array", - "description": "List of user emails.", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The email address." - }, - "type": { - "type": "string", - "description": "The type of email address." - }, - "primary": { - "type": "boolean", - "description": "Whether this email address is the primary address." - } - }, - "required": [ - "value", - "type", - "primary" - ] - } + "description": { + "type": "string", + "description": "A short description of the status. The maximum description length is 140 characters.", + "default": "" }, - "groups": { - "type": "array", - "description": "List of SCIM group IDs the user is a member of.", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } + "environment": { + "type": "string", + "description": "Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. If not defined, the environment of the previous status on the deployment will be used, if it exists. Otherwise, the environment of the deployment will be used." + }, + "environment_url": { + "type": "string", + "description": "Sets the URL for accessing your environment. Default: `\"\"`", + "default": "" + }, + "auto_inactive": { + "type": "boolean", + "description": "Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true`" } }, "required": [ - "schemas", - "userName", - "name", - "emails" + "state" ] }, - "example": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "userName": "mona.octocat@okta.example.com", - "name": { - "familyName": "Octocat", - "givenName": "Mona" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "type": "work", - "primary": true - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "examples": { + "default": { + "value": { + "environment": "production", + "state": "success", + "log_url": "https://example.com/deployment/42/output", + "description": "Deployment finished successfully." } - ] + } } } } @@ -42717,46 +45761,65 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-user" + "$ref": "#/components/schemas/deployment-status" }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-user" + "$ref": "#/components/examples/deployment-status" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1", + "schema": { + "type": "string" + } + } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "statuses" } } }, - "/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": { + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { "get": { - "summary": "Get SCIM provisioning information for an enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", - "operationId": "enterprise-admin/get-provisioning-information-for-enterprise-user", + "summary": "Get a deployment status", + "description": "Users with pull access can view a deployment status for a deployment:", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/get-deployment-status", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise-user" + "url": "https://docs.github.com/rest/deployments/statuses#get-a-deployment-status" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/deployment-id" }, { - "$ref": "#/components/parameters/scim-user-id" + "name": "status_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -42765,162 +45828,203 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-user" + "$ref": "#/components/schemas/deployment-status" }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-user" + "$ref": "#/components/examples/deployment-status" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "statuses" } - }, - "put": { - "summary": "Set SCIM information for a provisioned enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nReplaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](#update-an-attribute-for-an-enterprise-scim-user) endpoint instead.\n\nYou must at least provide the required values for the user: `userName`, `name`, and `emails`.\n\n**Warning:** Setting `active: false` removes the user from the enterprise, deletes the external identity, and deletes the associated `{scim_user_id}`.", - "operationId": "enterprise-admin/set-information-for-provisioned-enterprise-user", + } + }, + "/repos/{owner}/{repo}/dispatches": { + "post": { + "summary": "Create a repository dispatch event", + "description": "You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see \"[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch).\"\n\nThe `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow.\n\nThis input example shows how you can use the `client_payload` as a test to debug your workflow.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/create-dispatch-event", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-user" + "url": "https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/scim-user-id" + "$ref": "#/components/parameters/repo" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "event_type" + ], "properties": { - "schemas": { - "type": "array", - "description": "The SCIM schema URIs.", - "items": { - "type": "string" - } - }, - "userName": { + "event_type": { "type": "string", - "description": "The username for the user." + "description": "A custom webhook event name. Must be 100 characters or fewer.", + "minLength": 1, + "maxLength": 100 }, - "name": { + "client_payload": { "type": "object", - "properties": { - "givenName": { - "type": "string", - "description": "The first name of the user." - }, - "familyName": { - "type": "string", - "description": "The last name of the user." - } - }, - "required": [ - "givenName", - "familyName" - ] - }, - "emails": { - "type": "array", - "description": "List of user emails.", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The email address." - }, - "type": { - "type": "string", - "description": "The type of email address." - }, - "primary": { - "type": "boolean", - "description": "Whether this email address is the primary address." - } - }, - "required": [ - "value", - "type", - "primary" - ] + "description": "JSON payload with extra information about the webhook event that your action or workflow may use. The maximum number of top-level properties is 10. The total size of the JSON payload must be less than 64KB.", + "additionalProperties": true, + "maxProperties": 10 + } + } + }, + "examples": { + "default": { + "value": { + "event_type": "on-demand-test", + "client_payload": { + "unit": false, + "integration": true } - }, - "groups": { - "type": "array", - "description": "List of SCIM group IDs the user is a member of.", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/environments": { + "get": { + "summary": "List environments", + "description": "Lists the environments for a repository.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", + "tags": [ + "repos" + ], + "operationId": "repos/get-all-environments", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/deployments/environments#list-environments" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { + "description": "The number of environments in this repository", + "example": 5, + "type": "integer" + }, + "environments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/environment" } } } }, - "required": [ - "schemas", - "userName", - "name", - "emails" - ] - }, - "example": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "userName": "mona.octocat@okta.example.com", - "name": { - "familyName": "Octocat", - "givenName": "Mona" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "type": "work", - "primary": true - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "examples": { + "default": { + "$ref": "#/components/examples/environments" } - ] + } } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "deployments", + "subcategory": "environments" + } + } + }, + "/repos/{owner}/{repo}/environments/{environment_name}": { + "get": { + "summary": "Get an environment", + "description": "> [!NOTE]\n> To get information about name patterns that branches must match in order to deploy to this environment, see \"[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy).\"\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", + "tags": [ + "repos" + ], + "operationId": "repos/get-environment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/deployments/environments#get-an-environment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" + } + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-user" + "$ref": "#/components/schemas/environment" }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-user" + "$ref": "#/components/examples/environment" } } } @@ -42928,81 +46032,93 @@ } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "environments" } }, - "patch": { - "summary": "Update an attribute for a SCIM enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nAllows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).\n\n**Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `\"path\": \"emails[type eq \\\"work\\\"]\"` will not work.\n\n**Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated `:scim_user_id`.\n\n```\n{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n```", - "operationId": "enterprise-admin/update-attribute-for-enterprise-user", + "put": { + "summary": "Create or update an environment", + "description": "Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see \"[Environments](/actions/reference/environments#environment-protection-rules).\"\n\n> [!NOTE]\n> To create or update name patterns that branches must match in order to deploy to this environment, see \"[Deployment branch policies](/rest/deployments/branch-policies).\"\n\n> [!NOTE]\n> To create or update secrets for an environment, see \"[GitHub Actions secrets](/rest/actions/secrets).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/create-or-update-environment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-user" + "url": "https://docs.github.com/rest/deployments/environments#create-or-update-an-environment" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/scim-user-id" + "$ref": "#/components/parameters/environment-name" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "schemas": { - "type": "array", - "description": "The SCIM schema URIs.", - "items": { - "type": "string" - } + "wait_timer": { + "$ref": "#/components/schemas/wait-timer" }, - "Operations": { + "prevent_self_review": { + "$ref": "#/components/schemas/prevent-self-review" + }, + "reviewers": { "type": "array", - "description": "Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2).", + "nullable": true, + "description": "The people or teams that may review jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed.", "items": { - "type": "object" + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/deployment-reviewer-type" + }, + "id": { + "type": "integer", + "description": "The id of the user or team who can review the deployment", + "example": 4532992 + } + } } + }, + "deployment_branch_policy": { + "$ref": "#/components/schemas/deployment-branch-policy-settings" } }, - "required": [ - "schemas", - "Operations" - ] + "additionalProperties": false }, - "example": { - "schemas": [ - "urn:ietf:params:scim:api:messages:2.0:PatchOp" - ], - "Operations": [ - { - "op": "add", - "path": "emails", - "value": [ + "examples": { + "default": { + "value": { + "wait_timer": 30, + "prevent_self_review": false, + "reviewers": [ { - "value": "monalisa@octocat.github.com", - "type": "home" + "type": "User", + "id": 1 + }, + { + "type": "Team", + "id": 1 } - ] - }, - { - "op": "replace", - "path": "name.givenName", - "value": "Monalisa" + ], + "deployment_branch_policy": { + "protected_branches": false, + "custom_branch_policies": true + } } - ] + } } } } @@ -43013,984 +46129,634 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/scim-enterprise-user" + "$ref": "#/components/schemas/environment" }, "examples": { "default": { - "$ref": "#/components/examples/scim-enterprise-user-2" + "$ref": "#/components/examples/environment" } } } } + }, + "422": { + "description": "Validation error when the environment name is invalid or when `protected_branches` and `custom_branch_policies` in `deployment_branch_policy` are set to the same value", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "environments" } }, "delete": { - "summary": "Delete a SCIM user from an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", - "operationId": "enterprise-admin/delete-user-from-enterprise", + "summary": "Delete an environment", + "description": "OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "enterprise-admin" + "repos" ], + "operationId": "repos/delete-an-environment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-user-from-an-enterprise" + "url": "https://docs.github.com/rest/deployments/environments#delete-an-environment" }, "parameters": [ { - "$ref": "#/components/parameters/enterprise" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/scim-user-id" + "$ref": "#/components/parameters/environment-name" } ], "responses": { "204": { - "description": "Response" + "description": "Default response" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "githubCloudOnly": true, - "previews": [ - - ], - "category": "enterprise-admin", - "subcategory": "scim" + "category": "deployments", + "subcategory": "environments" } } }, - "/scim/v2/organizations/{org}/Users": { + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": { "get": { - "summary": "List SCIM provisioned identities", - "description": "Retrieves a paginated list of all provisioned organization members, including pending invitations. If you provide the `filter` parameter, the resources for all matching provisions members are returned.\n\nWhen a user with a SAML-provisioned external identity leaves (or is removed from) an organization, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member:\n - When a user with a SCIM-provisioned external identity is removed from an organization, the account's metadata is preserved to allow the user to re-join the organization in the future.\n - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted).\n - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO.\n\nThe returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO:\n\n1. The user is granted access by the IdP and is not a member of the GitHub organization.\n\n1. The user attempts to access the GitHub organization and initiates the SAML SSO process, and is not currently signed in to their GitHub account.\n\n1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account:\n - If the user signs in, their GitHub account is linked to this entry.\n - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub organization, and the external identity `null` entry remains in place.", + "summary": "List deployment branch policies", + "description": "Lists the deployment branch policies for an environment.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "scim" + "repos" ], - "operationId": "scim/list-provisioned-identities", + "operationId": "repos/list-deployment-branch-policies", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/scim#list-scim-provisioned-identities" + "url": "https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" }, { - "name": "startIndex", - "description": "Used for pagination: the index of the first result to return.", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/repo" }, { - "name": "count", - "description": "Used for pagination: the number of results to return.", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/environment-name" }, { - "name": "filter", - "description": "Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query:\n\n`?filter=userName%20eq%20\\\"Octocat\\\"`.\n\nTo filter results for the identity with the email `octocat@github.com`, you would use this query:\n\n`?filter=emails%20eq%20\\\"octocat@github.com\\\"`.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { "description": "Response", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/scim-user-list" + "type": "object", + "properties": { + "total_count": { + "description": "The number of deployment branch policies for the environment.", + "type": "integer", + "example": 2 + }, + "branch_policies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/deployment-branch-policy" + } + } + }, + "required": [ + "total_count", + "branch_policies" + ] }, "examples": { - "response-with-filter": { - "$ref": "#/components/examples/scim-user-list-response-with-filter" - }, - "response-without-filter": { - "$ref": "#/components/examples/scim-user-list-response-without-filter" + "default": { + "$ref": "#/components/examples/deployment-branch-policies-list" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/scim_not_found" - }, - "403": { - "$ref": "#/components/responses/scim_forbidden" - }, - "400": { - "$ref": "#/components/responses/scim_bad_request" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "scim", - "subcategory": null + "category": "deployments", + "subcategory": "branch-policies" } }, "post": { - "summary": "Provision and invite a SCIM user", - "description": "Provision organization membership for a user, and send an activation email to the email address.", + "summary": "Create a deployment branch policy", + "description": "Creates a deployment branch or tag policy for an environment.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "scim" + "repos" ], - "operationId": "scim/provision-and-invite-user", + "operationId": "repos/create-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/scim#provision-and-invite-a-scim-user" + "url": "https://docs.github.com/rest/deployments/branch-policies#create-a-deployment-branch-policy" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/deployment-branch-policy-name-pattern-with-type" + }, + "examples": { + "example-wildcard": { + "summary": "Example of a wildcard name pattern", + "value": { + "name": "release/*" + } + }, + "example-single-branch": { + "summary": "Example of a single branch name pattern", + "value": { + "name": "main", + "type": "branch" + } + }, + "example-single-tag": { + "summary": "Example of a single tag name pattern", + "value": { + "name": "v1", + "type": "tag" + } + } + } + } + } + }, "responses": { - "201": { + "200": { "description": "Response", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/scim-user" + "$ref": "#/components/schemas/deployment-branch-policy" }, "examples": { - "default": { - "$ref": "#/components/examples/scim-user" + "example-wildcard": { + "$ref": "#/components/examples/deployment-branch-policy-wildcard" + }, + "example-single-branch": { + "$ref": "#/components/examples/deployment-branch-policy-single-branch" + }, + "example-single-tag": { + "$ref": "#/components/examples/deployment-branch-policy-single-tag" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "404": { - "$ref": "#/components/responses/scim_not_found" + "description": "Not Found or `deployment_branch_policy.custom_branch_policies` property for the environment is set to false" }, - "403": { - "$ref": "#/components/responses/scim_forbidden" - }, - "500": { - "$ref": "#/components/responses/scim_internal_error" - }, - "409": { - "$ref": "#/components/responses/scim_conflict" - }, - "400": { - "$ref": "#/components/responses/scim_bad_request" - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "userName": { - "description": "Configured by the admin. Could be an email, login, or username", - "example": "someone@example.com", - "type": "string" - }, - "displayName": { - "description": "The name of the user, suitable for display to end-users", - "example": "Jon Doe", - "type": "string" - }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - }, - "formatted": { - "type": "string" - } - }, - "required": [ - "givenName", - "familyName" - ], - "example": { - "givenName": "Jane", - "familyName": "User" - } - }, - "emails": { - "description": "user emails", - "example": [ - { - "value": "someone@example.com", - "primary": true - }, - { - "value": "another@example.com", - "primary": false - } - ], - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "primary": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "required": [ - "value" - ] - } - }, - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "externalId": { - "type": "string" - }, - "groups": { - "type": "array", - "items": { - "type": "string" - } - }, - "active": { - "type": "boolean" - } - }, - "required": [ - "userName", - "name", - "emails" - ] - } - } + "303": { + "description": "Response if the same branch name pattern already exists" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "scim", - "subcategory": null + "category": "deployments", + "subcategory": "branch-policies" } } }, - "/scim/v2/organizations/{org}/Users/{scim_user_id}": { + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": { "get": { - "summary": "Get SCIM provisioning information for a user", - "description": "", + "summary": "Get a deployment branch policy", + "description": "Gets a deployment branch or tag policy for an environment.\n\nAnyone with read access to the repository can use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "scim" + "repos" ], - "operationId": "scim/get-provisioning-information-for-user", + "operationId": "repos/get-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/scim#get-scim-provisioning-information-for-a-user" + "url": "https://docs.github.com/rest/deployments/branch-policies#get-a-deployment-branch-policy" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/scim-user-id" + "$ref": "#/components/parameters/branch-policy-id" } ], "responses": { "200": { "description": "Response", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/scim-user" + "$ref": "#/components/schemas/deployment-branch-policy" }, "examples": { "default": { - "$ref": "#/components/examples/scim-user" + "$ref": "#/components/examples/deployment-branch-policy-wildcard" } } } } - }, - "404": { - "$ref": "#/components/responses/scim_not_found" - }, - "403": { - "$ref": "#/components/responses/scim_forbidden" - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "scim", - "subcategory": null + "category": "deployments", + "subcategory": "branch-policies" } }, "put": { - "summary": "Update a provisioned organization membership", - "description": "Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](https://docs.github.com/rest/reference/scim#update-an-attribute-for-a-scim-user) endpoint instead.\n\nYou must at least provide the required values for the user: `userName`, `name`, and `emails`.\n\n**Warning:** Setting `active: false` removes the user from the organization, deletes the external identity, and deletes the associated `{scim_user_id}`.", + "summary": "Update a deployment branch policy", + "description": "Updates a deployment branch or tag policy for an environment.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "scim" + "repos" ], - "operationId": "scim/set-information-for-provisioned-user", + "operationId": "repos/update-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/scim#set-scim-information-for-a-provisioned-user" + "url": "https://docs.github.com/rest/deployments/branch-policies#update-a-deployment-branch-policy" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/scim-user-id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/scim-user" - }, - "examples": { - "default": { - "$ref": "#/components/examples/scim-user" - } - } - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" + "$ref": "#/components/parameters/repo" }, - "404": { - "$ref": "#/components/responses/scim_not_found" + { + "$ref": "#/components/parameters/environment-name" }, - "403": { - "$ref": "#/components/responses/scim_forbidden" + { + "$ref": "#/components/parameters/branch-policy-id" } - }, + ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "displayName": { - "description": "The name of the user, suitable for display to end-users", - "example": "Jon Doe", - "type": "string" - }, - "externalId": { - "type": "string" - }, - "groups": { - "type": "array", - "items": { - "type": "string" - } - }, - "active": { - "type": "boolean" - }, - "userName": { - "description": "Configured by the admin. Could be an email, login, or username", - "example": "someone@example.com", - "type": "string" - }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - }, - "formatted": { - "type": "string" - } - }, - "required": [ - "givenName", - "familyName" - ], - "example": { - "givenName": "Jane", - "familyName": "User" - } - }, - "emails": { - "description": "user emails", - "example": [ - { - "value": "someone@example.com", - "primary": true - }, - { - "value": "another@example.com", - "primary": false - } - ], - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "value": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ] - } + "$ref": "#/components/schemas/deployment-branch-policy-name-pattern" + }, + "examples": { + "default": { + "value": { + "name": "release/*" } - }, - "required": [ - "userName", - "name", - "emails" - ] + } } } } }, - "x-github": { - "githubCloudOnly": true, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "scim", - "subcategory": null - } - }, - "patch": { - "summary": "Update an attribute for a SCIM user", - "description": "Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).\n\n**Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `\"path\": \"emails[type eq \\\"work\\\"]\"` will not work.\n\n**Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the organization, deletes the external identity, and deletes the associated `:scim_user_id`.\n\n```\n{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n```", - "tags": [ - "scim" - ], - "operationId": "scim/update-attribute-for-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/scim#update-an-attribute-for-a-scim-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/scim-user-id" - } - ], "responses": { "200": { "description": "Response", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/scim-user" + "$ref": "#/components/schemas/deployment-branch-policy" }, "examples": { "default": { - "$ref": "#/components/examples/scim-user" + "$ref": "#/components/examples/deployment-branch-policy-wildcard" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/scim_not_found" - }, - "403": { - "$ref": "#/components/responses/scim_forbidden" - }, - "400": { - "$ref": "#/components/responses/scim_bad_request" - }, - "429": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } - } - } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "Operations": { - "description": "Set of operations to be performed", - "example": [ - { - "op": "replace", - "value": { - "active": false - } - } - ], - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "op": { - "type": "string", - "enum": [ - "add", - "remove", - "replace" - ] - }, - "path": { - "type": "string" - }, - "value": { - "oneOf": [ - { - "type": "object", - "properties": { - "active": { - "type": "boolean", - "nullable": true - }, - "userName": { - "type": "string", - "nullable": true - }, - "externalId": { - "type": "string", - "nullable": true - }, - "givenName": { - "type": "string", - "nullable": true - }, - "familyName": { - "type": "string", - "nullable": true - } - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - } - } - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "op" - ] - } - } - }, - "required": [ - "Operations" - ], - "type": "object" - } - } } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "scim", - "subcategory": null + "category": "deployments", + "subcategory": "branch-policies" } }, "delete": { - "summary": "Delete a SCIM user from an organization", - "description": "", + "summary": "Delete a deployment branch policy", + "description": "Deletes a deployment branch or tag policy for an environment.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "scim" + "repos" ], - "operationId": "scim/delete-user-from-org", + "operationId": "repos/delete-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/scim#delete-a-scim-user-from-an-organization" + "url": "https://docs.github.com/rest/deployments/branch-policies#delete-a-deployment-branch-policy" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/scim-user-id" + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/branch-policy-id" } ], "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/scim_not_found" - }, - "403": { - "$ref": "#/components/responses/scim_forbidden" - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { - "githubCloudOnly": true, + "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "scim", - "subcategory": null + "category": "deployments", + "subcategory": "branch-policies" } } }, - "/search/code": { + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": { "get": { - "summary": "Search code", - "description": "Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this:\n\n`q=addClass+in:file+language:js+repo:jquery/jquery`\n\nThis query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository.\n\n#### Considerations for code search\n\nDue to the complexity of searching code, there are a few restrictions on how searches are performed:\n\n* Only the _default branch_ is considered. In most cases, this will be the `master` branch.\n* Only files smaller than 384 KB are searchable.\n* You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing\nlanguage:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is.", + "summary": "Get all deployment protection rules for an environment", + "description": "Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see \"[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment).\"\n\nFor more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app).\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "search" + "repos" ], - "operationId": "search/code", + "operationId": "repos/get-all-deployment-protection-rules", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/search#search-code" + "url": "https://docs.github.com/rest/deployments/protection-rules#get-all-deployment-protection-rules-for-an-environment" }, "parameters": [ { - "name": "q", - "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching code](https://help.github.com/articles/searching-code/)\" for a detailed list of qualifiers.", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sort", - "description": "Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "indexed" - ] - } - }, - { - "$ref": "#/components/parameters/order" + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/owner" } ], "responses": { "200": { - "description": "Response", + "description": "List of deployment protection rules", "content": { "application/json": { "schema": { "type": "object", - "required": [ - "total_count", - "incomplete_results", - "items" - ], "properties": { "total_count": { - "type": "integer" - }, - "incomplete_results": { - "type": "boolean" + "description": "The number of enabled custom deployment protection rules for this environment", + "type": "integer", + "example": 10 }, - "items": { + "custom_deployment_protection_rules": { "type": "array", "items": { - "$ref": "#/components/schemas/code-search-result-item" + "$ref": "#/components/schemas/deployment-protection-rule" } } + }, + "example": { + "$ref": "#/components/examples/deployment-protection-rules" } }, "examples": { "default": { - "$ref": "#/components/examples/code-search-result-item-paginated" + "value": { + "total_count": 2, + "custom_deployment_protection_rules": [ + { + "id": 3, + "node_id": "IEH37kRlcGxveW1lbnRTdGF0ddiv", + "enabled": true, + "app": { + "id": 1, + "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", + "slug": "a-custom-app", + "integration_url": "https://api.github.com/apps/a-custom-app" + } + }, + { + "id": 4, + "node_id": "MDE2OkRlcGxveW1lbnRTdHJ41128", + "enabled": true, + "app": { + "id": 1, + "node_id": "UHVE67RlcGxveW1lbnRTdTY!jfeuy", + "slug": "another-custom-app", + "integration_url": "https://api.github.com/apps/another-custom-app" + } + } + ] + } } } } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "deployments", + "subcategory": "protection-rules" + } + }, + "post": { + "summary": "Create a custom deployment protection rule on an environment", + "description": "Enable a custom deployment protection rule for an environment.\n\nThe authenticated user must have admin or owner permissions to the repository to use this endpoint.\n\nFor more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app), as well as the [guide to creating custom deployment protection rules](https://docs.github.com/actions/managing-workflow-runs-and-deployments/managing-deployments/creating-custom-deployment-protection-rules).\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/create-deployment-protection-rule", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/deployments/protection-rules#create-a-custom-deployment-protection-rule-on-an-environment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/environment-name" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + { + "$ref": "#/components/parameters/repo" }, - "422": { - "$ref": "#/components/responses/validation_failed" + { + "$ref": "#/components/parameters/owner" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "integration_id": { + "type": "integer", + "description": "The ID of the custom app that will be enabled on the environment." + } + } + }, + "examples": { + "default": { + "value": { + "integration_id": 5 + } + } + } + } }, - "403": { - "$ref": "#/components/responses/forbidden" + "required": true + }, + "responses": { + "201": { + "description": "The enabled custom deployment protection rule", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/deployment-protection-rule" + }, + "examples": { + "default": { + "$ref": "#/components/examples/deployment-protection-rule" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "search", - "subcategory": null + "category": "deployments", + "subcategory": "protection-rules" } } }, - "/search/commits": { + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": { "get": { - "summary": "Search commits", - "description": "Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match\nmetadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this:\n\n`q=repo:octocat/Spoon-Knife+css`", + "summary": "List custom deployment rule integrations available for an environment", + "description": "Gets all custom deployment protection rule integrations that are available for an environment.\n\nThe authenticated user must have admin or owner permissions to the repository to use this endpoint.\n\nFor more information about environments, see \"[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment).\"\n\nFor more information about the app that is providing this custom deployment rule, see \"[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)\".\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "search" + "repos" ], - "operationId": "search/commits", + "operationId": "repos/list-custom-deployment-rule-integrations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/search#search-commits" + "url": "https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment" }, "parameters": [ { - "name": "q", - "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching commits](https://help.github.com/articles/searching-commits/)\" for a detailed list of qualifiers.", - "in": "query", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/environment-name" }, { - "name": "sort", - "description": "Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "author-date", - "committer-date" - ] - } + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/order" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/per-page" } ], "responses": { "200": { - "description": "Response", + "description": "A list of custom deployment rule integrations available for this environment.", "content": { "application/json": { "schema": { "type": "object", - "required": [ - "total_count", - "incomplete_results", - "items" - ], "properties": { "total_count": { - "type": "integer" - }, - "incomplete_results": { - "type": "boolean" + "description": "The total number of custom deployment protection rule integrations available for this environment.", + "type": "integer", + "example": 35 }, - "items": { + "available_custom_deployment_protection_rule_integrations": { "type": "array", "items": { - "$ref": "#/components/schemas/commit-search-result-item" + "$ref": "#/components/schemas/custom-deployment-rule-app" } } } }, "examples": { "default": { - "$ref": "#/components/examples/commit-search-result-item-paginated" + "$ref": "#/components/examples/custom-deployment-protection-rule-apps" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "cloak", - "note": "The Commit Search API is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2017-01-05-commit-search-api/) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.cloak-preview\n```" - } - ], - "category": "search", - "subcategory": null + "category": "deployments", + "subcategory": "protection-rules" } } }, - "/search/issues": { + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": { "get": { - "summary": "Search issues and pull requests", - "description": "Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted\nsearch results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this.\n\n`q=windows+label:bug+language:python+state:open&sort=created&order=asc`\n\nThis query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results.\n\n**Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see \"[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests).\"", + "summary": "Get a custom deployment protection rule", + "description": "Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see \"[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment).\"\n\nFor more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app).\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.", "tags": [ - "search" + "repos" ], - "operationId": "search/issues-and-pull-requests", + "operationId": "repos/get-custom-deployment-protection-rule", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/search#search-issues-and-pull-requests" + "url": "https://docs.github.com/rest/deployments/protection-rules#get-a-custom-deployment-protection-rule" }, "parameters": [ { - "name": "q", - "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)\" for a detailed list of qualifiers.", - "in": "query", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/owner" }, { - "name": "sort", - "description": "Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "comments", - "reactions", - "reactions-+1", - "reactions--1", - "reactions-smile", - "reactions-thinking_face", - "reactions-heart", - "reactions-tada", - "interactions", - "created", - "updated" - ] - } - }, - { - "$ref": "#/components/parameters/order" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/protection-rule-id" } ], "responses": { @@ -43999,211 +46765,83 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "incomplete_results", - "items" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "incomplete_results": { - "type": "boolean" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-search-result-item" - } - } - } + "$ref": "#/components/schemas/deployment-protection-rule" }, "examples": { "default": { - "$ref": "#/components/examples/issue-search-result-item-paginated" + "$ref": "#/components/examples/deployment-protection-rule" } } } } - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "search", - "subcategory": null + "category": "deployments", + "subcategory": "protection-rules" } - } - }, - "/search/labels": { - "get": { - "summary": "Search labels", - "description": "Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this:\n\n`q=bug+defect+enhancement&repository_id=64778136`\n\nThe labels that best match the query appear first in the search results.", + }, + "delete": { + "summary": "Disable a custom protection rule for an environment", + "description": "Disables a custom deployment protection rule for an environment.\n\nThe authenticated user must have admin or owner permissions to the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "search" + "repos" ], - "operationId": "search/labels", + "operationId": "repos/disable-deployment-protection-rule", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/search#search-labels" + "url": "https://docs.github.com/rest/deployments/protection-rules#disable-a-custom-protection-rule-for-an-environment" }, "parameters": [ { - "name": "repository_id", - "description": "The id of the repository.", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "q", - "description": "The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query).", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sort", - "description": "Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated" - ] - } + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/order" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/protection-rule-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "total_count", - "incomplete_results", - "items" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "incomplete_results": { - "type": "boolean" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label-search-result-item" - } - } - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/label-search-result-item-paginated" - } - } - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "search", - "subcategory": null + "category": "deployments", + "subcategory": "protection-rules" } } }, - "/search/repositories": { + "/repos/{owner}/{repo}/environments/{environment_name}/secrets": { "get": { - "summary": "Search repositories", - "description": "Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this:\n\n`q=tetris+language:assembly&sort=stars&order=desc`\n\nThis query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results.\n\nWhen you include the `mercy` preview header, you can also search for multiple topics by adding more `topic:` instances. For example, your query might look like this:\n\n`q=topic:ruby+topic:rails`", + "summary": "List environment secrets", + "description": "Lists all secrets available in an environment without revealing their\nencrypted values.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "search" + "actions" ], - "operationId": "search/repos", + "operationId": "actions/list-environment-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/search#search-repositories" + "url": "https://docs.github.com/rest/actions/secrets#list-environment-secrets" }, "parameters": [ { - "name": "q", - "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)\" for a detailed list of qualifiers.", - "in": "query", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/owner" }, { - "name": "sort", - "description": "Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "stars", - "forks", - "help-wanted-issues", - "updated" - ] - } + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/order" + "$ref": "#/components/parameters/environment-name" }, { "$ref": "#/components/parameters/per-page" @@ -44221,84 +46859,63 @@ "type": "object", "required": [ "total_count", - "incomplete_results", - "items" + "secrets" ], "properties": { "total_count": { "type": "integer" }, - "incomplete_results": { - "type": "boolean" - }, - "items": { + "secrets": { "type": "array", "items": { - "$ref": "#/components/schemas/repo-search-result-item" + "$ref": "#/components/schemas/actions-secret" } } } }, "examples": { "default": { - "$ref": "#/components/examples/repo-search-result-item-paginated" + "$ref": "#/components/examples/actions-secret-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "mercy", - "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" - } - ], - "category": "search", - "subcategory": null + "category": "actions", + "subcategory": "secrets" } } }, - "/search/topics": { + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key": { "get": { - "summary": "Search topics", - "description": "Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See \"[Searching topics](https://help.github.com/articles/searching-topics/)\" for a detailed list of qualifiers.\n\nWhen searching for topics, you can get text match metadata for the topic's **short\\_description**, **description**, **name**, or **display\\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this:\n\n`q=ruby+is:featured`\n\nThis query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results.", + "summary": "Get an environment public key", + "description": "Get the public key for an environment, which you need to encrypt environment\nsecrets. You need to encrypt a secret before you can create or update secrets.\n\nAnyone with read access to the repository can use this endpoint.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "search" + "actions" ], - "operationId": "search/topics", + "operationId": "actions/get-environment-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/search#search-topics" + "url": "https://docs.github.com/rest/actions/secrets#get-an-environment-public-key" }, "parameters": [ { - "name": "q", - "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query).", - "in": "query", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/environment-name" } ], "responses": { @@ -44307,101 +46924,49 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "incomplete_results", - "items" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "incomplete_results": { - "type": "boolean" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/topic-search-result-item" - } - } - } + "$ref": "#/components/schemas/actions-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/topic-search-result-item-paginated" + "$ref": "#/components/examples/actions-public-key" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "mercy", - "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" - } - ], - "category": "search", - "subcategory": null + "category": "actions", + "subcategory": "secrets" } } }, - "/search/users": { + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": { "get": { - "summary": "Search users", - "description": "Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you're looking for a list of popular users, you might try this query:\n\n`q=tom+repos:%3E42+followers:%3E1000`\n\nThis query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers.", + "summary": "Get an environment secret", + "description": "Gets a single environment secret without revealing its encrypted value.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "search" + "actions" ], - "operationId": "search/users", + "operationId": "actions/get-environment-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/search#search-users" + "url": "https://docs.github.com/rest/actions/secrets#get-an-environment-secret" }, "parameters": [ { - "name": "q", - "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching users](https://help.github.com/articles/searching-users/)\" for a detailed list of qualifiers.", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sort", - "description": "Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "followers", - "repositories", - "joined" - ] - } + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/order" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -44410,288 +46975,171 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "incomplete_results", - "items" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "incomplete_results": { - "type": "boolean" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/user-search-result-item" - } - } - } + "$ref": "#/components/schemas/actions-secret" }, "examples": { "default": { - "$ref": "#/components/examples/user-search-result-item-paginated" + "$ref": "#/components/examples/actions-secret" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "search", - "subcategory": null + "category": "actions", + "subcategory": "secrets" } - } - }, - "/teams/{team_id}": { - "get": { - "summary": "Get a team (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/reference/teams#get-a-team-by-name) endpoint.", + }, + "put": { + "summary": "Create or update an environment secret", + "description": "Creates or updates an environment secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "teams" + "actions" ], - "operationId": "teams/get-legacy", + "operationId": "actions/create-or-update-environment-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#get-a-team-legacy" + "url": "https://docs.github.com/rest/actions/secrets#create-or-update-an-environment-secret" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-full" - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-full" - } - } - } - } + "$ref": "#/components/parameters/owner" }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true - }, - "patch": { - "summary": "Update a team (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/reference/teams#update-a-team) endpoint.\n\nTo edit a team, the authenticated user must either be an organization owner or a team maintainer.\n\n**Note:** With nested teams, the `privacy` for parent teams cannot be `secret`.", - "tags": [ - "teams" - ], - "operationId": "teams/update-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#update-a-team-legacy" - }, - "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the team." - }, - "description": { - "type": "string", - "description": "The description of the team." - }, - "privacy": { + "encrypted_value": { "type": "string", - "description": "The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization.", - "enum": [ - "secret", - "closed" - ] + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an environment public key](https://docs.github.com/rest/actions/secrets#get-an-environment-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" }, - "permission": { + "key_id": { "type": "string", - "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", - "enum": [ - "pull", - "push", - "admin" - ], - "default": "pull" - }, - "parent_team_id": { - "type": "integer", - "description": "The ID of a team to set as the parent team.", - "nullable": true + "description": "ID of the key you used to encrypt the secret." } }, "required": [ - "name" + "encrypted_value", + "key_id" ] }, - "example": { - "name": "new team name", - "description": "new team description", - "privacy": "closed" + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } } } } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-full" - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-full" - } - } - } - } - }, "201": { - "description": "Response", + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/team-full" + "value": null } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true + "category": "actions", + "subcategory": "secrets" + } }, "delete": { - "summary": "Delete a team (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/reference/teams#delete-a-team) endpoint.\n\nTo delete a team, the authenticated user must be an organization owner or team maintainer.\n\nIf you are an organization owner, deleting a parent team will delete all of its child teams as well.", + "summary": "Delete an environment secret", + "description": "Deletes a secret in an environment using the secret name.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read secrets.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "teams" + "actions" ], - "operationId": "teams/delete-legacy", + "operationId": "actions/delete-environment-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#delete-a-team-legacy" + "url": "https://docs.github.com/rest/actions/secrets#delete-an-environment-secret" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "responses": { "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "description": "Default response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true + "category": "actions", + "subcategory": "secrets" + } } }, - "/teams/{team_id}/discussions": { + "/repos/{owner}/{repo}/environments/{environment_name}/variables": { "get": { - "summary": "List discussions (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/reference/teams#list-discussions) endpoint.\n\nList all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "List environment variables", + "description": "Lists all environment variables.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "teams" + "actions" ], - "operationId": "teams/list-discussions-legacy", + "operationId": "actions/list-environment-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-discussions-legacy" + "url": "https://docs.github.com/rest/actions/variables#list-environment-variables" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/variables-per-page" }, { "$ref": "#/components/parameters/page" @@ -44703,14 +47151,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-discussion" + "type": "object", + "required": [ + "total_count", + "variables" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-variable" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-items" + "$ref": "#/components/examples/actions-variables-paginated" } } } @@ -44725,64 +47185,60 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussions" - }, - "deprecated": true + "category": "actions", + "subcategory": "variables" + } }, "post": { - "summary": "Create a discussion (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/reference/teams#create-a-discussion) endpoint.\n\nCreates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "summary": "Create an environment variable", + "description": "Create an environment variable that you can reference in a GitHub Actions workflow.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "teams" + "actions" ], - "operationId": "teams/create-discussion-legacy", + "operationId": "actions/create-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#create-a-discussion-legacy" + "url": "https://docs.github.com/rest/actions/variables#create-an-environment-variable" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "title": { + "name": { "type": "string", - "description": "The discussion post's title." + "description": "The name of the variable." }, - "body": { + "value": { "type": "string", - "description": "The discussion post's body text." - }, - "private": { - "type": "boolean", - "description": "Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post.", - "default": false + "description": "The value of the variable." } }, "required": [ - "title", - "body" + "name", + "value" ] }, - "example": { - "title": "Our first team post", - "body": "Hi! This is an area for us to collaborate as a team." + "examples": { + "default": { + "value": { + "name": "USERNAME", + "value": "octocat" + } + } } } } @@ -44793,11 +47249,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion" + "value": null } } } @@ -44805,42 +47261,37 @@ } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussions" - }, - "deprecated": true + "category": "actions", + "subcategory": "variables" + } } }, - "/teams/{team_id}/discussions/{discussion_number}": { + "/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": { "get": { - "summary": "Get a discussion (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/reference/teams#get-a-discussion) endpoint.\n\nGet a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Get an environment variable", + "description": "Gets a specific variable in an environment.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "teams" + "actions" ], - "operationId": "teams/get-discussion-legacy", + "operationId": "actions/get-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-a-discussion-legacy" + "url": "https://docs.github.com/rest/actions/variables#get-an-environment-variable" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/variable-name" } ], "responses": { @@ -44849,11 +47300,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion" + "$ref": "#/components/schemas/actions-variable" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion" + "$ref": "#/components/examples/actions-variable" } } } @@ -44863,112 +47314,98 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussions" - }, - "deprecated": true + "category": "actions", + "subcategory": "variables" + } }, "patch": { - "summary": "Update a discussion (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/reference/teams#update-a-discussion) endpoint.\n\nEdits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Update an environment variable", + "description": "Updates an environment variable that you can reference in a GitHub Actions workflow.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "teams" + "actions" ], - "operationId": "teams/update-discussion-legacy", + "operationId": "actions/update-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#update-a-discussion-legacy" + "url": "https://docs.github.com/rest/actions/variables#update-an-environment-variable" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/variable-name" }, { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/environment-name" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "title": { + "name": { "type": "string", - "description": "The discussion post's title." + "description": "The name of the variable." }, - "body": { + "value": { "type": "string", - "description": "The discussion post's body text." + "description": "The value of the variable." } } }, - "example": { - "title": "Welcome to our first team post" + "examples": { + "default": { + "value": { + "name": "USERNAME", + "value": "octocat" + } + } } } } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-discussion" - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-discussion-2" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussions" - }, - "deprecated": true + "category": "actions", + "subcategory": "variables" + } }, "delete": { - "summary": "Delete a discussion (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/reference/teams#delete-a-discussion) endpoint.\n\nDelete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Delete an environment variable", + "description": "Deletes an environment variable using the variable name.\n\nAuthenticated users must have collaborator access to a repository to create, update, or read variables.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "teams" + "actions" ], - "operationId": "teams/delete-discussion-legacy", + "operationId": "actions/delete-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion-legacy" + "url": "https://docs.github.com/rest/actions/variables#delete-an-environment-variable" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/variable-name" + }, + { + "$ref": "#/components/parameters/environment-name" } ], "responses": { @@ -44979,38 +47416,29 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussions" - }, - "deprecated": true + "category": "actions", + "subcategory": "variables" + } } }, - "/teams/{team_id}/discussions/{discussion_number}/comments": { + "/repos/{owner}/{repo}/events": { "get": { - "summary": "List discussion comments (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/reference/teams#list-discussion-comments) endpoint.\n\nList all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "List repository events", + "description": "> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", "tags": [ - "teams" + "activity" ], - "operationId": "teams/list-discussion-comments-legacy", + "operationId": "activity/list-repo-events", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-discussion-comments-legacy" + "url": "https://docs.github.com/rest/activity/events#list-repository-events" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" @@ -45027,337 +47455,330 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/team-discussion-comment" + "$ref": "#/components/schemas/event" } }, "examples": { - "default": { - "$ref": "#/components/examples/team-discussion-comment-items" + "200-response": { + "$ref": "#/components/examples/repo-events-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussion-comments" - }, - "deprecated": true - }, - "post": { - "summary": "Create a discussion comment (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/reference/teams#create-a-discussion-comment) endpoint.\n\nCreates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See \"[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)\" and \"[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)\" for details.", + "category": "activity", + "subcategory": "events" + } + } + }, + "/repos/{owner}/{repo}/forks": { + "get": { + "summary": "List forks", + "description": "", "tags": [ - "teams" + "repos" ], - "operationId": "teams/create-discussion-comment-legacy", + "operationId": "repos/list-forks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#create-a-discussion-comment-legacy" + "url": "https://docs.github.com/rest/repos/forks#list-forks" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/discussion-number" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The discussion comment's body text." - } - }, - "required": [ - "body" - ] - }, - "example": { - "body": "Do you like apples?" - } + "$ref": "#/components/parameters/repo" + }, + { + "name": "sort", + "description": "The sort order. `stargazers` will sort by star count.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "newest", + "oldest", + "stargazers", + "watchers" + ], + "default": "newest" } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } - }, + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion-comment" + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-comment" + "$ref": "#/components/examples/minimal-repository-items-2" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "400": { + "$ref": "#/components/responses/bad_request" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussion-comments" - }, - "deprecated": true - } - }, - "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": { - "get": { - "summary": "Get a discussion comment (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/reference/teams#get-a-discussion-comment) endpoint.\n\nGet a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "category": "repos", + "subcategory": "forks" + } + }, + "post": { + "summary": "Create a fork", + "description": "Create a fork for the authenticated user.\n\n> [!NOTE]\n> Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api).\n\n> [!NOTE]\n> Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository.", "tags": [ - "teams" + "repos" ], - "operationId": "teams/get-discussion-comment-legacy", + "operationId": "repos/create-fork", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-a-discussion-comment-legacy" + "url": "https://docs.github.com/rest/repos/forks#create-a-fork" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "nullable": true, + "properties": { + "organization": { + "type": "string", + "description": "Optional parameter to specify the organization name if forking into an organization." + }, + "name": { + "type": "string", + "description": "When forking from an existing repository, a new name for the fork." + }, + "default_branch_only": { + "type": "boolean", + "description": "When forking from an existing repository, fork with only the default branch." + } + } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } + } + } + } + }, "responses": { - "200": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion-comment" + "$ref": "#/components/schemas/full-repository" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-comment" + "$ref": "#/components/examples/full-repository" } } } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussion-comments" - }, - "deprecated": true - }, - "patch": { - "summary": "Update a discussion comment (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/reference/teams#update-a-discussion-comment) endpoint.\n\nEdits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "category": "repos", + "subcategory": "forks" + } + } + }, + "/repos/{owner}/{repo}/git/blobs": { + "post": { + "summary": "Create a blob", + "description": "", "tags": [ - "teams" + "git" ], - "operationId": "teams/update-discussion-comment-legacy", + "operationId": "git/create-blob", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#update-a-discussion-comment-legacy" + "url": "https://docs.github.com/rest/git/blobs#create-a-blob" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/repo" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { + "content": { + "type": "string", + "description": "The new blob's content." + }, + "encoding": { "type": "string", - "description": "The discussion comment's body text." + "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", + "default": "utf-8" } }, "required": [ - "body" + "content" ] }, - "example": { - "body": "Do you like pineapples?" + "examples": { + "default": { + "value": { + "content": "Content of the blob", + "encoding": "utf-8" + } + } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-discussion-comment" + "$ref": "#/components/schemas/short-blob" }, "examples": { "default": { - "$ref": "#/components/examples/team-discussion-comment-2" + "$ref": "#/components/examples/short-blob" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", + "schema": { + "type": "string" + } + } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussion-comments" - }, - "deprecated": true - }, - "delete": { - "summary": "Delete a discussion comment (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/reference/teams#delete-a-discussion-comment) endpoint.\n\nDeletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", - "tags": [ - "teams" - ], - "operationId": "teams/delete-discussion-comment-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion-comment-legacy" - }, - "parameters": [ - { - "$ref": "#/components/parameters/team-id" }, - { - "$ref": "#/components/parameters/discussion-number" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/comment-number" - } - ], - "responses": { - "204": { - "description": "Response" + "409": { + "$ref": "#/components/responses/conflict" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "description": "Validation failed", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/validation-error" + }, + { + "$ref": "#/components/schemas/repository-rule-violation-error" + } + ] + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "discussion-comments" - }, - "deprecated": true + "category": "git", + "subcategory": "blobs" + } } }, - "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { "get": { - "summary": "List reactions for a team discussion comment (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) endpoint.\n\nList the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Get a blob", + "description": "The `content` in the response will always be Base64 encoded.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw blob data.\n- **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified.\n\n**Note** This endpoint supports blobs up to 100 megabytes in size.", "tags": [ - "reactions" + "git" ], - "operationId": "reactions/list-for-team-discussion-comment-legacy", + "operationId": "git/get-blob", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-team-discussion-comment-legacy" + "url": "https://docs.github.com/rest/git/blobs#get-a-blob" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/repo" }, { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment.", - "in": "query", - "required": false, + "name": "file_sha", + "in": "path", + "required": true, "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] + "type": "string" } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -45366,91 +47787,147 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "$ref": "#/components/schemas/blob" }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/blob" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-21", - "deprecationDate": "2020-02-26", - "category": "reactions", - "subcategory": null - }, - "deprecated": true - }, + "category": "git", + "subcategory": "blobs" + } + } + }, + "/repos/{owner}/{repo}/git/commits": { "post": { - "summary": "Create reaction for a team discussion comment (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new \"[Create reaction for a team discussion comment](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion-comment)\" endpoint.\n\nCreate a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment.", + "summary": "Create a commit", + "description": "Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects).\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n| `verified_at` | `string` | The date the signature was verified by GitHub. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", "tags": [ - "reactions" + "git" ], - "operationId": "reactions/create-for-team-discussion-comment-legacy", + "operationId": "git/create-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions/#create-reaction-for-a-team-discussion-comment-legacy" + "url": "https://docs.github.com/rest/git/commits#create-a-commit" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/discussion-number" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/comment-number" + "$ref": "#/components/parameters/repo" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "content": { + "message": { "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment.", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } + "description": "The commit message" + }, + "tree": { + "type": "string", + "description": "The SHA of the tree object this commit points to" + }, + "parents": { + "type": "array", + "description": "The full SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided.", + "items": { + "type": "string" + } + }, + "author": { + "type": "object", + "description": "Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + }, + "required": [ + "name", + "email" + ] + }, + "committer": { + "type": "object", + "description": "Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + } + }, + "signature": { + "type": "string", + "description": "The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits." + } }, "required": [ - "content" + "message", + "tree" ] }, - "example": { - "content": "heart" + "examples": { + "default": { + "value": { + "message": "my commit message", + "author": { + "name": "Mona Octocat", + "email": "octocat@github.com", + "date": "2008-07-09T16:13:30+12:00" + }, + "parents": [ + "7d1b31e74ee336d15cbd21741bc88a537ed063a0" + ], + "tree": "827efc6d56897b048c772eb4087f854f46256132", + "signature": "-----BEGIN PGP SIGNATURE-----\n\niQIzBAABAQAdFiEESn/54jMNIrGSE6Tp6cQjvhfv7nAFAlnT71cACgkQ6cQjvhfv\n7nCWwA//XVqBKWO0zF+bZl6pggvky3Oc2j1pNFuRWZ29LXpNuD5WUGXGG209B0hI\nDkmcGk19ZKUTnEUJV2Xd0R7AW01S/YSub7OYcgBkI7qUE13FVHN5ln1KvH2all2n\n2+JCV1HcJLEoTjqIFZSSu/sMdhkLQ9/NsmMAzpf/iIM0nQOyU4YRex9eD1bYj6nA\nOQPIDdAuaTQj1gFPHYLzM4zJnCqGdRlg0sOM/zC5apBNzIwlgREatOYQSCfCKV7k\nnrU34X8b9BzQaUx48Qa+Dmfn5KQ8dl27RNeWAqlkuWyv3pUauH9UeYW+KyuJeMkU\n+NyHgAsWFaCFl23kCHThbLStMZOYEnGagrd0hnm1TPS4GJkV4wfYMwnI4KuSlHKB\njHl3Js9vNzEUQipQJbgCgTiWvRJoK3ENwBTMVkKHaqT4x9U4Jk/XZB6Q8MA09ezJ\n3QgiTjTAGcum9E9QiJqMYdWQPWkaBIRRz5cET6HPB48YNXAAUsfmuYsGrnVLYbG+\nUpC6I97VybYHTy2O9XSGoaLeMI9CsFn38ycAxxbWagk5mhclNTP5mezIq6wKSwmr\nX11FW3n1J23fWZn5HJMBsRnUCgzqzX3871IqLYHqRJ/bpZ4h20RhTyPj5c/z7QXp\neSakNQMfbbMcljkha+ZMuVQX1K9aRlVqbmv3ZMWh+OijLYVU2bc=\n=5Io4\n-----END PGP SIGNATURE-----\n" + } + } } } } @@ -45461,78 +47938,63 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/git-commit" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "$ref": "#/components/examples/git-commit" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "schema": { + "type": "string" + } + } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-21", - "deprecationDate": "2020-02-26", - "category": "reactions", - "subcategory": null - }, - "deprecated": true + "category": "git", + "subcategory": "commits" + } } }, - "/teams/{team_id}/discussions/{discussion_number}/reactions": { + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { "get": { - "summary": "List reactions for a team discussion (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion) endpoint.\n\nList the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Get a commit object", + "description": "Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects).\n\nTo get the contents of a commit, see \"[Get a commit](/rest/commits/commits#get-a-commit).\"\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n| `verified_at` | `string` | The date the signature was verified by GitHub. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", "tags": [ - "reactions" + "git" ], - "operationId": "reactions/list-for-team-discussion-legacy", + "operationId": "git/get-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-team-discussion-legacy" + "url": "https://docs.github.com/rest/git/commits#get-a-commit-object" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/discussion-number" - }, - { - "name": "content", - "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/commit-sha" } ], "responses": { @@ -45541,148 +48003,52 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "$ref": "#/components/schemas/git-commit" }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/git-commit-2" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." } - ], - "removalDate": "2021-02-21", - "deprecationDate": "2020-02-26", - "category": "reactions", - "subcategory": null - }, - "deprecated": true - }, - "post": { - "summary": "Create reaction for a team discussion (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion) endpoint.\n\nCreate a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion.", - "tags": [ - "reactions" - ], - "operationId": "reactions/create-for-team-discussion-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/reactions/#create-reaction-for-a-team-discussion-legacy" - }, - "parameters": [ - { - "$ref": "#/components/parameters/team-id" }, - { - "$ref": "#/components/parameters/discussion-number" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion.", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] - } - }, - "required": [ - "content" - ] - }, - "example": { - "content": "heart" - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], - "removalDate": "2021-02-21", - "deprecationDate": "2020-02-26", - "category": "reactions", - "subcategory": null - }, - "deprecated": true + "enabledForGitHubApps": true, + "category": "git", + "subcategory": "commits" + } } }, - "/teams/{team_id}/invitations": { + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { "get": { - "summary": "List pending team invitations (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/reference/teams#list-pending-team-invitations) endpoint.\n\nThe return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.", + "summary": "List matching references", + "description": "Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array.\n\nWhen you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`.\n\n> [!NOTE]\n> You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".\n\nIf you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`.", "tags": [ - "teams" + "git" ], - "operationId": "teams/list-pending-invitations-legacy", + "operationId": "git/list-matching-refs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-pending-team-invitations-legacy" + "url": "https://docs.github.com/rest/git/refs#list-matching-references" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/git-ref-only" } ], "responses": { @@ -45693,12 +48059,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/organization-invitation" + "$ref": "#/components/schemas/git-ref" } }, "examples": { "default": { - "$ref": "#/components/examples/organization-invitation-items" + "$ref": "#/components/examples/git-ref-items" } } } @@ -45708,58 +48074,40 @@ "$ref": "#/components/headers/link" } } + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true + "category": "git", + "subcategory": "refs" + } } }, - "/teams/{team_id}/members": { + "/repos/{owner}/{repo}/git/ref/{ref}": { "get": { - "summary": "List team members (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/reference/teams#list-team-members) endpoint.\n\nTeam members will include the members of child teams.", + "summary": "Get a reference", + "description": "Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned.\n\n> [!NOTE]\n> You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".", "tags": [ - "teams" + "git" ], - "operationId": "teams/list-members-legacy", + "operationId": "git/get-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-team-members-legacy" + "url": "https://docs.github.com/rest/git/refs#get-a-reference" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "name": "role", - "description": "Filters members returned by their role in the team. Can be one of: \n\\* `member` - normal members of the team. \n\\* `maintainer` - team maintainers. \n\\* `all` - all members of the team.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "member", - "maintainer", - "all" - ], - "default": "all" - } + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/git-ref-only" } ], "responses": { @@ -45768,256 +48116,171 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/git-ref" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/git-ref" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true + "category": "git", + "subcategory": "refs" + } } }, - "/teams/{team_id}/members/{username}": { - "get": { - "summary": "Get team member (Legacy)", - "description": "The \"Get team member\" endpoint (described below) is deprecated.\n\nWe recommend using the [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships.\n\nTo list members in a team, the team must be visible to the authenticated user.", - "tags": [ - "teams" - ], - "operationId": "teams/get-member-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-team-member-legacy" - }, - "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/username" - } - ], - "responses": { - "204": { - "description": "if user is a member" - }, - "404": { - "description": "if user is not a member" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true - }, - "put": { - "summary": "Add team member (Legacy)", - "description": "The \"Add team member\" endpoint (described below) is deprecated.\n\nWe recommend using the [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nNote that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", - "tags": [ - "teams" - ], - "operationId": "teams/add-member-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#add-team-member-legacy" - }, - "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/username" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "description": "Not Found if team synchronization is set up" - }, - "422": { - "description": "Unprocessable Entity if you attempt to add an organization to a team or you attempt to add a user to a team when they are not a member of at least one other team in the same organization" - }, - "403": { - "$ref": "#/components/responses/forbidden" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true - }, - "delete": { - "summary": "Remove team member (Legacy)", - "description": "The \"Remove team member\" endpoint (described below) is deprecated.\n\nWe recommend using the [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"", + "/repos/{owner}/{repo}/git/refs": { + "post": { + "summary": "Create a reference", + "description": "Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches.", "tags": [ - "teams" + "git" ], - "operationId": "teams/remove-member-legacy", + "operationId": "git/create-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#remove-team-member-legacy" + "url": "https://docs.github.com/rest/git/refs#create-a-reference" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" } ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "description": "Not Found if team synchronization is setup" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected." + }, + "sha": { + "type": "string", + "description": "The SHA1 value for this reference." + } + }, + "required": [ + "ref", + "sha" + ] + }, + "examples": { + "default": { + "value": { + "ref": "refs/heads/featureA", + "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd" + } + } + } + } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true - } - }, - "/teams/{team_id}/memberships/{username}": { - "get": { - "summary": "Get team membership for a user (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint.\n\nTeam members will include the members of child teams.\n\nTo get a user's membership with a team, the team must be visible to the authenticated user.\n\n**Note:**\nThe response contains the `state` of the membership and the member's `role`.\n\nThe `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team).", - "tags": [ - "teams" - ], - "operationId": "teams/get-membership-for-user-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user-legacy" - }, - "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/username" - } - ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-membership" + "$ref": "#/components/schemas/git-ref" }, "examples": { - "response-if-user-is-a-team-maintainer": { - "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + "default": { + "$ref": "#/components/examples/git-ref" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA", + "schema": { + "type": "string" + } + } } }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true - }, - "put": { - "summary": "Add or update team membership for a user (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nIf the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nIf the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the \"pending\" state until the user accepts the invitation, at which point the membership will transition to the \"active\" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner.\n\nIf the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.", + "category": "git", + "subcategory": "refs" + } + } + }, + "/repos/{owner}/{repo}/git/refs/{ref}": { + "patch": { + "summary": "Update a reference", + "description": "Updates the provided reference to point to a new SHA. For more information, see \"[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)\" in the Git documentation.", "tags": [ - "teams" + "git" ], - "operationId": "teams/add-or-update-membership-for-user-legacy", + "operationId": "git/update-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user-legacy" + "url": "https://docs.github.com/rest/git/refs#update-a-reference" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/git-ref-only" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "role": { + "sha": { "type": "string", - "description": "The role that this user should have in the team. Can be one of: \n\\* `member` - a normal member of the team. \n\\* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.", - "enum": [ - "member", - "maintainer" - ], - "default": "member" + "description": "The SHA1 value to set this reference to" + }, + "force": { + "type": "boolean", + "description": "Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work.", + "default": false + } + }, + "required": [ + "sha" + ] + }, + "examples": { + "default": { + "value": { + "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd", + "force": true } } } @@ -46030,170 +48293,233 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-membership" + "$ref": "#/components/schemas/git-ref" }, "examples": { - "response-if-users-membership-with-team-is-now-pending": { - "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + "default": { + "$ref": "#/components/examples/git-ref" } } } } }, - "403": { - "description": "Forbidden if team synchronization is set up" - }, "422": { - "description": "Unprocessable Entity if you attempt to add an organization to a team" + "$ref": "#/components/responses/validation_failed" }, - "404": { - "$ref": "#/components/responses/not_found" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true + "category": "git", + "subcategory": "refs" + } }, "delete": { - "summary": "Remove team membership for a user (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"", + "summary": "Delete a reference", + "description": "Deletes the provided reference.", "tags": [ - "teams" + "git" ], - "operationId": "teams/remove-membership-for-user-legacy", + "operationId": "git/delete-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user-legacy" + "url": "https://docs.github.com/rest/git/refs#delete-a-reference" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/git-ref-only" } ], "responses": { "204": { "description": "Response" }, - "403": { - "description": "if team synchronization is set up" + "422": { + "description": "Validation failed, an attempt was made to delete the default branch, or the endpoint has been spammed." + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true + "category": "git", + "subcategory": "refs" + } } }, - "/teams/{team_id}/projects": { - "get": { - "summary": "List team projects (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/reference/teams#list-team-projects) endpoint.\n\nLists the organization projects for a team.", + "/repos/{owner}/{repo}/git/tags": { + "post": { + "summary": "Create a tag object", + "description": "Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n| `verified_at` | `string` | The date the signature was verified by GitHub. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", "tags": [ - "teams" + "git" ], - "operationId": "teams/list-projects-legacy", + "operationId": "git/create-tag", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#list-team-projects-legacy" + "url": "https://docs.github.com/rest/git/tags#create-a-tag-object" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag": { + "type": "string", + "description": "The tag's name. This is typically a version (e.g., \"v0.0.1\")." + }, + "message": { + "type": "string", + "description": "The tag message." + }, + "object": { + "type": "string", + "description": "The SHA of the git object this is tagging." + }, + "type": { + "type": "string", + "description": "The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`.", + "enum": [ + "commit", + "tree", + "blob" + ] + }, + "tagger": { + "type": "object", + "description": "An object with information about the individual creating the tag.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author of the tag" + }, + "email": { + "type": "string", + "description": "The email of the author of the tag" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + }, + "required": [ + "name", + "email" + ] + } + }, + "required": [ + "tag", + "message", + "object", + "type" + ] + }, + "examples": { + "default": { + "value": { + "tag": "v0.0.1", + "message": "initial version", + "object": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c", + "type": "commit", + "tagger": { + "name": "Monalisa Octocat", + "email": "octocat@github.com", + "date": "2011-06-17T14:53:35-07:00" + } + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-project" - } + "$ref": "#/components/schemas/git-tag" }, "examples": { "default": { - "$ref": "#/components/examples/team-project-items" + "$ref": "#/components/examples/git-tag" } } } }, "headers": { - "Link": { - "$ref": "#/components/headers/link" + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "schema": { + "type": "string" + } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true + "category": "git", + "subcategory": "tags" + } } }, - "/teams/{team_id}/projects/{project_id}": { + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { "get": { - "summary": "Check team permissions for a project (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project) endpoint.\n\nChecks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team.", + "summary": "Get a tag", + "description": "**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n| `verified_at` | `string` | The date the signature was verified by GitHub. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", "tags": [ - "teams" + "git" ], - "operationId": "teams/check-permissions-for-project-legacy", + "operationId": "git/get-tag", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#check-team-permissions-for-a-project-legacy" + "url": "https://docs.github.com/rest/git/tags#get-a-tag" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/project-id" + "name": "tag_sha", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -46202,72 +48528,120 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-project" + "$ref": "#/components/schemas/git-tag" }, "examples": { "default": { - "$ref": "#/components/examples/team-project" + "$ref": "#/components/examples/git-tag" } } } } }, "404": { - "description": "Not Found if project is not managed by this team" + "$ref": "#/components/responses/not_found" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true - }, - "put": { - "summary": "Add or update team project permissions (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions) endpoint.\n\nAdds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization.", + "category": "git", + "subcategory": "tags" + } + } + }, + "/repos/{owner}/{repo}/git/trees": { + "post": { + "summary": "Create a tree", + "description": "The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure.\n\nIf you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see \"[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)\" and \"[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference).\"\n\nReturns an error if you try to delete a file that does not exist.", "tags": [ - "teams" + "git" ], - "operationId": "teams/add-or-update-project-permissions-legacy", + "operationId": "git/create-tree", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#add-or-update-team-project-permissions-legacy" + "url": "https://docs.github.com/rest/git/trees#create-a-tree" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/project-id" + "$ref": "#/components/parameters/repo" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "permission": { + "tree": { + "type": "array", + "description": "Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure.", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The file referenced in the tree." + }, + "mode": { + "type": "string", + "description": "The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink.", + "enum": [ + "100644", + "100755", + "040000", + "160000", + "120000" + ] + }, + "type": { + "type": "string", + "description": "Either `blob`, `tree`, or `commit`.", + "enum": [ + "blob", + "tree", + "commit" + ] + }, + "sha": { + "type": "string", + "description": "The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error.", + "nullable": true + }, + "content": { + "type": "string", + "description": "The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error." + } + } + } + }, + "base_tree": { "type": "string", - "description": "The permission to grant to the team for this project. Can be one of: \n\\* `read` - team members can read, but not write to or administer this project. \n\\* `write` - team members can read and write, but not administer this project. \n\\* `admin` - team members can read, write and administer this project. \nDefault: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", - "enum": [ - "read", - "write", - "admin" + "description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit." + } + }, + "required": [ + "tree" + ] + }, + "examples": { + "default": { + "value": { + "base_tree": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", + "tree": [ + { + "path": "file.rb", + "mode": "100644", + "type": "blob", + "sha": "44b4fc6d56897b048c772eb4087f854f46256132" + } ] } } @@ -46276,130 +48650,87 @@ } }, "responses": { - "204": { - "description": "Response" - }, - "403": { - "description": "Forbidden if the project is not owned by the organization", + "201": { + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } - } + "$ref": "#/components/schemas/git-tree" }, "examples": { - "response-if-the-project-is-not-owned-by-the-organization": { - "value": { - "message": "Must have admin rights to Repository.", - "documentation_url": "https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions" - } + "default": { + "$ref": "#/components/examples/git-tree" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7", + "schema": { + "type": "string" + } + } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, "422": { "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true - }, - "delete": { - "summary": "Remove a project from a team (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team) endpoint.\n\nRemoves an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it.", - "tags": [ - "teams" - ], - "operationId": "teams/remove-project-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#remove-a-project-from-a-team-legacy" - }, - "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, - { - "$ref": "#/components/parameters/project-id" - } - ], - "responses": { - "204": { - "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "403": { + "$ref": "#/components/responses/forbidden" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true + "category": "git", + "subcategory": "trees" + } } }, - "/teams/{team_id}/repos": { + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { "get": { - "summary": "List team repositories (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/reference/teams#list-team-repositories) endpoint.", + "summary": "Get a tree", + "description": "Returns a single tree using the SHA1 value or ref name for that tree.\n\nIf `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time.\n\n> [!NOTE]\n> The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter.", "tags": [ - "teams" + "git" ], - "operationId": "teams/list-repos-legacy", + "operationId": "git/get-tree", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#list-team-repositories-legacy" + "url": "https://docs.github.com/rest/git/trees#get-a-tree" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "name": "tree_sha", + "description": "The SHA1 value or ref (branch or tag) name of the tree.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + }, + { + "name": "recursive", + "description": "Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `\"true\"`, and `\"false\"`. Omit this parameter to prevent recursively returning objects or subtrees.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { @@ -46408,116 +48739,110 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "$ref": "#/components/schemas/git-tree" }, "examples": { - "default": { - "$ref": "#/components/examples/minimal-repository-items" + "default-response": { + "$ref": "#/components/examples/git-tree-default-response" + }, + "response-recursively-retrieving-a-tree": { + "$ref": "#/components/examples/git-tree-response-recursively-retrieving-a-tree" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true + "category": "git", + "subcategory": "trees" + } } }, - "/teams/{team_id}/repos/{owner}/{repo}": { + "/repos/{owner}/{repo}/hooks": { "get": { - "summary": "Check team permissions for a repository (Legacy)", - "description": "**Note**: Repositories inherited through a parent team will also be checked.\n\n**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-repository) endpoint.\n\nYou can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "summary": "List repository webhooks", + "description": "Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days.", "tags": [ - "teams" + "repos" ], - "operationId": "teams/check-permissions-for-repo-legacy", + "operationId": "repos/list-webhooks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#check-team-permissions-for-a-repository-legacy" + "url": "https://docs.github.com/rest/repos/webhooks#list-repository-webhooks" }, "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, { "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Alternative response with extra repository information", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-repository" + "type": "array", + "items": { + "$ref": "#/components/schemas/hook" + } }, "examples": { - "alternative-response-with-extra-repository-information": { - "$ref": "#/components/examples/team-repository-alternative-response-with-extra-repository-information" + "default": { + "$ref": "#/components/examples/hook-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "204": { - "description": "Response if repository is managed by this team" - }, "404": { - "description": "Not Found if repository is not managed by this team" + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true + "category": "repos", + "subcategory": "webhooks" + } }, - "put": { - "summary": "Add or update team repository permissions (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new \"[Add or update team repository permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-repository-permissions)\" endpoint.\n\nTo add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization.\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "post": { + "summary": "Create a repository webhook", + "description": "Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can\nshare the same `config` as long as those webhooks do not have any `events` that overlap.", "tags": [ - "teams" + "repos" ], - "operationId": "teams/add-or-update-repo-permissions-legacy", + "operationId": "repos/create-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#add-or-update-team-repository-permissions-legacy" + "url": "https://docs.github.com/rest/repos/webhooks#create-a-repository-webhook" }, "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, { "$ref": "#/components/parameters/owner" }, @@ -46526,105 +48851,136 @@ } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "permission": { + "name": { "type": "string", - "description": "The permission to grant the team on this repository. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer this repository. \n\\* `push` - team members can pull and push, but not administer this repository. \n\\* `admin` - team members can pull, push and administer this repository. \n \nIf no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository.", - "enum": [ - "pull", - "push", - "admin" - ] - } - } - } - } - } - }, - "responses": { - "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "description": "Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`." + }, + "config": { + "type": "object", + "description": "Key/value pairs to provide settings for this webhook.", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + } + }, + "events": { + "type": "array", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", + "default": [ + "push" + ], + "items": { + "type": "string" + } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true + } + }, + "additionalProperties": false + }, + "examples": { + "default": { + "value": { + "name": "web", + "active": true, + "events": [ + "push", + "pull_request" + ], + "config": { + "url": "https://example.com/webhook", + "content_type": "json", + "insecure_ssl": "0" + } + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hook" + }, + "examples": { + "default": { + "$ref": "#/components/examples/hook" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678", + "schema": { + "type": "string" + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true - }, - "delete": { - "summary": "Remove a repository from a team (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/reference/teams#remove-a-repository-from-a-team) endpoint.\n\nIf the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team.", + "category": "repos", + "subcategory": "webhooks" + } + } + }, + "/repos/{owner}/{repo}/hooks/{hook_id}": { + "get": { + "summary": "Get a repository webhook", + "description": "Returns a webhook configured in a repository. To get only the webhook `config` properties, see \"[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository).\"", "tags": [ - "teams" + "repos" ], - "operationId": "teams/remove-repo-legacy", + "operationId": "repos/get-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#remove-a-repository-from-a-team-legacy" + "url": "https://docs.github.com/rest/repos/webhooks#get-a-repository-webhook" }, "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, { "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true - } - }, - "/teams/{team_id}/team-sync/group-mappings": { - "get": { - "summary": "List IdP groups for a team (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List IdP groups for a team`](https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nList IdP groups connected to a team on GitHub.", - "tags": [ - "teams" - ], - "operationId": "teams/list-idp-groups-for-legacy", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team-legacy" - }, - "parameters": [ + }, { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/hook-id" } ], "responses": { @@ -46633,114 +48989,99 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/group-mapping" + "$ref": "#/components/schemas/hook" }, "examples": { "default": { - "$ref": "#/components/examples/group-mapping-3" + "$ref": "#/components/examples/hook" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": true, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "team-sync" - }, - "deprecated": true + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" + } }, "patch": { - "summary": "Create or update IdP group connections (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create or update IdP group connections`](https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nCreates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team.", + "summary": "Update a repository webhook", + "description": "Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use \"[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository).\"", "tags": [ - "teams" + "repos" ], - "operationId": "teams/create-or-update-idp-group-connections-legacy", + "operationId": "repos/update-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections-legacy" + "url": "https://docs.github.com/rest/repos/webhooks#update-a-repository-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "groups": { + "config": { + "$ref": "#/components/schemas/webhook-config" + }, + "events": { "type": "array", - "description": "The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove.", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events.", + "default": [ + "push" + ], "items": { - "type": "object", - "properties": { - "group_id": { - "type": "string", - "description": "ID of the IdP group." - }, - "group_name": { - "type": "string", - "description": "Name of the IdP group." - }, - "group_description": { - "type": "string", - "description": "Description of the IdP group." - }, - "id": { - "type": "string", - "example": "\"caceab43fc9ffa20081c\"" - }, - "name": { - "type": "string", - "example": "\"external-team-6c13e7288ef7\"" - }, - "description": { - "type": "string", - "example": "\"moar cheese pleese\"" - } - }, - "required": [ - "group_id", - "group_name", - "group_description" - ] + "type": "string" } }, - "synced_at": { - "type": "string", - "example": "\"I am not a timestamp\"" + "add_events": { + "type": "array", + "description": "Determines a list of events to be added to the list of events that the Hook triggers for.", + "items": { + "type": "string" + } + }, + "remove_events": { + "type": "array", + "description": "Determines a list of events to be removed from the list of events that the Hook triggers for.", + "items": { + "type": "string" + } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true } - }, - "required": [ - "groups" - ] + } }, - "example": { - "groups": [ - { - "group_id": "123", - "group_name": "Octocat admins", - "description": "The people who configure your octoworld.", - "group_description": "string" + "examples": { + "default": { + "value": { + "active": true, + "add_events": [ + "pull_request" + ] } - ] + } } } } @@ -46751,11 +49092,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/group-mapping" + "$ref": "#/components/schemas/hook" }, "examples": { "default": { - "$ref": "#/components/examples/group-mapping-2" + "$ref": "#/components/examples/hook" } } } @@ -46764,109 +49105,77 @@ "422": { "$ref": "#/components/responses/validation_failed" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": true, - "enabledForGitHubApps": false, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "team-sync" - }, - "deprecated": true - } - }, - "/teams/{team_id}/teams": { - "get": { - "summary": "List child teams (Legacy)", - "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/reference/teams#list-child-teams) endpoint.", + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" + } + }, + "delete": { + "summary": "Delete a repository webhook", + "description": "Delete a webhook for an organization.\n\nThe authenticated user must be a repository owner, or have admin access in the repository, to delete the webhook.", "tags": [ - "teams" + "repos" ], - "operationId": "teams/list-child-legacy", + "operationId": "repos/delete-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams/#list-child-teams-legacy" + "url": "https://docs.github.com/rest/repos/webhooks#delete-a-repository-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/hook-id" } ], "responses": { - "200": { - "description": "if child teams exist", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } - }, - "examples": { - "response-if-child-teams-exist": { - "$ref": "#/components/examples/team-items-response-if-child-teams-exist" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": null - }, - "deprecated": true + "category": "repos", + "subcategory": "webhooks" + } } }, - "/user": { + "/repos/{owner}/{repo}/hooks/{hook_id}/config": { "get": { - "summary": "Get the authenticated user", - "description": "If the authenticated user is authenticated through basic authentication or OAuth with the `user` scope, then the response lists public and private profile information.\n\nIf the authenticated user is authenticated through OAuth without the `user` scope, then the response lists only public profile information.", + "summary": "Get a webhook configuration for a repository", + "description": "Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use \"[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint.", "tags": [ - "users" + "repos" ], - "operationId": "users/get-authenticated", + "operationId": "repos/get-webhook-config-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#get-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/webhooks#get-a-webhook-configuration-for-a-repository" }, "parameters": [ - + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" + } ], "responses": { "200": { @@ -46874,104 +49183,74 @@ "content": { "application/json": { "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/private-user" - }, - { - "$ref": "#/components/schemas/public-user" - } - ] + "$ref": "#/components/schemas/webhook-config" }, "examples": { - "response-with-public-and-private-profile-information": { - "$ref": "#/components/examples/private-user-response-with-public-and-private-profile-information" - }, - "response-with-public-profile-information": { - "$ref": "#/components/examples/private-user-response-with-public-profile-information" + "default": { + "$ref": "#/components/examples/webhook-config" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": null + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" } }, "patch": { - "summary": "Update the authenticated user", - "description": "**Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.", + "summary": "Update a webhook configuration for a repository", + "description": "Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use \"[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook).\"\n\nOAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint.", "tags": [ - "users" + "repos" ], - "operationId": "users/update-authenticated", + "operationId": "repos/update-webhook-config-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users/#update-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/webhooks#update-a-webhook-configuration-for-a-repository" }, "parameters": [ - + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" + } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "name": { - "description": "The new name of the user.", - "type": "string", - "example": "Omar Jahandar" - }, - "email": { - "description": "The publicly visible email address of the user.", - "type": "string", - "example": "omar@example.com" - }, - "blog": { - "description": "The new blog URL of the user.", - "type": "string", - "example": "blog.example.com" - }, - "twitter_username": { - "description": "The new Twitter username of the user.", - "type": "string", - "example": "therealomarj", - "nullable": true - }, - "company": { - "description": "The new company of the user.", - "type": "string", - "example": "Acme corporation" + "url": { + "$ref": "#/components/schemas/webhook-config-url" }, - "location": { - "description": "The new location of the user.", - "type": "string", - "example": "Berlin, Germany" + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" }, - "hireable": { - "description": "The new hiring availability of the user.", - "type": "boolean" + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" }, - "bio": { - "description": "The new short biography of the user.", - "type": "string" + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" } } } @@ -46984,57 +49263,53 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/private-user" + "$ref": "#/components/schemas/webhook-config" }, "examples": { "default": { - "$ref": "#/components/examples/private-user" + "$ref": "#/components/examples/webhook-config" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": null + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" } } }, - "/user/blocks": { + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { "get": { - "summary": "List users blocked by the authenticated user", - "description": "List the users you've blocked on your personal account.", + "summary": "List deliveries for a repository webhook", + "description": "Returns a list of webhook deliveries for a webhook configured in a repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/list-blocked-by-authenticated", + "operationId": "repos/list-webhook-deliveries", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-users-blocked-by-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/webhooks#list-deliveries-for-a-repository-webhook" }, "parameters": [ - + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/cursor" + } ], "responses": { "200": { @@ -47044,126 +49319,121 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/hook-delivery-item" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/hook-delivery-items" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "400": { + "$ref": "#/components/responses/bad_request" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "blocking" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" } } }, - "/user/blocks/{username}": { + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { "get": { - "summary": "Check if a user is blocked by the authenticated user", - "description": "", + "summary": "Get a delivery for a repository webhook", + "description": "Returns a delivery for a webhook configured in a repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/check-blocked", + "operationId": "repos/get-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#check-if-a-user-is-blocked-by-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/webhooks#get-a-delivery-for-a-repository-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" + }, + { + "$ref": "#/components/parameters/delivery-id" } ], "responses": { - "204": { - "description": "If the user is blocked:" - }, - "404": { - "description": "If the user is not blocked:", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "$ref": "#/components/schemas/hook-delivery" + }, + "examples": { + "default": { + "$ref": "#/components/examples/hook-delivery" + } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "400": { + "$ref": "#/components/responses/bad_request" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "blocking" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" } - }, - "put": { - "summary": "Block a user", - "description": "", + } + }, + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + "post": { + "summary": "Redeliver a delivery for a repository webhook", + "description": "Redeliver a webhook delivery for a webhook configured in a repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/block", + "operationId": "repos/redeliver-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#block-a-user" + "url": "https://docs.github.com/rest/repos/webhooks#redeliver-a-delivery-for-a-repository-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/username" - } - ], - "responses": { - "204": { - "description": "Response" + "$ref": "#/components/parameters/owner" }, - "304": { - "$ref": "#/components/responses/not_modified" + { + "$ref": "#/components/parameters/repo" }, - "404": { - "$ref": "#/components/responses/not_found" + { + "$ref": "#/components/parameters/hook-id" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/delivery-id" + } + ], + "responses": { + "202": { + "$ref": "#/components/responses/accepted" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "400": { + "$ref": "#/components/responses/bad_request" }, "422": { "$ref": "#/components/responses/validation_failed" @@ -47171,422 +49441,227 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "blocking" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" } - }, - "delete": { - "summary": "Unblock a user", - "description": "", + } + }, + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { + "post": { + "summary": "Ping a repository webhook", + "description": "This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook.", "tags": [ - "users" + "repos" ], - "operationId": "users/unblock", + "operationId": "repos/ping-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#unblock-a-user" + "url": "https://docs.github.com/rest/repos/webhooks#ping-a-repository-webhook" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" } ], "responses": { "204": { "description": "Response" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "blocking" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" } } }, - "/user/email/visibility": { - "patch": { - "summary": "Set primary email visibility for the authenticated user", - "description": "Sets the visibility for your primary email addresses.", + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { + "post": { + "summary": "Test the push repository webhook", + "description": "This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated.\n\n> [!NOTE]\n> Previously `/repos/:owner/:repo/hooks/:hook_id/test`", "tags": [ - "users" + "repos" ], - "operationId": "users/set-primary-email-visibility-for-authenticated", + "operationId": "repos/test-push-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/webhooks#test-the-push-repository-webhook" }, "parameters": [ - - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "visibility": { - "description": "Denotes whether an email is publicly visible.", - "type": "string", - "enum": [ - "public", - "private" - ] - } - }, - "required": [ - "visibility" - ], - "type": "object" - } - } + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" } - }, + ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/email-items-3" - } - } - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" } } }, - "/user/emails": { + "/repos/{owner}/{repo}/immutable-releases": { "get": { - "summary": "List email addresses for the authenticated user", - "description": "Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope.", + "summary": "Check if immutable releases are enabled for a repository", + "description": "Shows whether immutable releases are enabled or disabled. Also identifies whether immutability is being\nenforced by the repository owner. The authenticated user must have admin read access to the repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/list-emails-for-authenticated", + "operationId": "repos/check-immutable-releases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-email-addresses-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/repos#check-if-immutable-releases-are-enabled-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "Response", + "description": "Response if immutable releases are enabled", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } + "$ref": "#/components/schemas/check-immutable-releases" }, "examples": { "default": { - "$ref": "#/components/examples/email-items-2" + "value": { + "enabled": true, + "enforced_by_owner": false + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "description": "Not Found if immutable releases are not enabled for the repository" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } }, - "post": { - "summary": "Add an email address for the authenticated user", - "description": "This endpoint is accessible with the `user` scope.", + "put": { + "summary": "Enable immutable releases", + "description": "Enables immutable releases for a repository. The authenticated user must have admin access to the repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/add-email-for-authenticated", + "operationId": "repos/enable-immutable-releases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#add-an-email-address-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/repos#enable-immutable-releases" }, "parameters": [ - - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "emails": { - "description": "Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", - "type": "array", - "items": { - "type": "string", - "example": "username@example.com", - "minItems": 1 - }, - "example": [ - - ] - } - }, - "required": [ - "emails" - ], - "example": { - "emails": [ - "octocat@github.com", - "mona@github.com" - ] - } - }, - { - "type": "array", - "items": { - "type": "string", - "example": "username@example.com", - "minItems": 1 - } - }, - { - "type": "string" - } - ] - } - } + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } - }, + ], "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/email-items" - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "204": { + "$ref": "#/components/responses/no_content" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } }, "delete": { - "summary": "Delete an email address for the authenticated user", - "description": "This endpoint is accessible with the `user` scope.", + "summary": "Disable immutable releases", + "description": "Disables immutable releases for a repository. The authenticated user must have admin access to the repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/delete-email-for-authenticated", + "operationId": "repos/disable-immutable-releases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#delete-an-email-address-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/repos#disable-immutable-releases" }, "parameters": [ - - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "description": "Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", - "properties": { - "emails": { - "description": "Email addresses associated with the GitHub user account.", - "type": "array", - "items": { - "type": "string", - "example": "username@example.com", - "minItems": 1 - } - } - }, - "example": { - "emails": [ - "octocat@github.com", - "mona@github.com" - ] - }, - "required": [ - "emails" - ] - }, - { - "type": "array", - "items": { - "type": "string", - "example": "username@example.com", - "minItems": 1 - } - }, - { - "type": "string" - } - ] - } - } + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } - }, + ], "responses": { "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "$ref": "#/components/responses/no_content" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } } }, - "/user/followers": { + "/repos/{owner}/{repo}/import": { "get": { - "summary": "List followers of the authenticated user", - "description": "Lists the people following the authenticated user.", + "summary": "Get an import status", + "description": "View the progress of an import.\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).\n\n**Import status**\n\nThis section includes details about the possible values of the `status` field of the Import Progress response.\n\nAn import that does not have errors will progress through these steps:\n\n* `detecting` - the \"detection\" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL.\n* `importing` - the \"raw\" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import).\n* `mapping` - the \"rewrite\" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information.\n* `pushing` - the \"push\" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is \"Writing objects\".\n* `complete` - the import is complete, and the repository is ready on GitHub.\n\nIf there are problems, you will see one of these in the `status` field:\n\n* `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section.\n* `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information.\n* `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section.\n* `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL.\n* `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section.\n\n**The project_choices field**\n\nWhen multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type.\n\n**Git LFS related fields**\n\nThis section includes details about Git LFS related fields that may be present in the Import Progress response.\n\n* `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken.\n* `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step.\n* `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository.\n* `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a \"Get Large Files\" request.", "tags": [ - "users" + "migrations" ], - "operationId": "users/list-followers-for-authenticated-user", + "operationId": "migrations/get-import-status", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-followers-of-the-authenticated-user" + "url": "https://docs.github.com/rest/migrations/source-imports#get-an-import-status" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -47595,266 +49670,318 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/import" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/import" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" - } - } - }, - "/user/following": { - "get": { - "summary": "List the people the authenticated user follows", - "description": "Lists the people who the authenticated user follows.", + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true + }, + "put": { + "summary": "Start an import", + "description": "Start a source import to a GitHub repository using GitHub Importer.\nImporting into a GitHub repository with GitHub Actions enabled is not supported and will\nreturn a status `422 Unprocessable Entity` response.\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).", "tags": [ - "users" + "migrations" ], - "operationId": "users/list-followed-by-authenticated", + "operationId": "migrations/start-import", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-the-people-the-authenticated-user-follows" + "url": "https://docs.github.com/rest/migrations/source-imports#start-an-import" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "vcs_url": { + "type": "string", + "description": "The URL of the originating repository." + }, + "vcs": { + "type": "string", + "description": "The originating VCS type. Without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response.", + "enum": [ + "subversion", + "git", + "mercurial", + "tfvc" + ] + }, + "vcs_username": { + "type": "string", + "description": "If authentication is required, the username to provide to `vcs_url`." + }, + "vcs_password": { + "type": "string", + "description": "If authentication is required, the password to provide to `vcs_url`." + }, + "tfvc_project": { + "type": "string", + "description": "For a tfvc import, the name of the project that is being imported." + } + }, + "required": [ + "vcs_url" + ] + }, + "examples": { + "default": { + "value": { + "vcs": "subversion", + "vcs_url": "http://svn.mycompany.com/svn/myproject", + "vcs_username": "octocat", + "vcs_password": "secret" + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/import" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/import-2" } } } }, "headers": { - "Link": { - "$ref": "#/components/headers/link" + "Location": { + "example": "https://api.github.com/repos/spraints/socm/import", + "schema": { + "type": "string" + } } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" - } - } - }, - "/user/following/{username}": { - "get": { - "summary": "Check if a person is followed by the authenticated user", - "description": "", + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true + }, + "patch": { + "summary": "Update an import", + "description": "An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API\nrequest. If no parameters are provided, the import will be restarted.\n\nSome servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will\nhave the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array.\nYou can select the project to import by providing one of the objects in the `project_choices` array in the update request.\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).", "tags": [ - "users" + "migrations" ], - "operationId": "users/check-person-is-followed-by-authenticated", + "operationId": "migrations/update-import", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#check-if-a-person-is-followed-by-the-authenticated-user" + "url": "https://docs.github.com/rest/migrations/source-imports#update-an-import" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "vcs_username": { + "type": "string", + "description": "The username to provide to the originating repository." + }, + "vcs_password": { + "type": "string", + "description": "The password to provide to the originating repository." + }, + "vcs": { + "type": "string", + "description": "The type of version control system you are migrating from.", + "enum": [ + "subversion", + "tfvc", + "git", + "mercurial" + ], + "example": "\"git\"" + }, + "tfvc_project": { + "type": "string", + "description": "For a tfvc import, the name of the project that is being imported.", + "example": "\"project1\"" + } + }, + "nullable": true + }, + "examples": { + "example-1": { + "summary": "Update authentication for an import", + "value": { + "vcs_username": "octocat", + "vcs_password": "secret" + } + }, + "example-2": { + "summary": "Updating the project choice", + "value": { + "vcs": "tfvc", + "tfvc_project": "project1", + "human_name": "project1 (tfs)" + } + }, + "example-3": { + "summary": "Restarting an import" + } + } + } + } + }, "responses": { - "204": { - "description": "if the person is followed by the authenticated user" - }, - "404": { - "description": "if the person is not followed by the authenticated user", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "$ref": "#/components/schemas/import" + }, + "examples": { + "example-1": { + "$ref": "#/components/examples/import-example-1" + }, + "example-2": { + "$ref": "#/components/examples/import-example-2" + }, + "example-3": { + "$ref": "#/components/examples/import-response" + } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" - } - }, - "put": { - "summary": "Follow a user", - "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"\n\nFollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope.", - "tags": [ - "users" - ], - "operationId": "users/follow", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#follow-a-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/username" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" - } + "deprecated": true }, "delete": { - "summary": "Unfollow a user", - "description": "Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope.", + "summary": "Cancel an import", + "description": "Stop an import for a repository.\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).", "tags": [ - "users" + "migrations" ], - "operationId": "users/unfollow", + "operationId": "migrations/cancel-import", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#unfollow-a-user" + "url": "https://docs.github.com/rest/migrations/source-imports#cancel-an-import" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { "204": { "description": "Response" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" - } + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true } }, - "/user/gpg_keys": { + "/repos/{owner}/{repo}/import/authors": { "get": { - "summary": "List GPG keys for the authenticated user", - "description": "Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Get commit authors", + "description": "Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `.\n\nThis endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information.\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).", "tags": [ - "users" + "migrations" ], - "operationId": "users/list-gpg-keys-for-authenticated", + "operationId": "migrations/get-commit-authors", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-gpg-keys-for-the-authenticated-user" + "url": "https://docs.github.com/rest/migrations/source-imports#get-commit-authors" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/since-user" } ], "responses": { @@ -47865,88 +49992,103 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/gpg-key" + "$ref": "#/components/schemas/porter-author" } }, "examples": { "default": { - "$ref": "#/components/examples/gpg-key-items" + "$ref": "#/components/examples/porter-author-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "gpg-keys" - } - }, - "post": { - "summary": "Create a GPG key for the authenticated user", - "description": "Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", - "operationId": "users/create-gpg-key-for-authenticated", + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true + } + }, + "/repos/{owner}/{repo}/import/authors/{author_id}": { + "patch": { + "summary": "Map a commit author", + "description": "Update an author's identity for the import. Your application can continue updating authors any time before you push\nnew commits to the repository.\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).", "tags": [ - "users" + "migrations" ], + "operationId": "migrations/map-commit-author", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#create-a-gpg-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" }, "parameters": [ - + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "author_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "armored_public_key": { - "description": "A GPG key in ASCII-armored format.", - "type": "string" + "email": { + "type": "string", + "description": "The new Git author email." + }, + "name": { + "type": "string", + "description": "The new Git author name." } }, - "type": "object", - "required": [ - "armored_public_key" - ] + "additionalProperties": false + }, + "examples": { + "default": { + "value": { + "email": "hubot@github.com", + "name": "Hubot the Robot" + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/gpg-key" + "$ref": "#/components/schemas/porter-author" }, "examples": { "default": { - "$ref": "#/components/examples/gpg-key" + "$ref": "#/components/examples/porter-author" } } } @@ -47955,45 +50097,42 @@ "422": { "$ref": "#/components/responses/validation_failed" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "gpg-keys" - } + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true } }, - "/user/gpg_keys/{gpg_key_id}": { + "/repos/{owner}/{repo}/import/large_files": { "get": { - "summary": "Get a GPG key for the authenticated user", - "description": "View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Get large files", + "description": "List files larger than 100MB found during the import\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).", "tags": [ - "users" + "migrations" ], - "operationId": "users/get-gpg-key-for-authenticated", + "operationId": "migrations/get-large-files", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#get-a-gpg-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/migrations/source-imports#get-large-files" }, "parameters": [ { - "$ref": "#/components/parameters/gpg-key-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -48002,409 +50141,431 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/gpg-key" + "type": "array", + "items": { + "$ref": "#/components/schemas/porter-large-file" + } }, "examples": { "default": { - "$ref": "#/components/examples/gpg-key" + "$ref": "#/components/examples/porter-large-file-items" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "gpg-keys" - } - }, - "delete": { - "summary": "Delete a GPG key for the authenticated user", - "description": "Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true + } + }, + "/repos/{owner}/{repo}/import/lfs": { + "patch": { + "summary": "Update Git LFS preference", + "description": "You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability\nis powered by [Git LFS](https://git-lfs.com).\n\nYou can learn more about our LFS feature and working with large files [on our help\nsite](https://docs.github.com/repositories/working-with-files/managing-large-files).\n\n> [!WARNING]\n> **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation).", "tags": [ - "users" + "migrations" ], - "operationId": "users/delete-gpg-key-for-authenticated", + "operationId": "migrations/set-lfs-preference", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#delete-a-gpg-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" }, "parameters": [ { - "$ref": "#/components/parameters/gpg-key-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "use_lfs": { + "type": "string", + "description": "Whether to store large files during the import. `opt_in` means large files will be stored using Git LFS. `opt_out` means large files will be removed during the import.", + "enum": [ + "opt_in", + "opt_out" + ] + } + }, + "required": [ + "use_lfs" + ] + }, + "examples": { + "default": { + "value": { + "use_lfs": "opt_in" + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/import" + }, + "examples": { + "default": { + "$ref": "#/components/examples/import" + } + } + } + } }, "422": { "$ref": "#/components/responses/validation_failed" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "gpg-keys" - } + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true } }, - "/user/installations": { + "/repos/{owner}/{repo}/installation": { "get": { - "summary": "List app installations accessible to the user access token", - "description": "Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access.\n\nYou must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.\n\nYou can find the permissions for the installation under the `permissions` key.", + "summary": "Get a repository installation for the authenticated app", + "description": "Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", "tags": [ "apps" ], - "operationId": "apps/list-installations-for-authenticated-user", + "operationId": "apps/get-repo-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token" + "url": "https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "You can find the permissions for the installation under the `permissions` key.", + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "installations" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "installations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/installation" - } - } - } + "$ref": "#/components/schemas/installation" }, "examples": { "default": { - "$ref": "#/components/examples/base-installation-for-auth-user-paginated" + "$ref": "#/components/examples/installation" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "301": { + "$ref": "#/components/responses/moved_permanently" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "previews": [ - - ], "category": "apps", - "subcategory": "installations" + "subcategory": "apps" } } }, - "/user/installations/{installation_id}/repositories": { + "/repos/{owner}/{repo}/interaction-limits": { "get": { - "summary": "List repositories accessible to the user access token", - "description": "List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.\n\nYou must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint.\n\nThe access the user has to each repository is included in the hash under the `permissions` key.", + "summary": "Get interaction restrictions for a repository", + "description": "Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response.", "tags": [ - "apps" + "interactions" ], - "operationId": "apps/list-installation-repos-for-authenticated-user", + "operationId": "interactions/get-restrictions-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-user-access-token" + "url": "https://docs.github.com/rest/interactions/repos#get-interaction-restrictions-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/installation-id" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "The access the user has to each repository is included in the hash under the `permissions` key.", + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "repositories" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "repository_selection": { - "type": "string" + "anyOf": [ + { + "$ref": "#/components/schemas/interaction-limit-response" }, - "repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" - } + { + "type": "object", + "properties": {}, + "additionalProperties": false } - } + ] }, "examples": { "default": { - "$ref": "#/components/examples/repository-paginated" + "$ref": "#/components/examples/interaction-limit-2" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": false, - "name": "mercy", - "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" - } - ], - "category": "apps", - "subcategory": "installations" + "enabledForGitHubApps": true, + "category": "interactions", + "subcategory": "repos" } - } - }, - "/user/installations/{installation_id}/repositories/{repository_id}": { + }, "put": { - "summary": "Add a repository to an app installation", - "description": "Add a single repository to an installation. The authenticated user must have admin access to the repository.\n\nYou must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint.", + "summary": "Set interaction restrictions for a repository", + "description": "Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository.", "tags": [ - "apps" + "interactions" ], - "operationId": "apps/add-repo-to-installation", + "operationId": "interactions/set-restrictions-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#add-a-repository-to-an-app-installation" + "url": "https://docs.github.com/rest/interactions/repos#set-interaction-restrictions-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/installation-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit" + }, + "examples": { + "default": { + "summary": "Example request body", + "value": { + "limit": "collaborators_only", + "expiry": "one_day" + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-2" + } + } + } + } }, - "404": { - "$ref": "#/components/responses/not_found" + "409": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "apps", - "subcategory": "installations" + "enabledForGitHubApps": true, + "category": "interactions", + "subcategory": "repos" } }, "delete": { - "summary": "Remove a repository from an app installation", - "description": "Remove a single repository from an installation. The authenticated user must have admin access to the repository.\n\nYou must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint.", + "summary": "Remove interaction restrictions for a repository", + "description": "Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository.", "tags": [ - "apps" + "interactions" ], - "operationId": "apps/remove-repo-from-installation", + "operationId": "interactions/remove-restrictions-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#remove-a-repository-from-an-app-installation" + "url": "https://docs.github.com/rest/interactions/repos#remove-interaction-restrictions-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/installation-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/repo" } ], "responses": { "204": { "description": "Response" }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" + "409": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "apps", - "subcategory": "installations" + "enabledForGitHubApps": true, + "category": "interactions", + "subcategory": "repos" } } }, - "/user/interaction-limits": { + "/repos/{owner}/{repo}/invitations": { "get": { - "summary": "Get interaction restrictions for your public repositories", - "description": "Shows which type of GitHub user can interact with your public repositories and when the restriction expires.", + "summary": "List repository invitations", + "description": "When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations.", "tags": [ - "interactions" + "repos" ], - "operationId": "interactions/get-restrictions-for-authenticated-user", + "operationId": "repos/list-invitations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-your-public-repositories" + "url": "https://docs.github.com/rest/collaborators/invitations#list-repository-invitations" }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], "responses": { "200": { - "description": "Default response", + "description": "Response", "content": { "application/json": { "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/interaction-limit-response" - }, - { - "type": "object", - "properties": { - }, - "additionalProperties": false - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-invitation" + } }, "examples": { "default": { - "$ref": "#/components/examples/interaction-limit-response" + "$ref": "#/components/examples/repository-invitation-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "204": { - "description": "Response when there are no restrictions" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "interactions", - "subcategory": "user" + "enabledForGitHubApps": true, + "category": "collaborators", + "subcategory": "invitations" } - }, - "put": { - "summary": "Set interaction restrictions for your public repositories", - "description": "Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user.", + } + }, + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + "patch": { + "summary": "Update a repository invitation", + "description": "", "tags": [ - "interactions" + "repos" ], - "operationId": "interactions/set-restrictions-for-authenticated-user", + "operationId": "repos/update-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-your-public-repositories" + "url": "https://docs.github.com/rest/collaborators/invitations#update-a-repository-invitation" }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/invitation-id" + } + ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/interaction-limit" + "type": "object", + "properties": { + "permissions": { + "type": "string", + "description": "The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`.", + "enum": [ + "read", + "write", + "maintain", + "triage", + "admin" + ] + } + } + }, + "examples": { + "default": { + "summary": "Example request body", + "value": { + "permissions": "write" + } + } } } } @@ -48415,41 +50576,46 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/interaction-limit-response" + "$ref": "#/components/schemas/repository-invitation" }, "examples": { "default": { - "$ref": "#/components/examples/interaction-limit-user" + "$ref": "#/components/examples/repository-invitation" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "interactions", - "subcategory": "user" + "enabledForGitHubApps": true, + "category": "collaborators", + "subcategory": "invitations" } }, "delete": { - "summary": "Remove interaction restrictions from your public repositories", - "description": "Removes any interaction restrictions from your public repositories.", + "summary": "Delete a repository invitation", + "description": "", "tags": [ - "interactions" + "repos" ], - "operationId": "interactions/remove-restrictions-for-authenticated-user", + "operationId": "repos/delete-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-from-your-public-repositories" + "url": "https://docs.github.com/rest/collaborators/invitations#delete-a-repository-invitation" }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/invitation-id" + } + ], "responses": { "204": { "description": "Response" @@ -48457,49 +50623,43 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "interactions", - "subcategory": "user" + "enabledForGitHubApps": true, + "category": "collaborators", + "subcategory": "invitations" } } }, - "/user/issues": { + "/repos/{owner}/{repo}/issues": { "get": { - "summary": "List user account issues assigned to the authenticated user", - "description": "List issues across owned and member repositories assigned to the authenticated user.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "summary": "List repository issues", + "description": "List issues in a repository. Only open issues will be listed.\n\n> [!NOTE]\n> GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull request id, use the \"[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)\" endpoint.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ "issues" ], - "operationId": "issues/list-for-authenticated-user", + "operationId": "issues/list-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/issues#list-user-account-issues-assigned-to-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issues#list-repository-issues" }, "parameters": [ { - "name": "filter", - "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all` or `repos`: All issues the authenticated user can see, regardless of participation or creation", + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "milestone", + "description": "If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned.", "in": "query", "required": false, "schema": { - "type": "string", - "enum": [ - "assigned", - "created", - "mentioned", - "subscribed", - "repos", - "all" - ], - "default": "assigned" + "type": "string" } }, { "name": "state", - "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "description": "Indicates the state of the issues to return.", "in": "query", "required": false, "schema": { @@ -48512,12 +50672,48 @@ "default": "open" } }, + { + "name": "assignee", + "description": "Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "description": "Can be the name of an issue type. If the string `*` is passed, issues with any type are accepted. If the string `none` is passed, issues without type are returned.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "creator", + "description": "The user that created the issue.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "mentioned", + "description": "A user that's mentioned in the issue.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, { "$ref": "#/components/parameters/labels" }, { "name": "sort", - "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "description": "What to sort results by.", "in": "query", "required": false, "schema": { @@ -48556,7 +50752,7 @@ }, "examples": { "default": { - "$ref": "#/components/examples/issue-with-repo-items" + "$ref": "#/components/examples/issue-items" } } } @@ -48567,191 +50763,304 @@ } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, "404": { "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": false, - "name": "squirrel-girl", - "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." - } - ], + "enabledForGitHubApps": true, "category": "issues", - "subcategory": null + "subcategory": "issues" } - } - }, - "/user/keys": { - "get": { - "summary": "List public SSH keys for the authenticated user", - "description": "Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + }, + "post": { + "summary": "Create an issue", + "description": "Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\"\nand \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "users" + "issues" ], - "operationId": "users/list-public-ssh-keys-for-authenticated", + "operationId": "issues/create", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issues#create-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "The title of the issue." + }, + "body": { + "type": "string", + "description": "The contents of the issue." + }, + "assignee": { + "type": "string", + "description": "Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is closing down.**_", + "nullable": true + }, + "milestone": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer", + "description": "The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._" + } + ], + "nullable": true + }, + "labels": { + "type": "array", + "description": "Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "color": { + "type": "string", + "nullable": true + } + } + } + ] + } + }, + "assignees": { + "type": "array", + "description": "Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._", + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "description": "The name of the issue type to associate with this issue. _NOTE: Only users with push access can set the type for new issues. The type is silently dropped otherwise._", + "nullable": true, + "example": "Epic" + } + }, + "required": [ + "title" + ] + }, + "examples": { + "default": { + "value": { + "title": "Found a bug", + "body": "I'm having a problem with this.", + "assignees": [ + "octocat" + ], + "milestone": 1, + "labels": [ + "bug" + ] + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/key" - } + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/key-items" + "$ref": "#/components/examples/issue" } } } }, "headers": { - "Link": { - "$ref": "#/components/headers/link" + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "schema": { + "type": "string" + } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" + "400": { + "$ref": "#/components/responses/bad_request" }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "keys" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issues" } - }, - "post": { - "summary": "Create a public SSH key for the authenticated user", - "description": "Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", - "operationId": "users/create-public-ssh-key-for-authenticated", + } + }, + "/repos/{owner}/{repo}/issues/comments": { + "get": { + "summary": "List issue comments for a repository", + "description": "You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request.\n\nBy default, issue comments are ordered by ascending ID.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "users" + "issues" ], + "operationId": "issues/list-comments-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#create-a-public-ssh-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository" }, "parameters": [ - - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "title": { - "description": "A descriptive name for the new key.", - "type": "string", - "example": "Personal MacBook Air" - }, - "key": { - "description": "The public SSH key to add to your GitHub account.", - "type": "string", - "pattern": "^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) " - } - }, - "required": [ - "key" - ], - "type": "object" - } + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "name": "direction", + "description": "Either `asc` or `desc`. Ignored without the `sort` parameter.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] } + }, + { + "$ref": "#/components/parameters/since" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } - }, + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/key" + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-comment" + } }, "examples": { "default": { - "$ref": "#/components/examples/key" + "$ref": "#/components/examples/issue-comment-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "422": { "$ref": "#/components/responses/validation_failed" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "404": { "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "keys" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } } }, - "/user/keys/{key_id}": { + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { "get": { - "summary": "Get a public SSH key for the authenticated user", - "description": "View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "summary": "Get an issue comment", + "description": "You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "users" + "issues" ], - "operationId": "users/get-public-ssh-key-for-authenticated", + "operationId": "issues/get-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#get-a-public-ssh-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#get-an-issue-comment" }, "parameters": [ { - "$ref": "#/components/parameters/key-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "responses": { @@ -48760,11 +51069,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/key" + "$ref": "#/components/schemas/issue-comment" }, "examples": { "default": { - "$ref": "#/components/examples/key" + "$ref": "#/components/examples/issue-comment" } } } @@ -48772,294 +51081,146 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "keys" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } }, - "delete": { - "summary": "Delete a public SSH key for the authenticated user", - "description": "Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "patch": { + "summary": "Update an issue comment", + "description": "You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "users" + "issues" ], - "operationId": "users/delete-public-ssh-key-for-authenticated", + "operationId": "issues/update-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#delete-a-public-ssh-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#update-an-issue-comment" }, "parameters": [ { - "$ref": "#/components/parameters/key-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/parameters/owner" }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "keys" - } - } - }, - "/user/marketplace_purchases": { - "get": { - "summary": "List subscriptions for the authenticated user", - "description": "Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/).", - "tags": [ - "apps" - ], - "operationId": "apps/list-subscriptions-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user" - }, - "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/comment-id" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/user-marketplace-purchase" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The contents of the comment." } }, - "examples": { - "default": { - "$ref": "#/components/examples/user-marketplace-purchase-items" + "required": [ + "body" + ] + }, + "examples": { + "default": { + "value": { + "body": "Me too" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "apps", - "subcategory": "marketplace" - } - } - }, - "/user/marketplace_purchases/stubbed": { - "get": { - "summary": "List subscriptions for the authenticated user (stubbed)", - "description": "Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/).", - "tags": [ - "apps" - ], - "operationId": "apps/list-subscriptions-for-authenticated-user-stubbed", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user-stubbed" - }, - "parameters": [ - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" - } - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/user-marketplace-purchase" - } + "$ref": "#/components/schemas/issue-comment" }, "examples": { "default": { - "$ref": "#/components/examples/user-marketplace-purchase-items" + "$ref": "#/components/examples/issue-comment" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "apps", - "subcategory": "marketplace" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } - } - }, - "/user/memberships/orgs": { - "get": { - "summary": "List organization memberships for the authenticated user", - "description": "", + }, + "delete": { + "summary": "Delete an issue comment", + "description": "You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request.", "tags": [ - "orgs" + "issues" ], - "operationId": "orgs/list-memberships-for-authenticated-user", + "operationId": "issues/delete-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-organization-memberships-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#delete-an-issue-comment" }, "parameters": [ { - "name": "state", - "description": "Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "active", - "pending" - ] - } + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/comment-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/org-membership" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/org-membership-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } } }, - "/user/memberships/orgs/{org}": { - "get": { - "summary": "Get an organization membership for the authenticated user", - "description": "", + "/repos/{owner}/{repo}/issues/comments/{comment_id}/pin": { + "put": { + "summary": "Pin an issue comment", + "description": "You can use the REST API to pin comments on issues.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "orgs" + "issues" ], - "operationId": "orgs/get-membership-for-authenticated-user", + "operationId": "issues/pin-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#get-an-organization-membership-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#pin-an-issue-comment" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "responses": { @@ -49068,88 +51229,67 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-membership" + "$ref": "#/components/schemas/issue-comment" }, "examples": { "default": { - "$ref": "#/components/examples/org-membership" + "$ref": "#/components/examples/issue-comment" } } } } }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, "403": { "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } }, - "patch": { - "summary": "Update an organization membership for the authenticated user", - "description": "", + "delete": { + "summary": "Unpin an issue comment", + "description": "You can use the REST API to unpin comments on issues.", "tags": [ - "orgs" + "issues" ], - "operationId": "orgs/update-membership-for-authenticated-user", + "operationId": "issues/unpin-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#update-an-organization-membership-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#unpin-an-issue-comment" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "state": { - "type": "string", - "description": "The state that the membership should be in. Only `\"active\"` will be accepted.", - "enum": [ - "active" - ] - } - }, - "required": [ - "state" - ] - }, - "example": { - "state": "active" - } - } - } - }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/org-membership" - }, - "examples": { - "default": { - "$ref": "#/components/examples/org-membership-2" - } - } - } - } + "204": { + "description": "Response" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" }, "403": { "$ref": "#/components/responses/forbidden" @@ -49157,34 +51297,62 @@ "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "410": { + "$ref": "#/components/responses/gone" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "orgs", - "subcategory": "members" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } } }, - "/user/migrations": { + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { "get": { - "summary": "List user migrations", - "description": "Lists all migrations a user has started.", + "summary": "List reactions for an issue comment", + "description": "List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment).", "tags": [ - "migrations" + "reactions" ], - "operationId": "migrations/list-for-authenticated-user", + "operationId": "reactions/list-for-issue-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#list-user-migrations" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment" }, "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" + }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, { "$ref": "#/components/parameters/per-page" }, @@ -49200,12 +51368,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/migration" + "$ref": "#/components/schemas/reaction" } }, "examples": { "default": { - "$ref": "#/components/examples/migration-items" + "$ref": "#/components/examples/reaction-items" } } } @@ -49216,366 +51384,175 @@ } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "users" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } }, "post": { - "summary": "Start a user migration", - "description": "Initiates the generation of a user migration archive.", + "summary": "Create reaction for an issue comment", + "description": "Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment.", "tags": [ - "migrations" + "reactions" ], - "operationId": "migrations/start-for-authenticated-user", + "operationId": "reactions/create-for-issue-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#start-a-user-migration" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment" }, "parameters": [ - + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" + } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "lock_repositories": { - "description": "Lock the repositories being migrated at the start of the migration", - "example": true, - "readOnly": false, - "type": "boolean" - }, - "exclude_attachments": { - "description": "Do not include attachments in the migration", - "example": true, - "readOnly": false, - "type": "boolean" - }, - "exclude": { - "description": "Exclude attributes from the API response to improve performance", - "example": [ - "repositories" - ], - "readOnly": false, - "type": "array", - "items": { - "description": "Allowed values that can be passed to the exclude param.", - "enum": [ - "repositories" - ], - "example": "repositories", - "type": "string" - } - }, - "repositories": { - "type": "array", - "items": { - "description": "Repository path, owner and name", - "example": "acme/widgets", - "type": "string" - } + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] } }, "required": [ - "repositories" - ], - "type": "object" + "content" + ] + }, + "examples": { + "default": { + "value": { + "content": "heart" + } + } } } } }, "responses": { - "201": { - "description": "Response", + "200": { + "description": "Reaction exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/migration" + "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/migration-2" + "$ref": "#/components/examples/reaction" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "migrations", - "subcategory": "users" - } - } - }, - "/user/migrations/{migration_id}": { - "get": { - "summary": "Get a user migration status", - "description": "Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values:\n\n* `pending` - the migration hasn't started yet.\n* `exporting` - the migration is in progress.\n* `exported` - the migration finished successfully.\n* `failed` - the migration failed.\n\nOnce the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive).", - "tags": [ - "migrations" - ], - "operationId": "migrations/get-status-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#get-a-user-migration-status" - }, - "parameters": [ - { - "$ref": "#/components/parameters/migration-id" - }, - { - "name": "exclude", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "200": { - "description": "Response", + "201": { + "description": "Reaction created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/migration" + "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/migration" + "$ref": "#/components/examples/reaction" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "users" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } } }, - "/user/migrations/{migration_id}/archive": { - "get": { - "summary": "Download a user migration archive", - "description": "Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects:\n\n* attachments\n* bases\n* commit\\_comments\n* issue\\_comments\n* issue\\_events\n* issues\n* milestones\n* organizations\n* projects\n* protected\\_branches\n* pull\\_request\\_reviews\n* pull\\_requests\n* releases\n* repositories\n* review\\_comments\n* schema\n* users\n\nThe archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data.", - "tags": [ - "migrations" - ], - "operationId": "migrations/get-archive-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive" - }, - "parameters": [ - { - "$ref": "#/components/parameters/migration-id" - } - ], - "responses": { - "302": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "users" - } - }, + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { "delete": { - "summary": "Delete a user migration archive", - "description": "Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted.", + "summary": "Delete an issue comment reaction", + "description": "> [!NOTE]\n> You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`.\n\nDelete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment).", "tags": [ - "migrations" + "reactions" ], - "operationId": "migrations/delete-archive-for-authenticated-user", + "operationId": "reactions/delete-for-issue-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#delete-a-user-migration-archive" + "url": "https://docs.github.com/rest/reactions/reactions#delete-an-issue-comment-reaction" }, "parameters": [ { - "$ref": "#/components/parameters/migration-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "$ref": "#/components/parameters/owner" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/repo" }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "users" - } - } - }, - "/user/migrations/{migration_id}/repos/{repo_name}/lock": { - "delete": { - "summary": "Unlock a user repository", - "description": "Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked.", - "tags": [ - "migrations" - ], - "operationId": "migrations/unlock-repo-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#unlock-a-user-repository" - }, - "parameters": [ { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/comment-id" }, { - "$ref": "#/components/parameters/repo-name" + "$ref": "#/components/parameters/reaction-id" } ], "responses": { "204": { "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "users" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } } }, - "/user/migrations/{migration_id}/repositories": { + "/repos/{owner}/{repo}/issues/events": { "get": { - "summary": "List repositories for a user migration", - "description": "Lists all the repositories for this user migration.", + "summary": "List issue events for a repository", + "description": "Lists events for a repository.", "tags": [ - "migrations" + "issues" ], - "operationId": "migrations/list-repos-for-user", + "operationId": "issues/list-events-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/migrations#list-repositories-for-a-user-migration" + "url": "https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" @@ -49592,12 +51569,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/issue-event" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/issue-event-items" } } } @@ -49608,43 +51585,44 @@ } } }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "wyandotte", - "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" - } - ], - "category": "migrations", - "subcategory": "users" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "events" } } }, - "/user/orgs": { + "/repos/{owner}/{repo}/issues/events/{event_id}": { "get": { - "summary": "List organizations for the authenticated user", - "description": "List organizations for the authenticated user.\n\n**OAuth scope requirements**\n\nThis only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response.", + "summary": "Get an issue event", + "description": "Gets a single event by the event id.", "tags": [ - "orgs" + "issues" ], - "operationId": "orgs/list-for-authenticated-user", + "operationId": "issues/get-event", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/events#get-an-issue-event" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "name": "event_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -49653,63 +51631,55 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-simple" - } + "$ref": "#/components/schemas/issue-event" }, "examples": { "default": { - "$ref": "#/components/examples/organization-simple-items" + "$ref": "#/components/examples/issue-event" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" }, "403": { "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "orgs", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "events" } } }, - "/user/packages/{package_type}/{package_name}": { + "/repos/{owner}/{repo}/issues/{issue_number}": { "get": { - "summary": "Get a package for the authenticated user", - "description": "Gets a specific package for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "summary": "Get an issue", + "description": "The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was\n[transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If\nthe issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API\nreturns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read\naccess, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe\nto the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook.\n\n> [!NOTE]\n> GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull request id, use the \"[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)\" endpoint.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "packages" + "issues" ], - "operationId": "packages/get-package-for-authenticated-user", + "operationId": "issues/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issues#get-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], "responses": { @@ -49718,600 +51688,461 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/package-user" + "$ref": "#/components/examples/issue" } } } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null - } - }, - "delete": { - "summary": "Delete a package for the authenticated user", - "description": "Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", - "tags": [ - "packages" - ], - "operationId": "packages/delete-package-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#delete-a-package-for-the-authenticated-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null - } - } - }, - "/user/packages/{package_type}/{package_name}/restore": { - "post": { - "summary": "Restore a package for the authenticated user", - "description": "Restores a package owned by the authenticated user.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope.", - "tags": [ - "packages" - ], - "operationId": "packages/restore-package-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#restore-a-package-for-the-authenticated-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" }, - { - "name": "token", - "description": "package token", - "schema": { - "type": "string" - }, - "required": false, - "in": "query" - } - ], - "responses": { - "204": { - "description": "Response" + "301": { + "$ref": "#/components/responses/moved_permanently" }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "410": { + "$ref": "#/components/responses/gone" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issues" } - } - }, - "/user/packages/{package_type}/{package_name}/versions": { - "get": { - "summary": "Get all package versions for a package owned by the authenticated user", - "description": "Returns all package versions for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + }, + "patch": { + "summary": "Update an issue", + "description": "Issue owners and users with push access or Triage role can edit an issue.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "packages" + "issues" ], - "operationId": "packages/get-all-package-versions-for-package-owned-by-authenticated-user", + "operationId": "issues/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issues#update-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "name": "state", - "in": "query", - "required": false, - "description": "The state of the package, either active or deleted.", - "schema": { - "type": "string", - "enum": [ - "active", - "deleted" - ], - "default": "active" - } + "$ref": "#/components/parameters/issue-number" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package-version" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/package-versions-for-authenticated-user" - } - } - } - } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null - } - } - }, - "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { - "get": { - "summary": "Get a package version for the authenticated user", - "description": "Gets a specific package version for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", - "tags": [ - "packages" - ], - "operationId": "packages/get-package-version-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-the-authenticated-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" - }, - { - "$ref": "#/components/parameters/package-version-id" + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "The title of the issue.", + "nullable": true + }, + "body": { + "type": "string", + "description": "The contents of the issue.", + "nullable": true + }, + "assignee": { + "type": "string", + "nullable": true, + "description": "Username to assign to this issue. **This field is closing down.**" + }, + "state": { + "type": "string", + "description": "The open or closed state of the issue.", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "enum": [ + "completed", + "not_planned", + "duplicate", + "reopened" + ], + "nullable": true, + "description": "The reason for the state change. Ignored unless `state` is changed.", + "example": "not_planned" + }, + "milestone": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer", + "description": "The `number` of the milestone to associate this issue with or use `null` to remove the current milestone. Only users with push access can set the milestone for issues. Without push access to the repository, milestone changes are silently dropped." + } + ], + "nullable": true + }, + "labels": { + "type": "array", + "description": "Labels to associate with this issue. Pass one or more labels to _replace_ the set of labels on this issue. Send an empty array (`[]`) to clear all labels from the issue. Only users with push access can set labels for issues. Without push access to the repository, label changes are silently dropped.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "color": { + "type": "string", + "nullable": true + } + } + } + ] + } + }, + "assignees": { + "type": "array", + "description": "Usernames to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this issue. Send an empty array (`[]`) to clear all assignees from the issue. Only users with push access can set assignees for new issues. Without push access to the repository, assignee changes are silently dropped.", + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "description": "The name of the issue type to associate with this issue or use `null` to remove the current issue type. Only users with push access can set the type for issues. Without push access to the repository, type changes are silently dropped.", + "nullable": true, + "example": "Epic" + } + } + }, + "examples": { + "default": { + "value": { + "title": "Found a bug", + "body": "I'm having a problem with this.", + "assignees": [ + "octocat" + ], + "milestone": 1, + "state": "open", + "labels": [ + "bug" + ] + } + } + } + } } - ], + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package-version" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/package-version-authenticated-user" + "$ref": "#/components/examples/issue" } } } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null - } - }, - "delete": { - "summary": "Delete a package version for the authenticated user", - "description": "Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", - "tags": [ - "packages" - ], - "operationId": "packages/delete-package-version-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#delete-a-package-version-for-the-authenticated-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" }, - { - "$ref": "#/components/parameters/package-version-id" - } - ], - "responses": { - "204": { - "description": "Response" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "404": { - "$ref": "#/components/responses/not_found" + "503": { + "$ref": "#/components/responses/service_unavailable" }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issues" } } }, - "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { "post": { - "summary": "Restore a package version for the authenticated user", - "description": "Restores a package version owned by the authenticated user.\n\nYou can restore a deleted package version under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope.", + "summary": "Add assignees to an issue", + "description": "Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced.", "tags": [ - "packages" + "issues" ], - "operationId": "packages/restore-package-version-for-authenticated-user", + "operationId": "issues/add-assignees", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#restore-a-package-version-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/package-version-id" + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "assignees": { + "type": "array", + "description": "Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "default": { + "value": { + "assignees": [ + "hubot", + "other_user" + ] + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "assignees" } - } - }, - "/user/projects": { - "post": { - "summary": "Create a user project", - "description": "", + }, + "delete": { + "summary": "Remove assignees from an issue", + "description": "Removes one or more assignees from an issue.", "tags": [ - "projects" + "issues" ], - "operationId": "projects/create-for-authenticated-user", + "operationId": "issues/remove-assignees", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#create-a-user-project" + "url": "https://docs.github.com/rest/issues/assignees#remove-assignees-from-an-issue" }, "parameters": [ - + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + } ], "requestBody": { "content": { "application/json": { "schema": { + "type": "object", "properties": { - "name": { - "description": "Name of the project", - "example": "Week One Sprint", - "type": "string" - }, - "body": { - "description": "Body of the project", - "example": "This project represents the sprint of the first week in January", - "type": "string", - "nullable": true + "assignees": { + "type": "array", + "description": "Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._", + "items": { + "type": "string" + } } - }, - "required": [ - "name" - ], - "type": "object" + } + }, + "examples": { + "default": { + "value": { + "assignees": [ + "hubot", + "other_user" + ] + } + } } } } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/project" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/project" + "$ref": "#/components/examples/issue" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "415": { - "$ref": "#/components/responses/preview_header_missing" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "category": "issues", + "subcategory": "assignees" } } }, - "/user/public_emails": { + "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": { "get": { - "summary": "List public email addresses for the authenticated user", - "description": "Lists your publicly visible email address, which you can set with the [Set primary email visibility for the authenticated user](https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) endpoint. This endpoint is accessible with the `user:email` scope.", + "summary": "Check if a user can be assigned to a issue", + "description": "Checks if a user has permission to be assigned to a specific issue.\n\nIf the `assignee` can be assigned to this issue, a `204` status code with no content is returned.\n\nOtherwise a `404` status code is returned.", "tags": [ - "users" + "issues" ], - "operationId": "users/list-public-emails-for-authenticated", + "operationId": "issues/check-user-can-be-assigned-to-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-public-email-addresses-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "assignee", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "Response", + "204": { + "description": "Response if `assignee` can be assigned to `issue_number`" + }, + "404": { + "description": "Response if `assignee` can not be assigned to `issue_number`", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/email-items-2" - } + "$ref": "#/components/schemas/basic-error" } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "assignees" } } }, - "/user/repos": { + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { "get": { - "summary": "List repositories for the authenticated user", - "description": "Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.", + "summary": "List issue comments", + "description": "You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request.\n\nIssue comments are ordered by ascending ID.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/list-for-authenticated-user", + "operationId": "issues/list-comments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repositories-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#list-issue-comments" }, "parameters": [ { - "name": "visibility", - "description": "Can be one of `all`, `public`, or `private`. Note: For GitHub AE, can be one of `all`, `internal`, or `private`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "all", - "public", - "private" - ], - "default": "all" - } - }, - { - "name": "affiliation", - "description": "Comma-separated list of values. Can include: \n\\* `owner`: Repositories that are owned by the authenticated user. \n\\* `collaborator`: Repositories that the user has been added to as a collaborator. \n\\* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "owner,collaborator,organization_member" - } + "$ref": "#/components/parameters/owner" }, { - "name": "type", - "description": "Can be one of `all`, `owner`, `public`, `private`, `member`. Note: For GitHub AE, can be one of `all`, `owner`, `internal`, `private`, `member`. Default: `all` \n \nWill cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "all", - "owner", - "public", - "private", - "member" - ], - "default": "all" - } + "$ref": "#/components/parameters/repo" }, { - "name": "sort", - "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "pushed", - "full_name" - ], - "default": "full_name" - } + "$ref": "#/components/parameters/issue-number" }, { - "name": "direction", - "description": "Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc`", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } + "$ref": "#/components/parameters/since" }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/since" - }, - { - "$ref": "#/components/parameters/before" } ], "responses": { @@ -50322,161 +52153,80 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository" + "$ref": "#/components/schemas/issue-comment" } }, "examples": { "default": { - "$ref": "#/components/examples/repository-items-default-response" + "$ref": "#/components/examples/issue-comment-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "repos", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } }, "post": { - "summary": "Create a repository for the authenticated user", - "description": "Creates a new repository for the authenticated user.\n\n**OAuth scope requirements**\n\nWhen using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include:\n\n* `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository.\n* `repo` scope to create a private repository.", + "summary": "Create an issue comment", + "description": "You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications).\nCreating content too quickly using this endpoint may result in secondary rate limiting.\nFor more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\"\nand \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/create-for-authenticated-user", + "operationId": "issues/create-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/comments#create-an-issue-comment" }, "parameters": [ - + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "name": { - "description": "The name of the repository.", + "body": { "type": "string", - "example": "Team Environment" - }, - "description": { - "description": "A short description of the repository.", - "type": "string" - }, - "homepage": { - "description": "A URL with more information about the repository.", - "type": "string" - }, - "private": { - "description": "Whether the repository is private.", - "default": false, - "type": "boolean" - }, - "has_issues": { - "description": "Whether issues are enabled.", - "default": true, - "type": "boolean", - "example": true - }, - "has_projects": { - "description": "Whether projects are enabled.", - "default": true, - "type": "boolean", - "example": true - }, - "has_wiki": { - "description": "Whether the wiki is enabled.", - "default": true, - "type": "boolean", - "example": true - }, - "team_id": { - "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.", - "type": "integer" - }, - "auto_init": { - "description": "Whether the repository is initialized with a minimal README.", - "default": false, - "type": "boolean" - }, - "gitignore_template": { - "description": "The desired language or platform to apply to the .gitignore.", - "example": "Haskell", - "type": "string" - }, - "license_template": { - "description": "The license keyword of the open source license for this repository.", - "example": "mit", - "type": "string" - }, - "allow_squash_merge": { - "description": "Whether to allow squash merges for pull requests.", - "default": true, - "type": "boolean", - "example": true - }, - "allow_merge_commit": { - "description": "Whether to allow merge commits for pull requests.", - "default": true, - "type": "boolean", - "example": true - }, - "allow_rebase_merge": { - "description": "Whether to allow rebase merges for pull requests.", - "default": true, - "type": "boolean", - "example": true - }, - "allow_auto_merge": { - "description": "Whether to allow Auto-merge to be used on pull requests.", - "default": false, - "type": "boolean", - "example": false - }, - "delete_branch_on_merge": { - "description": "Whether to delete head branches when pull requests are merged", - "default": false, - "type": "boolean", - "example": false - }, - "has_downloads": { - "description": "Whether downloads are enabled.", - "default": true, - "type": "boolean", - "example": true - }, - "is_template": { - "description": "Whether this repository acts as a template that can be used to generate new repositories.", - "default": false, - "type": "boolean", - "example": true + "description": "The contents of the comment." } }, "required": [ - "name" - ], - "type": "object" + "body" + ] + }, + "examples": { + "default": { + "value": { + "body": "Me too" + } + } } } } @@ -50487,76 +52237,68 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository" + "$ref": "#/components/schemas/issue-comment" }, "examples": { "default": { - "$ref": "#/components/examples/repository" + "$ref": "#/components/examples/issue-comment" } } } }, "headers": { "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1", "schema": { "type": "string" } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, "403": { "$ref": "#/components/responses/forbidden" }, + "410": { + "$ref": "#/components/responses/gone" + }, "422": { "$ref": "#/components/responses/validation_failed" }, - "400": { - "$ref": "#/components/responses/bad_request" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": false, - "name": "nebula", - "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" - }, - { - "required": false, - "name": "baptiste", - "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/rest/reference/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n\n```shell\napplication/vnd.github.baptiste-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } } }, - "/user/repository_invitations": { + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by": { "get": { - "summary": "List repository invitations for the authenticated user", - "description": "When authenticating as a user, this endpoint will list all currently open repository invitations for that user.", + "summary": "List dependencies an issue is blocked by", + "description": "You can use the REST API to list the dependencies an issue is blocked by.\n\nThis endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\n\n- **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/list-invitations-for-authenticated-user", + "operationId": "issues/list-dependencies-blocked-by", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repository-invitations-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocked-by" }, "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, { "$ref": "#/components/parameters/per-page" }, @@ -50572,12 +52314,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository-invitation" + "$ref": "#/components/schemas/issue" } }, "examples": { "default": { - "$ref": "#/components/examples/repository-invitation-items" + "$ref": "#/components/examples/issue-items" } } } @@ -50588,136 +52330,217 @@ } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "301": { + "$ref": "#/components/responses/moved_permanently" }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "repos", - "subcategory": "invitations" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issue-dependencies" } - } - }, - "/user/repository_invitations/{invitation_id}": { - "patch": { - "summary": "Accept a repository invitation", - "description": "", + }, + "post": { + "summary": "Add a dependency an issue is blocked by", + "description": "You can use the REST API to add a 'blocked by' relationship to an issue.\n\nCreating content too quickly using this endpoint may result in secondary rate limiting.\nFor more information, see [Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\nand [Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\n\nThis endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\n\n- **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/accept-invitation", + "operationId": "issues/add-blocked-by-dependency", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#accept-a-repository-invitation" + "url": "https://docs.github.com/rest/issues/issue-dependencies#add-a-dependency-an-issue-is-blocked-by" }, "parameters": [ { - "$ref": "#/components/parameters/invitation-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "issue_id": { + "type": "integer", + "description": "The id of the issue that blocks the current issue" + } + }, + "required": [ + "issue_id" + ] + }, + "examples": { + "default": { + "value": { + "issue_id": 1 + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1/dependencies/blocked_by", + "schema": { + "type": "string" + } + } + } + }, + "301": { + "$ref": "#/components/responses/moved_permanently" }, "403": { "$ref": "#/components/responses/forbidden" }, - "409": { - "$ref": "#/components/responses/conflict" + "410": { + "$ref": "#/components/responses/gone" + }, + "422": { + "$ref": "#/components/responses/validation_failed" }, "404": { "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "repos", - "subcategory": "invitations" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issue-dependencies" } - }, + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}": { "delete": { - "summary": "Decline a repository invitation", - "description": "", + "summary": "Remove dependency an issue is blocked by", + "description": "You can use the REST API to remove a dependency that an issue is blocked by.\n\nRemoving content too quickly using this endpoint may result in secondary rate limiting.\nFor more information, see [Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\nand [Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\n\nThis endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\n- **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass a specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/decline-invitation", + "operationId": "issues/remove-dependency-blocked-by", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#decline-a-repository-invitation" + "url": "https://docs.github.com/rest/issues/issue-dependencies#remove-dependency-an-issue-is-blocked-by" }, "parameters": [ { - "$ref": "#/components/parameters/invitation-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "issue_id", + "in": "path", + "description": "The id of the blocking issue to remove as a dependency", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue" + } + } + } + } }, - "409": { - "$ref": "#/components/responses/conflict" + "301": { + "$ref": "#/components/responses/moved_permanently" }, - "304": { - "$ref": "#/components/responses/not_modified" + "400": { + "$ref": "#/components/responses/bad_request" }, - "404": { - "$ref": "#/components/responses/not_found" + "401": { + "$ref": "#/components/responses/requires_authentication" }, "403": { "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "repos", - "subcategory": "invitations" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issue-dependencies" } } }, - "/user/starred": { + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking": { "get": { - "summary": "List repositories starred by the authenticated user", - "description": "Lists repositories the authenticated user has starred.\n\nYou can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "summary": "List dependencies an issue is blocking", + "description": "You can use the REST API to list the dependencies an issue is blocking.\n\nThis endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\n\n- **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/list-repos-starred-by-authenticated-user", + "operationId": "issues/list-dependencies-blocking", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-repositories-starred-by-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocking" }, "parameters": [ { - "$ref": "#/components/parameters/sort" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" }, { "$ref": "#/components/parameters/per-page" @@ -50734,25 +52557,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository" - } - }, - "examples": { - "default-response": { - "$ref": "#/components/examples/repository-items-default-response" - } - } - }, - "application/vnd.github.v3.star+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/starred-repository" + "$ref": "#/components/schemas/issue" } }, "examples": { - "alternative-response-with-star-creation-timestamps": { - "$ref": "#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps" + "default": { + "$ref": "#/components/examples/issue-items" } } } @@ -50763,38 +52573,35 @@ } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "301": { + "$ref": "#/components/responses/moved_permanently" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "starring" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issue-dependencies" } } }, - "/user/starred/{owner}/{repo}": { + "/repos/{owner}/{repo}/issues/{issue_number}/events": { "get": { - "summary": "Check if a repository is starred by the authenticated user", - "description": "", + "summary": "List issue events", + "description": "Lists all events for an issue.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/check-repo-is-starred-by-authenticated-user", + "operationId": "issues/list-events", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#check-if-a-repository-is-starred-by-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/events#list-issue-events" }, "parameters": [ { @@ -50802,52 +52609,64 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response if this repository is starred by you" - }, - "404": { - "description": "Not Found if this repository is not starred by you", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-event-for-issue" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-event-for-issue-items" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "starring" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "events" } - }, - "put": { - "summary": "Star a repository for the authenticated user", - "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + "get": { + "summary": "List labels for an issue", + "description": "Lists all labels for an issue.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/star-repo-for-authenticated-user", + "operationId": "issues/list-labels-on-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#star-a-repository-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/labels#list-labels-for-an-issue" }, "parameters": [ { @@ -50855,45 +52674,68 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/label-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "403": { - "$ref": "#/components/responses/forbidden" + "301": { + "$ref": "#/components/responses/moved_permanently" }, "404": { "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "starring" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } }, - "delete": { - "summary": "Unstar a repository for the authenticated user", - "description": "", + "post": { + "summary": "Add labels to an issue", + "description": "Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. ", "tags": [ - "activity" + "issues" ], - "operationId": "activity/unstar-repo-for-authenticated-user", + "operationId": "issues/add-labels", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#unstar-a-repository-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/labels#add-labels-to-an-issue" }, "parameters": [ { @@ -50901,56 +52743,90 @@ }, { "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/issue-number" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "starring" - } - } - }, - "/user/subscriptions": { - "get": { - "summary": "List repositories watched by the authenticated user", - "description": "Lists repositories the authenticated user is watching.", - "tags": [ - "activity" ], - "operationId": "activity/list-watched-repos-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-repositories-watched-by-the-authenticated-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "description": "The names of the labels to add to the issue's existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also replace all of the labels for an issue. For more information, see \"[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue).\"", + "items": { + "type": "string" + } + } + } + }, + { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + { + "type": "object", + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + } + }, + { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + }, + { + "type": "string" + } + ] + }, + "examples": { + "default": { + "value": { + "labels": [ + "bug", + "enhancement" + ] + } + } + } + } } - ], + }, "responses": { "200": { "description": "Response", @@ -50959,63 +52835,138 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/label" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/label-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "301": { + "$ref": "#/components/responses/moved_permanently" }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "410": { + "$ref": "#/components/responses/gone" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } - } - }, - "/user/teams": { - "get": { - "summary": "List teams for the authenticated user", - "description": "List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/).", + }, + "put": { + "summary": "Set labels for an issue", + "description": "Removes any previous labels and sets the new labels for an issue.", "tags": [ - "teams" + "issues" ], - "operationId": "teams/list-for-authenticated-user", + "operationId": "issues/set-labels", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/teams#list-teams-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/labels#set-labels-for-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "description": "The names of the labels to set for the issue. The labels you set replace any existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also add labels to the existing labels for an issue. For more information, see \"[Add labels to an issue](https://docs.github.com/rest/issues/labels#add-labels-to-an-issue).\"", + "items": { + "type": "string" + } + } + } + }, + { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + { + "type": "object", + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + } + }, + { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + }, + { + "type": "string" + } + ] + }, + "examples": { + "default": { + "value": { + "labels": [ + "bug", + "enhancement" + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", @@ -51024,120 +52975,110 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/team-full" + "$ref": "#/components/schemas/label" } }, "examples": { "default": { - "$ref": "#/components/examples/team-full-items" + "$ref": "#/components/examples/label-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "301": { + "$ref": "#/components/responses/moved_permanently" }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "410": { + "$ref": "#/components/responses/gone" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "teams", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } - } - }, - "/users": { - "get": { - "summary": "List users", - "description": "Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts.\n\nNote: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of users.", + }, + "delete": { + "summary": "Remove all labels from an issue", + "description": "Removes all labels from an issue.", "tags": [ - "users" + "issues" ], - "operationId": "users/list", + "operationId": "issues/remove-all-labels", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-users" + "url": "https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/since-user" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/simple-user-items" - } - } - } - }, - "headers": { - "Link": { - "example": "; rel=\"next\"", - "schema": { - "type": "string" - } - } - } + "204": { + "description": "Response" }, - "304": { - "$ref": "#/components/responses/not_modified" + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "users", - "subcategory": null + "category": "issues", + "subcategory": "labels" } } }, - "/users/{username}": { - "get": { - "summary": "Get a user", - "description": "Provides publicly available information about someone with a GitHub account.\n\nGitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See \"[Identifying and authorizing users for GitHub Apps](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)\" for details about authentication. For an example response, see 'Response with GitHub plan information' below\"\n\nThe `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/overview/resources-in-the-rest-api#authentication).\n\nThe Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see \"[Emails API](https://docs.github.com/rest/reference/users#emails)\".", + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { + "delete": { + "summary": "Remove a label from an issue", + "description": "Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist.", "tags": [ - "users" + "issues" ], - "operationId": "users/get-by-username", + "operationId": "issues/remove-label", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#get-a-user" + "url": "https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -51146,166 +53087,177 @@ "content": { "application/json": { "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/private-user" - }, - { - "$ref": "#/components/schemas/public-user" - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } }, "examples": { - "default-response": { - "$ref": "#/components/examples/public-user-default-response" - }, - "response-with-git-hub-plan-information": { - "$ref": "#/components/examples/public-user-response-with-git-hub-plan-information" + "default": { + "$ref": "#/components/examples/label-items-2" } } } } }, - "202": { - "$ref": "#/components/responses/accepted" + "301": { + "$ref": "#/components/responses/moved_permanently" }, "404": { "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "users", - "subcategory": null + "category": "issues", + "subcategory": "labels" } } }, - "/users/{username}/events": { - "get": { - "summary": "List events for the authenticated user", - "description": "If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events.", + "/repos/{owner}/{repo}/issues/{issue_number}/lock": { + "put": { + "summary": "Lock an issue", + "description": "Users with push access can lock an issue or pull request's conversation.\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"", "tags": [ - "activity" + "issues" ], - "operationId": "activity/list-events-for-authenticated-user", + "operationId": "issues/lock", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-events-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issues#lock-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "nullable": true, + "properties": { + "lock_reason": { + "type": "string", + "description": "The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: \n * `off-topic` \n * `too heated` \n * `resolved` \n * `spam`", + "enum": [ + "off-topic", + "too heated", + "resolved", + "spam" + ] + } + } + }, + "examples": { + "default": { + "summary": "Example of locking an issue as off-topic", + "value": { + "lock_reason": "off-topic" } } } } } }, + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "410": { + "$ref": "#/components/responses/gone" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "events" + "category": "issues", + "subcategory": "issues" } - } - }, - "/users/{username}/events/orgs/{org}": { - "get": { - "summary": "List organization events for the authenticated user", - "description": "This is the user's organization dashboard. You must be authenticated as the user to view this.", + }, + "delete": { + "summary": "Unlock an issue", + "description": "Users with push access can unlock an issue's conversation.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/list-org-events-for-authenticated-user", + "operationId": "issues/unlock", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-organization-events-for-the-authenticated-user" + "url": "https://docs.github.com/rest/issues/issues#unlock-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" - } - } - } - } + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "activity", - "subcategory": "events" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issues" } } }, - "/users/{username}/events/public": { + "/repos/{owner}/{repo}/issues/{issue_number}/parent": { "get": { - "summary": "List public events for a user", - "description": "", + "summary": "Get parent issue", + "description": "You can use the REST API to get the parent issue of a sub-issue.\n\nThis endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/list-public-events-for-user", + "operationId": "issues/get-parent", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-public-events-for-a-user" + "url": "https://docs.github.com/rest/issues/sub-issues#get-parent-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" } ], "responses": { @@ -51314,41 +53266,74 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" + "$ref": "#/components/schemas/issue" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue" } } } } + }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "events" + "category": "issues", + "subcategory": "sub-issues" } } }, - "/users/{username}/followers": { + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { "get": { - "summary": "List followers of a user", - "description": "Lists the people following the specified user.", + "summary": "List reactions for an issue", + "description": "List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue).", "tags": [ - "users" + "reactions" ], - "operationId": "users/list-followers-for-user", + "operationId": "reactions/list-for-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-followers-of-a-user" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } }, { "$ref": "#/components/parameters/per-page" @@ -51365,12 +53350,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/reaction" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/reaction-items" } } } @@ -51380,202 +53365,271 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" + "category": "reactions", + "subcategory": "reactions" } - } - }, - "/users/{username}/following": { - "get": { - "summary": "List the people a user follows", - "description": "Lists the people who the specified user follows.", + }, + "post": { + "summary": "Create reaction for an issue", + "description": "Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue.", "tags": [ - "users" + "reactions" ], - "operationId": "users/list-following-for-user", + "operationId": "reactions/create-for-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-the-people-a-user-follows" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": [ + "content" + ] + }, + "examples": { + "default": { + "value": { + "content": "heart" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/reaction" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" + "category": "reactions", + "subcategory": "reactions" } } }, - "/users/{username}/following/{target_user}": { - "get": { - "summary": "Check if a user follows another user", - "description": "", + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete an issue reaction", + "description": "> [!NOTE]\n> You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`.\n\nDelete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue).", "tags": [ - "users" + "reactions" ], - "operationId": "users/check-following-for-user", + "operationId": "reactions/delete-for-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#check-if-a-user-follows-another-user" + "url": "https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "name": "target_user", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/reaction-id" } ], "responses": { "204": { - "description": "if the user follows the target user" - }, - "404": { - "description": "if the user does not follow the target user" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "users", - "subcategory": "followers" + "category": "reactions", + "subcategory": "reactions" } } }, - "/users/{username}/gists": { - "get": { - "summary": "List gists for a user", - "description": "Lists public gists for the specified user:", + "/repos/{owner}/{repo}/issues/{issue_number}/sub_issue": { + "delete": { + "summary": "Remove sub-issue", + "description": "You can use the REST API to remove a sub-issue from an issue.\nRemoving content too quickly using this endpoint may result in secondary rate limiting.\nFor more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\"\nand \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass a specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "gists" + "issues" ], - "operationId": "gists/list-for-user", + "operationId": "issues/remove-sub-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/gists#list-gists-for-a-user" + "url": "https://docs.github.com/rest/issues/sub-issues#remove-sub-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/since" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sub_issue_id": { + "type": "integer", + "description": "The id of the sub-issue to remove" + } + }, + "required": [ + "sub_issue_id" + ] + }, + "examples": { + "default": { + "value": { + "sub_issue_id": 6 + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/base-gist" - } + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/base-gist-items" + "$ref": "#/components/examples/issue" } } } }, "headers": { - "Link": { - "$ref": "#/components/headers/link" + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1/sub-issue", + "schema": { + "type": "string" + } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "gists", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "sub-issues" } } }, - "/users/{username}/gpg_keys": { + "/repos/{owner}/{repo}/issues/{issue_number}/sub_issues": { "get": { - "summary": "List GPG keys for a user", - "description": "Lists the GPG keys for a user. This information is accessible by anyone.", + "summary": "List sub-issues", + "description": "You can use the REST API to list the sub-issues on an issue.\n\nThis endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\n\n- **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "users" + "issues" ], - "operationId": "users/list-gpg-keys-for-user", + "operationId": "issues/list-sub-issues", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-gpg-keys-for-a-user" + "url": "https://docs.github.com/rest/issues/sub-issues#list-sub-issues" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" }, { "$ref": "#/components/parameters/per-page" @@ -51592,12 +53646,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/gpg-key" + "$ref": "#/components/schemas/issue" } }, "examples": { "default": { - "$ref": "#/components/examples/gpg-key-items" + "$ref": "#/components/examples/issue-items" } } } @@ -51607,154 +53661,235 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "users", - "subcategory": "gpg-keys" + "category": "issues", + "subcategory": "sub-issues" } - } - }, - "/users/{username}/hovercard": { - "get": { - "summary": "Get contextual information for a user", - "description": "Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations.\n\nThe `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this:\n\n```shell\n curl -u username:token\n https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192\n```", + }, + "post": { + "summary": "Add sub-issue", + "description": "You can use the REST API to add sub-issues to issues.\n\nCreating content too quickly using this endpoint may result in secondary rate limiting.\nFor more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\"\nand \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", "tags": [ - "users" + "issues" ], - "operationId": "users/get-context-for-user", + "operationId": "issues/add-sub-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#get-contextual-information-for-a-user" + "url": "https://docs.github.com/rest/issues/sub-issues#add-sub-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "name": "subject_type", - "description": "Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "organization", - "repository", - "issue", - "pull_request" - ] - } + "$ref": "#/components/parameters/repo" }, { - "name": "subject_id", - "description": "Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sub_issue_id": { + "type": "integer", + "description": "The id of the sub-issue to add. The sub-issue must belong to the same repository owner as the parent issue" + }, + "replace_parent": { + "type": "boolean", + "description": "Option that, when true, instructs the operation to replace the sub-issues current parent issue" + } + }, + "required": [ + "sub_issue_id" + ] + }, + "examples": { + "default": { + "value": { + "sub_issue_id": 1 + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hovercard" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/hovercard" + "$ref": "#/components/examples/issue" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/sub-issues/1", + "schema": { + "type": "string" + } + } } }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "410": { + "$ref": "#/components/responses/gone" }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "users", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "sub-issues" } } }, - "/users/{username}/installation": { - "get": { - "summary": "Get a user installation for the authenticated app", - "description": "Enables an authenticated GitHub App to find the user’s installation information.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority": { + "patch": { + "summary": "Reprioritize sub-issue", + "description": "You can use the REST API to reprioritize a sub-issue to a different position in the parent list.", "tags": [ - "apps" + "issues" ], - "operationId": "apps/get-user-installation", + "operationId": "issues/reprioritize-sub-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/apps#get-a-user-installation-for-the-authenticated-app" + "url": "https://docs.github.com/rest/issues/sub-issues#reprioritize-sub-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sub_issue_id": { + "type": "integer", + "description": "The id of the sub-issue to reprioritize" + }, + "after_id": { + "type": "integer", + "description": "The id of the sub-issue to be prioritized after (either positional argument after OR before should be specified)." + }, + "before_id": { + "type": "integer", + "description": "The id of the sub-issue to be prioritized before (either positional argument after OR before should be specified)." + } + }, + "required": [ + "sub_issue_id" + ] + }, + "examples": { + "default": { + "value": { + "sub_issue_id": 6, + "after_id": 5 + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/installation" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/installation" + "$ref": "#/components/examples/issue" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "apps", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "sub-issues" } } }, - "/users/{username}/keys": { + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { "get": { - "summary": "List public keys for a user", - "description": "Lists the _verified_ public SSH keys for a user. This is accessible by anyone.", + "summary": "List timeline events for an issue", + "description": "List all timeline events for an issue.", "tags": [ - "users" + "issues" ], - "operationId": "users/list-public-keys-for-user", + "operationId": "issues/list-events-for-timeline", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/users#list-public-keys-for-a-user" + "url": "https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" }, { "$ref": "#/components/parameters/per-page" @@ -51771,12 +53906,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/key-simple" + "$ref": "#/components/schemas/timeline-issue-events" } }, "examples": { "default": { - "$ref": "#/components/examples/key-simple-items" + "$ref": "#/components/examples/timeline-issue-events" } } } @@ -51786,34 +53921,40 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "users", - "subcategory": "keys" + "category": "issues", + "subcategory": "timeline" } } }, - "/users/{username}/orgs": { + "/repos/{owner}/{repo}/keys": { "get": { - "summary": "List organizations for a user", - "description": "List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user.\n\nThis method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead.", + "summary": "List deploy keys", + "description": "", "tags": [ - "orgs" + "repos" ], - "operationId": "orgs/list-for-user", + "operationId": "repos/list-deploy-keys", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/orgs#list-organizations-for-a-user" + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" @@ -51830,12 +53971,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/organization-simple" + "$ref": "#/components/schemas/deploy-key" } }, "examples": { "default": { - "$ref": "#/components/examples/organization-simple-items" + "$ref": "#/components/examples/deploy-key-items" } } } @@ -51850,86 +53991,122 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "orgs", - "subcategory": null + "category": "deploy-keys", + "subcategory": "deploy-keys" } - } - }, - "/users/{username}/packages/{package_type}/{package_name}": { - "get": { - "summary": "Get a package for a user", - "description": "Gets a specific package metadata for a public package owned by a user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + }, + "post": { + "summary": "Create a deploy key", + "description": "You can create a read-only deploy key.", "tags": [ - "packages" + "repos" ], - "operationId": "packages/get-package-for-user", + "operationId": "repos/create-deploy-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-a-user" + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#create-a-deploy-key" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/package" - }, - "examples": { - "default": { - "$ref": "#/components/examples/package-user" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "A name for the key." + }, + "key": { + "type": "string", + "description": "The contents of the key." + }, + "read_only": { + "type": "boolean", + "description": "If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. \n \nDeploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see \"[Repository permission levels for an organization](https://docs.github.com/articles/repository-permission-levels-for-an-organization/)\" and \"[Permission levels for a user account repository](https://docs.github.com/articles/permission-levels-for-a-user-account-repository/).\"" } - } - } - } - } - }, + }, + "required": [ + "key" + ] + }, + "examples": { + "default": { + "value": { + "title": "octocat@octomac", + "key": "ssh-rsa AAA...", + "read_only": true + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/deploy-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/deploy-key" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/keys/1", + "schema": { + "type": "string" + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "deploy-keys", + "subcategory": "deploy-keys" } } }, - "/users/{username}/packages/{package_type}/{package_name}/versions": { + "/repos/{owner}/{repo}/keys/{key_id}": { "get": { - "summary": "Get all package versions for a package owned by a user", - "description": "Returns all package versions for a public package owned by a specified user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "summary": "Get a deploy key", + "description": "", "tags": [ - "packages" + "repos" ], - "operationId": "packages/get-all-package-versions-for-package-owned-by-user", + "operationId": "repos/get-deploy-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-a-user" + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/key-id" } ], "responses": { @@ -51938,14 +54115,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package-version" - } + "$ref": "#/components/schemas/deploy-key" }, "examples": { "default": { - "$ref": "#/components/examples/package-versions-for-user" + "$ref": "#/components/examples/deploy-key" } } } @@ -51953,49 +54127,74 @@ }, "404": { "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "deploy-keys", + "subcategory": "deploy-keys" + } + }, + "delete": { + "summary": "Delete a deploy key", + "description": "Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-deploy-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#delete-a-deploy-key" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/repo" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + { + "$ref": "#/components/parameters/key-id" + } + ], + "responses": { + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "deploy-keys", + "subcategory": "deploy-keys" } } }, - "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "/repos/{owner}/{repo}/labels": { "get": { - "summary": "Get a package version for a user", - "description": "Gets a specific package version for a public package owned by a specified user.\n\nAt this time, to use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "summary": "List labels for a repository", + "description": "Lists all labels for a repository.", "tags": [ - "packages" + "issues" ], - "operationId": "packages/get-package-version-for-user", + "operationId": "issues/list-labels-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-a-user" + "url": "https://docs.github.com/rest/issues/labels#list-labels-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/package-version-id" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -52004,133 +54203,326 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package-version" + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } }, "examples": { "default": { - "$ref": "#/components/examples/package-version-user" + "$ref": "#/components/examples/label-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" + } + }, + "post": { + "summary": "Create a label", + "description": "Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/).", + "tags": [ + "issues" + ], + "operationId": "issues/create-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/labels#create-a-label" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see \"[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet).\"" + }, + "color": { + "type": "string", + "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." + }, + "description": { + "type": "string", + "description": "A short description of the label. Must be 100 characters or fewer." + } + }, + "required": [ + "name" + ] + }, + "examples": { + "default": { + "value": { + "name": "bug", + "description": "Something isn't working", + "color": "f29513" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/label" + }, + "examples": { + "default": { + "$ref": "#/components/examples/label" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "schema": { + "type": "string" + } + } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "packages", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } } }, - "/users/{username}/projects": { + "/repos/{owner}/{repo}/labels/{name}": { "get": { - "summary": "List user projects", - "description": "", + "summary": "Get a label", + "description": "Gets a label using the given name.", "tags": [ - "projects" + "issues" ], - "operationId": "projects/list-for-user", + "operationId": "issues/get-label", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/projects#list-user-projects" + "url": "https://docs.github.com/rest/issues/labels#get-a-label" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "name": "state", - "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", - "in": "query", - "required": false, + "$ref": "#/components/parameters/repo" + }, + { + "name": "name", + "in": "path", + "required": true, "schema": { - "type": "string", - "enum": [ - "open", - "closed", - "all" - ], - "default": "open" + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/label" + }, + "examples": { + "default": { + "$ref": "#/components/examples/label" + } + } + } } }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" + } + }, + "patch": { + "summary": "Update a label", + "description": "Updates a label using the given label name.", + "tags": [ + "issues" + ], + "operationId": "issues/update-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/labels#update-a-label" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_name": { + "type": "string", + "description": "The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see \"[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet).\"" + }, + "color": { + "type": "string", + "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." + }, + "description": { + "type": "string", + "description": "A short description of the label. Must be 100 characters or fewer." + } + } + }, + "examples": { + "default": { + "value": { + "new_name": "bug :bug:", + "description": "Small bug fix required", + "color": "b01f26" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/project" - } + "$ref": "#/components/schemas/label" }, "examples": { "default": { - "$ref": "#/components/examples/project-items-3" + "$ref": "#/components/examples/label-2" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" + } + }, + "delete": { + "summary": "Delete a label", + "description": "Deletes a label using the given label name.", + "tags": [ + "issues" + ], + "operationId": "issues/delete-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/labels#delete-a-label" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "415": { - "$ref": "#/components/responses/preview_header_missing" + { + "$ref": "#/components/parameters/repo" }, - "422": { - "$ref": "#/components/responses/validation_failed" + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - { - "required": true, - "name": "inertia", - "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" - } - ], - "category": "projects", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } } }, - "/users/{username}/received_events": { + "/repos/{owner}/{repo}/languages": { "get": { - "summary": "List events received by the authenticated user", - "description": "These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.", + "summary": "List repository languages", + "description": "Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language.", "tags": [ - "activity" + "repos" ], - "operationId": "activity/list-received-events-for-user", + "operationId": "repos/list-languages", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-events-received-by-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/repos#list-repository-languages" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -52139,9 +54531,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" + "$ref": "#/components/schemas/language" + }, + "examples": { + "default": { + "$ref": "#/components/examples/language" } } } @@ -52151,35 +54545,32 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "events" + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/received_events/public": { + "/repos/{owner}/{repo}/license": { "get": { - "summary": "List public events received by a user", - "description": "", + "summary": "Get the license for a repository", + "description": "This method returns the contents of the repository's license file, if one is detected.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw contents of the license.\n- **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup).", "tags": [ - "activity" + "licenses" ], - "operationId": "activity/list-received-public-events-for-user", + "operationId": "licenses/get-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-public-events-received-by-a-user" + "url": "https://docs.github.com/rest/licenses/licenses#get-the-license-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/git-ref" } ], "responses": { @@ -52188,76 +54579,253 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" + "$ref": "#/components/schemas/license-content" + }, + "examples": { + "default": { + "$ref": "#/components/examples/license-content" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "events" + "category": "licenses", + "subcategory": "licenses" } } }, - "/users/{username}/repos": { - "get": { - "summary": "List repositories for a user", - "description": "Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user.", + "/repos/{owner}/{repo}/merge-upstream": { + "post": { + "summary": "Sync a fork branch with the upstream repository", + "description": "Sync a branch of a forked repository to keep it up-to-date with the upstream repository.", "tags": [ "repos" ], - "operationId": "repos/list-for-user", + "operationId": "repos/merge-upstream", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/repos#list-repositories-for-a-user" + "url": "https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "name": "type", - "description": "Can be one of `all`, `owner`, `member`.", + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "branch": { + "type": "string", + "description": "The name of the branch which should be updated to match upstream." + } + }, + "required": [ + "branch" + ] + }, + "examples": { + "default": { + "value": { + "branch": "main" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "The branch has been successfully synced with the upstream repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/merged-upstream" + }, + "examples": { + "default": { + "$ref": "#/components/examples/merged-upstream" + } + } + } + } + }, + "409": { + "description": "The branch could not be synced because of a merge conflict" + }, + "422": { + "description": "The branch could not be synced for some other reason" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branches" + } + } + }, + "/repos/{owner}/{repo}/merges": { + "post": { + "summary": "Merge a branch", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/merge", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/branches/branches#merge-a-branch" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "base": { + "type": "string", + "description": "The name of the base branch that the head will be merged into." + }, + "head": { + "type": "string", + "description": "The head to merge. This can be a branch name or a commit SHA1." + }, + "commit_message": { + "type": "string", + "description": "Commit message to use for the merge commit. If omitted, a default message will be used." + } + }, + "required": [ + "base", + "head" + ] + }, + "examples": { + "default": { + "value": { + "base": "master", + "head": "cool_feature", + "commit_message": "Shipped cool_feature!" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Successful Response (The resulting merge commit)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/commit" + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit" + } + } + } + } + }, + "204": { + "description": "Response when already merged" + }, + "404": { + "description": "Not Found when the base or head does not exist" + }, + "409": { + "description": "Conflict when there is a merge conflict" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branches" + } + } + }, + "/repos/{owner}/{repo}/milestones": { + "get": { + "summary": "List milestones", + "description": "Lists milestones for a repository.", + "tags": [ + "issues" + ], + "operationId": "issues/list-milestones", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/milestones#list-milestones" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "state", + "description": "The state of the milestone. Either `open`, `closed`, or `all`.", "in": "query", "required": false, "schema": { "type": "string", "enum": [ - "all", - "owner", - "member" + "open", + "closed", + "all" ], - "default": "owner" + "default": "open" } }, { "name": "sort", - "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", + "description": "What to sort results by. Either `due_on` or `completeness`.", "in": "query", "required": false, "schema": { "type": "string", "enum": [ - "created", - "updated", - "pushed", - "full_name" + "due_on", + "completeness" ], - "default": "full_name" + "default": "due_on" } }, { "name": "direction", - "description": "Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc`", + "description": "The direction of the sort. Either `asc` or `desc`.", "in": "query", "required": false, "schema": { @@ -52265,7 +54833,8 @@ "enum": [ "asc", "desc" - ] + ], + "default": "asc" } }, { @@ -52283,12 +54852,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/milestone" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/milestone-items" } } } @@ -52298,83 +54867,144 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - { - "required": false, - "name": "nebula", - "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" - } - ], - "category": "repos", - "subcategory": null + "category": "issues", + "subcategory": "milestones" } - } - }, - "/users/{username}/settings/billing/actions": { - "get": { - "summary": "Get GitHub Actions billing for a user", - "description": "Gets the summary of the free and paid GitHub Actions minutes used.\n\nPaid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAccess tokens must have the `user` scope.", - "operationId": "billing/get-github-actions-billing-user", + }, + "post": { + "summary": "Create a milestone", + "description": "Creates a milestone.", "tags": [ - "billing" + "issues" ], + "operationId": "issues/create-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-github-actions-billing-for-a-user" + "url": "https://docs.github.com/rest/issues/milestones#create-a-milestone" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the milestone." + }, + "state": { + "type": "string", + "description": "The state of the milestone. Either `open` or `closed`.", + "enum": [ + "open", + "closed" + ], + "default": "open" + }, + "description": { + "type": "string", + "description": "A description of the milestone." + }, + "due_on": { + "type": "string", + "format": "date-time", + "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + }, + "required": [ + "title" + ] + }, + "examples": { + "default": { + "value": { + "title": "v1.0", + "state": "open", + "description": "Tracking milestone for version 1.0", + "due_on": "2012-10-09T23:39:01Z" + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-billing-usage" + "$ref": "#/components/schemas/milestone" }, "examples": { "default": { - "$ref": "#/components/examples/actions-billing-usage" + "$ref": "#/components/examples/milestone" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "schema": { + "type": "string" + } + } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "billing", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "milestones" } } }, - "/users/{username}/settings/billing/packages": { + "/repos/{owner}/{repo}/milestones/{milestone_number}": { "get": { - "summary": "Get GitHub Packages billing for a user", - "description": "Gets the free and paid storage used for GitHub Packages in gigabytes.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `user` scope.", - "operationId": "billing/get-github-packages-billing-user", + "summary": "Get a milestone", + "description": "Gets a milestone using the given milestone number.", "tags": [ - "billing" + "issues" ], + "operationId": "issues/get-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-github-packages-billing-for-a-user" + "url": "https://docs.github.com/rest/issues/milestones#get-a-milestone" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/milestone-number" } ], "responses": { @@ -52383,56 +55013,104 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/packages-billing-usage" + "$ref": "#/components/schemas/milestone" }, "examples": { "default": { - "$ref": "#/components/examples/packages-billing-usage" + "$ref": "#/components/examples/milestone" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "billing", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "milestones" } - } - }, - "/users/{username}/settings/billing/shared-storage": { - "get": { - "summary": "Get shared storage billing for a user", - "description": "Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `user` scope.", - "operationId": "billing/get-shared-storage-billing-user", + }, + "patch": { + "summary": "Update a milestone", + "description": "", "tags": [ - "billing" + "issues" ], + "operationId": "issues/update-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/billing#get-shared-storage-billing-for-a-user" + "url": "https://docs.github.com/rest/issues/milestones#update-a-milestone" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/milestone-number" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the milestone." + }, + "state": { + "type": "string", + "description": "The state of the milestone. Either `open` or `closed`.", + "enum": [ + "open", + "closed" + ], + "default": "open" + }, + "description": { + "type": "string", + "description": "A description of the milestone." + }, + "due_on": { + "type": "string", + "format": "date-time", + "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + } + }, + "examples": { + "default": { + "value": { + "title": "v1.0", + "state": "open", + "description": "Tracking milestone for version 1.0", + "due_on": "2012-10-09T23:39:01Z" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/combined-billing-usage" + "$ref": "#/components/schemas/milestone" }, "examples": { "default": { - "$ref": "#/components/examples/combined-billing-usage" + "$ref": "#/components/examples/milestone" } } } @@ -52441,36 +55119,70 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "previews": [ - - ], - "category": "billing", - "subcategory": null + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "milestones" + } + }, + "delete": { + "summary": "Delete a milestone", + "description": "Deletes a milestone using the given milestone number.", + "tags": [ + "issues" + ], + "operationId": "issues/delete-milestone", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/milestones#delete-a-milestone" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/milestone-number" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "milestones" } } }, - "/users/{username}/starred": { + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { "get": { - "summary": "List repositories starred by a user", - "description": "Lists repositories a user has starred.\n\nYou can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "summary": "List labels for issues in a milestone", + "description": "Lists labels for issues in a milestone.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/list-repos-starred-by-user", + "operationId": "issues/list-labels-for-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-repositories-starred-by-a-user" + "url": "https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/sort" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/milestone-number" }, { "$ref": "#/components/parameters/per-page" @@ -52485,24 +55197,14 @@ "content": { "application/json": { "schema": { - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/starred-repository" - } - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" - } - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } }, "examples": { - "default-response": { - "$ref": "#/components/examples/repository-items-default-response" + "default": { + "$ref": "#/components/examples/label-items" } } } @@ -52517,29 +55219,41 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "activity", - "subcategory": "starring" + "category": "issues", + "subcategory": "labels" } } }, - "/users/{username}/subscriptions": { + "/repos/{owner}/{repo}/notifications": { "get": { - "summary": "List repositories watched by a user", - "description": "Lists repositories a user is watching.", + "summary": "List repository notifications for the authenticated user", + "description": "Lists all notifications for the current user in the specified repository.", "tags": [ "activity" ], - "operationId": "activity/list-repos-watched-by-user", + "operationId": "activity/list-repo-notifications-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reference/activity#list-repositories-watched-by-a-user" + "url": "https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/all" + }, + { + "$ref": "#/components/parameters/participating" + }, + { + "$ref": "#/components/parameters/since" + }, + { + "$ref": "#/components/parameters/before" }, { "$ref": "#/components/parameters/per-page" @@ -52556,12 +55270,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/thread" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/thread-items" } } } @@ -52575,17750 +55289,221499 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], + "enabledForGitHubApps": false, "category": "activity", - "subcategory": "watching" + "subcategory": "notifications" } - } - }, - "/zen": { - "get": { - "summary": "Get the Zen of GitHub", - "description": "Get a random sentence from the Zen of GitHub", + }, + "put": { + "summary": "Mark repository notifications as read", + "description": "Marks all notifications in a repository as \"read\" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as \"read.\" To check whether any \"unread\" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`.", "tags": [ - "meta" + "activity" ], - "operationId": "meta/get-zen", + "operationId": "activity/mark-repo-notifications-as-read", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "last_read_at": { + "type": "string", + "format": "date-time", + "description": "Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp." + } + } + }, + "examples": { + "default": { + "value": { + "last_read_at": "2019-01-01T00:00:00Z" + } + } + } + } + } + }, "responses": { - "200": { + "202": { "description": "Response", "content": { - "text/plain": { + "application/json": { "schema": { - "type": "string" + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "examples": { + "default": { + "value": { + "message": "Unread notifications couldn't be marked in a single request. Notifications are being marked as read in the background." + } + } } } } + }, + "205": { + "description": "Reset Content" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [ - - ], - "category": "meta" + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "notifications" } } - } - }, - "components": { - "schemas": { - "simple-user": { - "title": "Simple User", - "description": "Simple User", - "type": "object", - "properties": { - "name": { - "nullable": true, - "type": "string" - }, - "email": { - "nullable": true, - "type": "string" - }, - "login": { - "type": "string", - "example": "octocat" - }, - "id": { - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDQ6VXNlcjE=" - }, - "avatar_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" - }, - "gravatar_id": { - "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat" - }, - "followers_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/followers" - }, - "following_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" - }, - "gists_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" - }, - "starred_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" - }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" - }, - "organizations_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" - }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" - }, - "events_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" - }, - "received_events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" - }, - "type": { - "type": "string", - "example": "User" + }, + "/repos/{owner}/{repo}/pages": { + "get": { + "summary": "Get a GitHub Pages site", + "description": "Gets information about a GitHub Pages site.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/get-pages", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "site_admin": { - "type": "boolean" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/page" + }, + "examples": { + "default": { + "$ref": "#/components/examples/page" + } + } + } + } }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:55Z\"" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url" - ], - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" + } }, - "integration": { - "title": "GitHub app", - "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the GitHub app", - "example": 37, - "type": "integer" - }, - "slug": { - "description": "The slug name of the GitHub app", - "example": "probot-owners", - "type": "string" - }, - "node_id": { - "type": "string", - "example": "MDExOkludGVncmF0aW9uMQ==" + "post": { + "summary": "Create a GitHub Pages site", + "description": "Configures a GitHub Pages site. For more information, see \"[About GitHub Pages](/github/working-with-github-pages/about-github-pages).\"\n\nThe authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/create-pages-site", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "owner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The source branch and directory used to publish your Pages site.", + "nullable": true, + "properties": { + "build_type": { + "type": "string", + "description": "The process in which the Page will be built. Possible values are `\"legacy\"` and `\"workflow\"`.", + "enum": [ + "legacy", + "workflow" + ] + }, + "source": { + "type": "object", + "description": "The source branch and directory used to publish your Pages site.", + "properties": { + "branch": { + "type": "string", + "description": "The repository branch used to publish your site's source files." + }, + "path": { + "type": "string", + "description": "The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/`", + "enum": [ + "/", + "/docs" + ], + "default": "/" + } + }, + "required": [ + "branch" + ] + } + }, + "anyOf": [ + { + "required": [ + "source" + ] + }, + { + "required": [ + "build_type" + ] + } + ] + }, + "examples": { + "default": { + "value": { + "source": { + "branch": "main", + "path": "/docs" + } + } + } } - ] - }, - "name": { - "description": "The name of the GitHub app", - "example": "Probot Owners", - "type": "string" - }, - "description": { - "type": "string", - "example": "The description of the app.", - "nullable": true - }, - "external_url": { - "type": "string", - "format": "uri", - "example": "https://example.com" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/apps/super-ci" + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/page" + }, + "examples": { + "default": { + "$ref": "#/components/examples/page" + } + } + } + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-08T16:18:44-04:00" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-08T16:18:44-04:00" + "409": { + "$ref": "#/components/responses/conflict" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" + } + }, + "put": { + "summary": "Update information about a GitHub Pages site", + "description": "Updates information for a GitHub Pages site. For more information, see \"[About GitHub Pages](/github/working-with-github-pages/about-github-pages).\n\nThe authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/update-information-about-pages-site", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "permissions": { - "description": "The set of permissions for the GitHub app", - "type": "object", - "properties": { - "issues": { - "type": "string" - }, - "checks": { - "type": "string" - }, - "metadata": { - "type": "string" - }, - "contents": { - "type": "string" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cname": { + "type": "string", + "description": "Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see \"[Using a custom domain with GitHub Pages](https://docs.github.com/pages/configuring-a-custom-domain-for-your-github-pages-site).\"", + "nullable": true + }, + "https_enforced": { + "type": "boolean", + "description": "Specify whether HTTPS should be enforced for the repository." + }, + "build_type": { + "type": "string", + "description": "The process by which the GitHub Pages site will be built. `workflow` means that the site is built by a custom GitHub Actions workflow. `legacy` means that the site is built by GitHub when changes are pushed to a specific branch.", + "enum": [ + "legacy", + "workflow" + ] + }, + "source": { + "anyOf": [ + { + "type": "string", + "description": "Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `\"gh-pages\"`, `\"master\"`, and `\"master /docs\"`.", + "enum": [ + "gh-pages", + "master", + "master /docs" + ] + }, + { + "type": "object", + "description": "Update the source for the repository. Must include the branch name and path.", + "properties": { + "branch": { + "type": "string", + "description": "The repository branch used to publish your site's source files." + }, + "path": { + "type": "string", + "description": "The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`.", + "enum": [ + "/", + "/docs" + ] + } + }, + "required": [ + "branch", + "path" + ] + } + ] + } + }, + "anyOf": [ + { + "required": [ + "build_type" + ] + }, + { + "required": [ + "source" + ] + }, + { + "required": [ + "cname" + ] + }, + { + "required": [ + "public" + ] + }, + { + "required": [ + "https_enforced" + ] + } + ] }, - "deployments": { - "type": "string" + "examples": { + "default": { + "value": { + "cname": "octocatblog.com", + "source": { + "branch": "main", + "path": "/" + } + } + } } - }, - "additionalProperties": { - "type": "string" - }, - "example": { - "issues": "read", - "deployments": "write" } + } + }, + "responses": { + "204": { + "description": "Response" }, - "events": { - "description": "The list of events for the GitHub app", - "example": [ - "label", - "deployment" - ], - "type": "array", - "items": { - "type": "string" - } + "422": { + "$ref": "#/components/responses/validation_failed" }, - "installations_count": { - "description": "The number of installations associated with the GitHub app", - "example": 5, - "type": "integer" + "400": { + "$ref": "#/components/responses/bad_request" }, - "client_id": { - "type": "string", - "example": "\"Iv1.25b5d1e65ffc4022\"" + "409": { + "$ref": "#/components/responses/conflict" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" + } + }, + "delete": { + "summary": "Delete a GitHub Pages site", + "description": "Deletes a GitHub Pages site. For more information, see \"[About GitHub Pages](/github/working-with-github-pages/about-github-pages).\n\nThe authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-pages-site", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#delete-a-apiname-pages-site" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "client_secret": { - "type": "string", - "example": "\"1d4b2097ac622ba702d19de498f005747a8b21d3\"" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" }, - "webhook_secret": { - "type": "string", - "example": "\"6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b\"", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" }, - "pem": { - "type": "string", - "example": "\"-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\\n-----END RSA PRIVATE KEY-----\\n\"" + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, - "required": [ - "id", - "node_id", - "owner", - "name", - "description", - "external_url", - "html_url", - "created_at", - "updated_at", - "permissions", - "events" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" + } + } + }, + "/repos/{owner}/{repo}/pages/builds": { + "get": { + "summary": "List GitHub Pages builds", + "description": "Lists builts of a GitHub Pages site.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" ], - "nullable": true - }, - "basic-error": { - "title": "Basic Error", - "description": "Basic Error", - "type": "object", - "properties": { - "message": { - "type": "string" + "operationId": "repos/list-pages-builds", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#list-apiname-pages-builds" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "documentation_url": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "status": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/page-build" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/page-build-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" } }, - "validation-error-simple": { - "title": "Validation Error Simple", - "description": "Validation Error Simple", - "type": "object", - "required": [ - "message", - "documentation_url" + "post": { + "summary": "Request a GitHub Pages build", + "description": "You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.\n\nBuild requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.", + "tags": [ + "repos" ], - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" + "operationId": "repos/request-pages-build", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#request-a-apiname-pages-build" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "errors": { - "type": "array", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/page-build-status" + }, + "examples": { + "default": { + "$ref": "#/components/examples/page-build-status" + } + } + } } } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" } - }, - "webhook-config-url": { - "type": "string", - "description": "The URL to which the payloads will be delivered.", - "example": "https://example.com/webhook", - "format": "uri" - }, - "webhook-config-content-type": { - "type": "string", - "description": "The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`.", - "example": "\"json\"" - }, - "webhook-config-secret": { - "type": "string", - "description": "If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers).", - "example": "\"********\"" - }, - "webhook-config-insecure-ssl": { - "oneOf": [ + } + }, + "/repos/{owner}/{repo}/pages/builds/latest": { + "get": { + "summary": "Get latest Pages build", + "description": "Gets information about the single most recent build of a GitHub Pages site.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/get-latest-pages-build", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#get-latest-pages-build" + }, + "parameters": [ { - "type": "string", - "description": "Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.**", - "example": "\"0\"" + "$ref": "#/components/parameters/owner" }, { - "type": "number" + "$ref": "#/components/parameters/repo" } - ] - }, - "webhook-config": { - "title": "Webhook Configuration", - "description": "Configuration object of the webhook", - "type": "object", - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/page-build" + }, + "examples": { + "default": { + "$ref": "#/components/examples/page-build" + } + } + } + } } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" } - }, - "hook-delivery-item": { - "title": "Simple webhook delivery", - "description": "Delivery made by a webhook, without request and response information.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the webhook delivery.", - "type": "integer", - "example": 42 - }, - "guid": { - "description": "Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event).", - "type": "string", - "example": "58474f00-b361-11eb-836d-0e4f3503ccbe" - }, - "delivered_at": { - "description": "Time when the webhook delivery occurred.", - "type": "string", - "format": "date-time", - "example": "2021-05-12T20:33:44Z" - }, - "redelivery": { - "description": "Whether the webhook delivery is a redelivery.", - "type": "boolean", - "example": false - }, - "duration": { - "description": "Time spent delivering.", - "type": "number", - "example": 0.03 - }, - "status": { - "description": "Describes the response returned after attempting the delivery.", - "type": "string", - "example": "failed to connect" - }, - "status_code": { - "description": "Status code received when delivery was made.", - "type": "integer", - "example": 502 - }, - "event": { - "description": "The event that triggered the delivery.", - "type": "string", - "example": "issues" - }, - "action": { - "description": "The type of activity for the event that triggered the delivery.", - "type": "string", - "example": "opened", - "nullable": true + } + }, + "/repos/{owner}/{repo}/pages/builds/{build_id}": { + "get": { + "summary": "Get GitHub Pages build", + "description": "Gets information about a GitHub Pages build.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/get-pages-build", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#get-apiname-pages-build" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "installation_id": { - "description": "The id of the GitHub App installation associated with this event.", - "type": "integer", - "example": 123, - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "repository_id": { - "description": "The id of the repository associated with this event.", - "type": "integer", - "example": 123, - "nullable": true + { + "name": "build_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/page-build" + }, + "examples": { + "default": { + "$ref": "#/components/examples/page-build" + } + } + } + } } }, - "required": [ - "id", - "guid", - "delivered_at", - "redelivery", - "duration", - "status", - "status_code", - "event", - "action", - "installation_id", - "repository_id" - ] - }, - "scim-error": { - "title": "Scim Error", - "description": "Scim Error", - "type": "object", - "properties": { - "message": { - "type": "string", - "nullable": true - }, - "documentation_url": { - "type": "string", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" + } + } + }, + "/repos/{owner}/{repo}/pages/deployments": { + "post": { + "summary": "Create a GitHub Pages deployment", + "description": "Create a GitHub Pages deployment for a repository.\n\nThe authenticated user must have write permission to the repository.", + "tags": [ + "repos" + ], + "operationId": "repos/create-pages-deployment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#create-a-github-pages-deployment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "detail": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The object used to create GitHub Pages deployment", + "properties": { + "artifact_id": { + "type": "number", + "description": "The ID of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required." + }, + "artifact_url": { + "type": "string", + "description": "The URL of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required." + }, + "environment": { + "type": "string", + "description": "The target environment for this GitHub Pages deployment.", + "default": "github-pages" + }, + "pages_build_version": { + "type": "string", + "description": "A unique string that represents the version of the build for this deployment.", + "default": "GITHUB_SHA" + }, + "oidc_token": { + "type": "string", + "description": "The OIDC token issued by GitHub Actions certifying the origin of the deployment." + } + }, + "required": [ + "pages_build_version", + "oidc_token" + ] + }, + "examples": { + "default": { + "value": { + "artifact_url": "https://downloadcontent/", + "environment": "github-pages", + "pages_build_version": "4fd754f7e594640989b406850d0bc8f06a121251", + "oidc_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlV2R1h4SUhlY0JFc1JCdEttemUxUEhfUERiVSIsImtpZCI6IjUyRjE5N0M0ODFERTcwMTEyQzQ0MUI0QTlCMzdCNTNDN0ZDRjBEQjUifQ.eyJqdGkiOiJhMWIwNGNjNy0zNzZiLTQ1N2QtOTMzNS05NTY5YmVjZDExYTIiLCJzdWIiOiJyZXBvOnBhcGVyLXNwYS9taW55aTplbnZpcm9ubWVudDpQcm9kdWN0aW9uIiwiYXVkIjoiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyLXNwYSIsInJlZiI6InJlZnMvaGVhZHMvbWFpbiIsInNoYSI6ImEyODU1MWJmODdiZDk3NTFiMzdiMmM0YjM3M2MxZjU3NjFmYWM2MjYiLCJyZXBvc2l0b3J5IjoicGFwZXItc3BhL21pbnlpIiwicmVwb3NpdG9yeV9vd25lciI6InBhcGVyLXNwYSIsInJ1bl9pZCI6IjE1NDY0NTkzNjQiLCJydW5fbnVtYmVyIjoiMzQiLCJydW5fYXR0ZW1wdCI6IjYiLCJhY3RvciI6IllpTXlzdHkiLCJ3b3JrZmxvdyI6IkNJIiwiaGVhZF9yZWYiOiIiLCJiYXNlX3JlZiI6IiIsImV2ZW50X25hbWUiOiJwdXNoIiwicmVmX3R5cGUiOiJicmFuY2giLCJlbnZpcm9ubWVudCI6IlByb2R1Y3Rpb24iLCJqb2Jfd29ya2Zsb3dfcmVmIjoicGFwZXItc3BhL21pbnlpLy5naXRodWIvd29ya2Zsb3dzL2JsYW5rLnltbEByZWZzL2hlYWRzL21haW4iLCJpc3MiOiJodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwibmJmIjoxNjM5MDAwODU2LCJleHAiOjE2MzkwMDE3NTYsImlhdCI6MTYzOTAwMTQ1Nn0.VP8WictbQECKozE2SgvKb2FqJ9hisWsoMkYRTqfBrQfZTCXi5IcFEdgDMB2X7a99C2DeUuTvHh9RMKXLL2a0zg3-Sd7YrO7a2ll2kNlnvyIypcN6AeIc7BxHsTTnZN9Ud_xmEsTrSRGOEKmzCFkULQ6N4zlVD0sidypmXlMemmWEcv_ZHqhioEI_VMp5vwXQurketWH7qX4oDgG4okyYtPrv5RQHbfQcVo9izaPJ_jnsDd0CBA0QOx9InjPidtIkMYQLyUgJy33HLJy86EFNUnAf8UhBQuQi5mAsEpEzBBuKpG3PDiPtYCHOk64JZkZGd5mR888a5sbHRiaF8hm8YA" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/page-deployment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/page-deployment" + } + } + } + } }, - "status": { - "type": "integer" + "400": { + "$ref": "#/components/responses/bad_request" }, - "scimType": { - "type": "string", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" }, - "schemas": { - "type": "array", - "items": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" } - }, - "validation-error": { - "title": "Validation Error", - "description": "Validation Error", - "type": "object", - "required": [ - "message", - "documentation_url" + } + }, + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": { + "get": { + "summary": "Get the status of a GitHub Pages deployment", + "description": "Gets the current status of a GitHub Pages deployment.\n\nThe authenticated user must have read permission for the GitHub Pages site.", + "tags": [ + "repos" ], - "properties": { - "message": { - "type": "string" + "operationId": "repos/get-pages-deployment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#get-the-status-of-a-github-pages-deployment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "documentation_url": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "errors": { - "type": "array", - "items": { - "type": "object", - "required": [ - "code" - ], - "properties": { - "resource": { - "type": "string" - }, - "field": { - "type": "string" - }, - "message": { - "type": "string" - }, - "code": { - "type": "string" - }, - "index": { - "type": "integer" + { + "$ref": "#/components/parameters/pages-deployment-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pages-deployment-status" }, - "value": { - "oneOf": [ - { - "type": "string", - "nullable": true - }, - { - "type": "integer", - "nullable": true - }, - { - "type": "array", - "nullable": true, - "items": { - "type": "string" - } - } - ] + "examples": { + "default": { + "$ref": "#/components/examples/pages-deployment-status" + } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" } - }, - "hook-delivery": { - "title": "Webhook delivery", - "description": "Delivery made by a webhook.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the delivery.", - "type": "integer", - "example": 42 + } + }, + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": { + "post": { + "summary": "Cancel a GitHub Pages deployment", + "description": "Cancels a GitHub Pages deployment.\n\nThe authenticated user must have write permissions for the GitHub Pages site.", + "tags": [ + "repos" + ], + "operationId": "repos/cancel-pages-deployment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#cancel-a-github-pages-deployment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "guid": { - "description": "Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event).", - "type": "string", - "example": "58474f00-b361-11eb-836d-0e4f3503ccbe" + { + "$ref": "#/components/parameters/repo" }, - "delivered_at": { - "description": "Time when the delivery was delivered.", - "type": "string", - "format": "date-time", - "example": "2021-05-12T20:33:44Z" - }, - "redelivery": { - "description": "Whether the delivery is a redelivery.", - "type": "boolean", - "example": false - }, - "duration": { - "description": "Time spent delivering.", - "type": "number", - "example": 0.03 + { + "$ref": "#/components/parameters/pages-deployment-id" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" }, - "status": { - "description": "Description of the status of the attempted delivery", - "type": "string", - "example": "failed to connect" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" + } + } + }, + "/repos/{owner}/{repo}/pages/health": { + "get": { + "summary": "Get a DNS health check for GitHub Pages", + "description": "Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages.\n\nThe first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response.\n\nThe authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/get-pages-health-check", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pages/pages#get-a-dns-health-check-for-github-pages" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "status_code": { - "description": "Status code received when delivery was made.", - "type": "integer", - "example": 502 + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pages-health-check" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pages-health-check" + } + } + } + } }, - "event": { - "description": "The event that triggered the delivery.", - "type": "string", - "example": "issues" + "202": { + "description": "Empty response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } }, - "action": { - "description": "The type of activity for the event that triggered the delivery.", - "type": "string", - "example": "opened", - "nullable": true + "400": { + "description": "Custom domains are not available for GitHub Pages" }, - "installation_id": { - "description": "The id of the GitHub App installation associated with this event.", - "type": "integer", - "example": 123, - "nullable": true + "422": { + "description": "There isn't a CNAME for this page" }, - "repository_id": { - "description": "The id of the repository associated with this event.", - "type": "integer", - "example": 123, - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pages", + "subcategory": "pages" + } + } + }, + "/repos/{owner}/{repo}/private-vulnerability-reporting": { + "get": { + "summary": "Check if private vulnerability reporting is enabled for a repository", + "description": "Returns a boolean indicating whether or not private vulnerability reporting is enabled for the repository. For more information, see \"[Evaluating the security settings of a repository](https://docs.github.com/code-security/security-advisories/working-with-repository-security-advisories/evaluating-the-security-settings-of-a-repository)\".", + "tags": [ + "repos" + ], + "operationId": "repos/check-private-vulnerability-reporting", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#check-if-private-vulnerability-reporting-is-enabled-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "request": { - "type": "object", - "properties": { - "headers": { - "description": "The request headers sent with the webhook delivery.", - "type": "object", - "nullable": true, - "additionalProperties": true - }, - "payload": { - "description": "The webhook payload.", - "type": "object", - "nullable": true, - "additionalProperties": true + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Private vulnerability reporting status", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether or not private vulnerability reporting is enabled for the repository." + } + }, + "required": [ + "enabled" + ] + }, + "examples": { + "default": { + "value": { + "enabled": true + } + } + } } - }, - "required": [ - "headers", - "payload" - ] + } }, - "response": { - "type": "object", - "properties": { - "headers": { - "description": "The response headers received when the delivery was made.", - "type": "object", - "nullable": true, - "additionalProperties": true - }, - "payload": { - "description": "The response payload received.", - "type": "string", - "nullable": true, - "additionalProperties": true - } - }, - "required": [ - "headers", - "payload" - ] + "422": { + "$ref": "#/components/responses/bad_request" } }, - "required": [ - "id", - "guid", - "delivered_at", - "redelivery", - "duration", - "status", - "status_code", - "event", - "action", - "installation_id", - "repository_id", - "request", - "response" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } }, - "enterprise": { - "title": "Enterprise", - "description": "An enterprise account", - "type": "object", - "properties": { - "description": { - "description": "A short description of the enterprise.", - "type": "string", - "nullable": true - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/enterprises/octo-business" - }, - "website_url": { - "description": "The enterprise's website URL.", - "type": "string", - "nullable": true, - "format": "uri" - }, - "id": { - "description": "Unique identifier of the enterprise", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" - }, - "name": { - "description": "The name of the enterprise.", - "type": "string", - "example": "Octo Business" - }, - "slug": { - "description": "The slug url identifier for the enterprise.", - "type": "string", - "example": "octo-business" - }, - "created_at": { - "type": "string", - "nullable": true, - "format": "date-time", - "example": "2019-01-26T19:01:12Z" + "put": { + "summary": "Enable private vulnerability reporting for a repository", + "description": "Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability).\"", + "tags": [ + "repos" + ], + "operationId": "repos/enable-private-vulnerability-reporting", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#enable-private-vulnerability-reporting-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "updated_at": { - "type": "string", - "nullable": true, - "format": "date-time", - "example": "2019-01-26T19:14:43Z" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" }, - "avatar_url": { - "type": "string", - "format": "uri" + "422": { + "$ref": "#/components/responses/bad_request" } }, - "required": [ - "id", - "node_id", - "name", - "slug", - "html_url", - "created_at", - "updated_at", - "avatar_url" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } }, - "app-permissions": { - "title": "App Permissions", - "type": "object", - "description": "The permissions granted to the user-to-server access token.", - "properties": { - "actions": { - "type": "string", - "description": "The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "administration": { - "type": "string", - "description": "The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "checks": { - "type": "string", - "description": "The level of permission to grant the access token for checks on code. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "content_references": { - "type": "string", - "description": "The level of permission to grant the access token for notification of content references and creation content attachments. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "contents": { - "type": "string", - "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "deployments": { - "type": "string", - "description": "The level of permission to grant the access token for deployments and deployment statuses. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "environments": { - "type": "string", - "description": "The level of permission to grant the access token for managing repository environments. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "issues": { - "type": "string", - "description": "The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "metadata": { - "type": "string", - "description": "The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "packages": { - "type": "string", - "description": "The level of permission to grant the access token for packages published to GitHub Packages. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "pages": { - "type": "string", - "description": "The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "pull_requests": { - "type": "string", - "description": "The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "repository_hooks": { - "type": "string", - "description": "The level of permission to grant the access token to manage the post-receive hooks for a repository. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "repository_projects": { - "type": "string", - "description": "The level of permission to grant the access token to manage repository projects, columns, and cards. Can be one of: `read`, `write`, or `admin`.", - "enum": [ - "read", - "write", - "admin" - ] - }, - "secret_scanning_alerts": { - "type": "string", - "description": "The level of permission to grant the access token to view and manage secret scanning alerts. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "secrets": { - "type": "string", - "description": "The level of permission to grant the access token to manage repository secrets. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "security_events": { - "type": "string", - "description": "The level of permission to grant the access token to view and manage security events like code scanning alerts. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "single_file": { - "type": "string", - "description": "The level of permission to grant the access token to manage just a single file. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "statuses": { - "type": "string", - "description": "The level of permission to grant the access token for commit statuses. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "vulnerability_alerts": { - "type": "string", - "description": "The level of permission to grant the access token to retrieve Dependabot alerts. Can be one of: `read`.", - "enum": [ - "read" - ] - }, - "workflows": { - "type": "string", - "description": "The level of permission to grant the access token to update GitHub Actions workflow files. Can be one of: `write`.", - "enum": [ - "write" - ] - }, - "members": { - "type": "string", - "description": "The level of permission to grant the access token for organization teams and members. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "organization_administration": { - "type": "string", - "description": "The level of permission to grant the access token to manage access to an organization. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "organization_hooks": { - "type": "string", - "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] - }, - "organization_plan": { - "type": "string", - "description": "The level of permission to grant the access token for viewing an organization's plan. Can be one of: `read`.", - "enum": [ - "read" - ] - }, - "organization_projects": { - "type": "string", - "description": "The level of permission to grant the access token to manage organization projects, columns, and cards. Can be one of: `read`, `write`, or `admin`.", - "enum": [ - "read", - "write", - "admin" - ] + "delete": { + "summary": "Disable private vulnerability reporting for a repository", + "description": "Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)\".", + "tags": [ + "repos" + ], + "operationId": "repos/disable-private-vulnerability-reporting", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#disable-private-vulnerability-reporting-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "organization_packages": { - "type": "string", - "description": "The level of permission to grant the access token for organization packages published to GitHub Packages. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" }, - "organization_secrets": { - "type": "string", - "description": "The level of permission to grant the access token to manage organization secrets. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] + "422": { + "$ref": "#/components/responses/bad_request" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/properties/values": { + "get": { + "summary": "Get all custom property values for a repository", + "description": "Gets all custom property values that are set for a repository.\nUsers with read access to the repository can use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/custom-properties-for-repos-get-repository-values", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/custom-properties#get-all-custom-property-values-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "organization_self_hosted_runners": { - "type": "string", - "description": "The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/custom-property-value" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/custom-property-values" + } + } + } + } }, - "organization_user_blocking": { - "type": "string", - "description": "The level of permission to grant the access token to view and manage users blocked by the organization. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] + "403": { + "$ref": "#/components/responses/forbidden" }, - "team_discussions": { - "type": "string", - "description": "The level of permission to grant the access token to manage team discussions and related comments. Can be one of: `read` or `write`.", - "enum": [ - "read", - "write" - ] + "404": { + "$ref": "#/components/responses/not_found" } }, - "example": { - "contents": "read", - "issues": "read", - "deployments": "write", - "single_file": "read" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "custom-properties" } }, - "installation": { - "title": "Installation", - "description": "Installation", - "type": "object", - "properties": { - "id": { - "description": "The ID of the installation.", - "type": "integer", - "example": 1 + "patch": { + "summary": "Create or update custom property values for a repository", + "description": "Create new or update existing custom property values for a repository.\nUsing a value of `null` for a custom property will remove or 'unset' the property value from the repository.\n\nRepository admins and other users with the repository-level \"edit custom property values\" fine-grained permission can use this endpoint.", + "tags": [ + "repos" + ], + "operationId": "repos/custom-properties-for-repos-create-or-update-repository-values", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/custom-properties#create-or-update-custom-property-values-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "account": { - "nullable": true, - "anyOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "properties": { + "type": "array", + "description": "A list of custom property names and associated values to apply to the repositories.", + "items": { + "$ref": "#/components/schemas/custom-property-value" + } + } + }, + "required": [ + "properties" + ] }, - { - "$ref": "#/components/schemas/enterprise" + "examples": { + "default": { + "$ref": "#/components/examples/create-or-update-custom-properties-values" + } } - ] - }, - "repository_selection": { - "description": "Describe whether all repositories have been selected or there's a selection involved", - "type": "string", - "enum": [ - "all", - "selected" - ] - }, - "access_tokens_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/installations/1/access_tokens" - }, - "repositories_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/installation/repositories" + } + } + }, + "responses": { + "204": { + "description": "No Content when custom property values are successfully created or updated" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/organizations/github/settings/installations/1" + "403": { + "$ref": "#/components/responses/forbidden" }, - "app_id": { - "type": "integer", - "example": 1 + "404": { + "$ref": "#/components/responses/not_found" }, - "target_id": { - "description": "The ID of the user or organization this token is being scoped to.", - "type": "integer" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "custom-properties" + } + } + }, + "/repos/{owner}/{repo}/pulls": { + "get": { + "summary": "List pull requests", + "description": "Lists pull requests in a specified repository.\n\nDraft pull requests are available in public repositories with GitHub\nFree and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing\nplans, and in public and private repositories with GitHub Team and GitHub Enterprise\nCloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)\nin the GitHub Help documentation.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#list-pull-requests" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "target_type": { - "type": "string", - "example": "Organization" + { + "$ref": "#/components/parameters/repo" }, - "permissions": { - "$ref": "#/components/schemas/app-permissions" + { + "name": "state", + "description": "Either `open`, `closed`, or `all` to filter by state.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "open", + "closed", + "all" + ], + "default": "open" + } }, - "events": { - "type": "array", - "items": { + { + "name": "head", + "description": "Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`.", + "in": "query", + "required": false, + "schema": { "type": "string" } }, - "created_at": { - "type": "string", - "format": "date-time" + { + "name": "base", + "description": "Filter pulls by base branch name. Example: `gh-pages`.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "name": "sort", + "description": "What to sort results by. `popularity` will sort by the number of comments. `long-running` will sort by date created and will limit the results to pull requests that have been open for more than a month and have had activity within the past month.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "popularity", + "long-running" + ], + "default": "created" + } }, - "single_file_name": { - "type": "string", - "example": "config.yaml", - "nullable": true + { + "name": "direction", + "description": "The direction of the sort. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } }, - "has_multiple_single_files": { - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/per-page" }, - "single_file_paths": { - "type": "array", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-simple-items" + } + } + } }, - "example": [ - "config.yml", - ".github/issue_TEMPLATE.md" - ] - }, - "app_slug": { - "type": "string", - "example": "github-actions" - }, - "suspended_by": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] + } }, - "suspended_at": { - "type": "string", - "format": "date-time", - "nullable": true + "304": { + "$ref": "#/components/responses/not_modified" }, - "contact_email": { - "type": "string", - "example": "\"test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com\"", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" } }, - "required": [ - "id", - "app_id", - "app_slug", - "target_id", - "target_type", - "single_file_name", - "repository_selection", - "access_tokens_url", - "html_url", - "repositories_url", - "events", - "account", - "permissions", - "created_at", - "updated_at", - "suspended_by", - "suspended_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } }, - "license-simple": { - "title": "License Simple", - "description": "License Simple", - "type": "object", - "properties": { - "key": { - "type": "string", - "example": "mit" - }, - "name": { - "type": "string", - "example": "MIT License" - }, - "url": { - "type": "string", - "nullable": true, - "format": "uri", - "example": "https://api.github.com/licenses/mit" + "post": { + "summary": "Create a pull request", + "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\" and \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/create", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#create-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "spdx_id": { - "type": "string", - "nullable": true, - "example": "MIT" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the new pull request. Required unless `issue` is specified." + }, + "head": { + "type": "string", + "description": "The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`." + }, + "head_repo": { + "type": "string", + "description": "The name of the repository where the changes in the pull request were made. This field is required for cross-repository pull requests if both repositories are owned by the same organization.", + "format": "repo.nwo", + "example": "octo-org/octo-repo" + }, + "base": { + "type": "string", + "description": "The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository." + }, + "body": { + "type": "string", + "description": "The contents of the pull request." + }, + "maintainer_can_modify": { + "type": "boolean", + "description": "Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request." + }, + "draft": { + "type": "boolean", + "description": "Indicates whether the pull request is a draft. See \"[Draft Pull Requests](https://docs.github.com/articles/about-pull-requests#draft-pull-requests)\" in the GitHub Help documentation to learn more." + }, + "issue": { + "type": "integer", + "format": "int64", + "example": 1, + "description": "An issue in the repository to convert to a pull request. The issue title, body, and comments will become the title, body, and comments on the new pull request. Required unless `title` is specified." + } + }, + "required": [ + "head", + "base" + ] + }, + "examples": { + "default": { + "value": { + "title": "Amazing new feature", + "body": "Please pull these awesome changes in!", + "head": "octocat:new-feature", + "base": "master" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "schema": { + "type": "string" + } + } + } }, - "node_id": { - "type": "string", - "example": "MDc6TGljZW5zZW1pdA==" + "403": { + "$ref": "#/components/responses/forbidden" }, - "html_url": { - "type": "string", - "format": "uri" + "422": { + "$ref": "#/components/responses/validation_failed" } }, - "required": [ - "key", - "name", - "url", - "spdx_id", - "node_id" - ] - }, - "repository": { - "title": "Repository", - "description": "A git repository", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the repository", - "example": 42, - "type": "integer" + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } + } + }, + "/repos/{owner}/{repo}/pulls/comments": { + "get": { + "summary": "List review comments in a repository", + "description": "Lists review comments for all pull requests in a repository. By default,\nreview comments are in ascending order by ID.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list-review-comments-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + { + "$ref": "#/components/parameters/repo" }, - "name": { - "description": "The name of the repository.", - "type": "string", - "example": "Team Environment" + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "created_at" + ] + } }, - "full_name": { - "type": "string", - "example": "octocat/Hello-World" - }, - "license": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/license-simple" - } - ] + { + "name": "direction", + "description": "The direction to sort results. Ignored without `sort` parameter.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } }, - "organization": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + { + "$ref": "#/components/parameters/since" }, - "forks": { - "type": "integer" + { + "$ref": "#/components/parameters/per-page" }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "pull": { - "type": "boolean" - }, - "triage": { - "type": "boolean" - }, - "push": { - "type": "boolean" - }, - "maintain": { - "type": "boolean" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review-comment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-items" + } + } } }, - "required": [ - "admin", - "pull", - "push" - ] - }, - "owner": { - "$ref": "#/components/schemas/simple-user" - }, - "private": { - "description": "Whether the repository is private or public.", - "default": false, - "type": "boolean" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World" - }, - "description": { - "type": "string", - "example": "This your first repo!", - "nullable": true - }, - "fork": { - "type": "boolean" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" - }, - "archive_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" - }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" - }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" - }, - "branches_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" - }, - "collaborators_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" - }, - "comments_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" - }, - "commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" - }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" - }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" - }, - "contributors_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" - }, - "deployments_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" - }, - "downloads_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" - }, - "events_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" - }, - "forks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" - }, - "git_commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" - }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" - }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" - }, - "git_url": { - "type": "string", - "example": "git:github.com/octocat/Hello-World.git" - }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" - }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" - }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" - }, - "keys_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" - }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" - }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" - }, - "merges_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" - }, - "milestones_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" - }, - "notifications_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" - }, - "pulls_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" - }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" - }, - "ssh_url": { - "type": "string", - "example": "git@github.com:octocat/Hello-World.git" - }, - "stargazers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" - }, - "statuses_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" - }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" - }, - "subscription_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "comments" + } + } + }, + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + "get": { + "summary": "Get a review comment for a pull request", + "description": "Provides details for a specified review comment.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/get-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "tags_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + { + "$ref": "#/components/parameters/repo" }, - "teams_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + { + "$ref": "#/components/parameters/comment-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-2" + } + } + } + } }, - "trees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "comments" + } + }, + "patch": { + "summary": "Update a review comment for a pull request", + "description": "Edits the content of a specified review comment.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/update-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "clone_url": { - "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + { + "$ref": "#/components/parameters/repo" }, - "mirror_url": { - "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", - "nullable": true + { + "$ref": "#/components/parameters/comment-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The text of the reply to the review comment." + } + }, + "required": [ + "body" + ] + }, + "examples": { + "default": { + "value": { + "body": "I like this too!" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "comments" + } + }, + "delete": { + "summary": "Delete a review comment for a pull request", + "description": "Deletes a review comment.", + "tags": [ + "pulls" + ], + "operationId": "pulls/delete-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/comments#delete-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "hooks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + { + "$ref": "#/components/parameters/repo" }, - "svn_url": { - "type": "string", - "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" + { + "$ref": "#/components/parameters/comment-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "homepage": { - "type": "string", - "format": "uri", - "example": "https://github.com", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "comments" + } + } + }, + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + "get": { + "summary": "List reactions for a pull request review comment", + "description": "List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request).", + "tags": [ + "reactions" + ], + "operationId": "reactions/list-for-pull-request-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "language": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "forks_count": { - "type": "integer", - "example": 9 + { + "$ref": "#/components/parameters/comment-id" }, - "stargazers_count": { - "type": "integer", - "example": 80 + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a pull request review comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } }, - "watchers_count": { - "type": "integer", - "example": 80 + { + "$ref": "#/components/parameters/per-page" }, - "size": { - "type": "integer", - "example": 108 + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/reaction" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "default_branch": { - "description": "The default branch of the repository.", - "type": "string", - "example": "master" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" + } + }, + "post": { + "summary": "Create reaction for a pull request review comment", + "description": "Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment.", + "tags": [ + "reactions" + ], + "operationId": "reactions/create-for-pull-request-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "open_issues_count": { - "type": "integer", - "example": 0 + { + "$ref": "#/components/parameters/repo" }, - "is_template": { - "description": "Whether this repository acts as a template that can be used to generate new repositories.", - "default": false, - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/comment-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the pull request review comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": [ + "content" + ] + }, + "examples": { + "default": { + "value": { + "content": "heart" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Reaction exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } + } + } }, - "topics": { - "type": "array", - "items": { - "type": "string" + "201": { + "description": "Reaction created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } + } } }, - "has_issues": { - "description": "Whether issues are enabled.", - "default": true, - "type": "boolean", - "example": true + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" + } + } + }, + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete a pull request comment reaction", + "description": "> [!NOTE]\n> You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.`\n\nDelete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request).", + "tags": [ + "reactions" + ], + "operationId": "reactions/delete-for-pull-request-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "has_projects": { - "description": "Whether projects are enabled.", - "default": true, - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/repo" }, - "has_wiki": { - "description": "Whether the wiki is enabled.", - "default": true, - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/comment-id" }, - "has_pages": { - "type": "boolean" + { + "$ref": "#/components/parameters/reaction-id" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}": { + "get": { + "summary": "Get a pull request", + "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists details of a pull request by providing its number.\n\nWhen you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".\n\nThe value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit.\n\nThe value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request:\n\n* If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit.\n* If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch.\n* If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to.\n\nPass the appropriate [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types) to fetch diff and patch formats.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.\n- **`application/vnd.github.diff`**: For more information, see \"[git-diff](https://git-scm.com/docs/git-diff)\" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message.", + "tags": [ + "pulls" + ], + "operationId": "pulls/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#get-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "has_downloads": { - "description": "Whether downloads are enabled.", - "default": true, - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/repo" }, - "archived": { - "description": "Whether the repository is archived.", - "default": false, - "type": "boolean" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "responses": { + "200": { + "description": "Pass the appropriate [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types) to fetch diff and patch formats.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request" + } + } + } + } }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + "304": { + "$ref": "#/components/responses/not_modified" }, - "visibility": { - "description": "The repository visibility: public, private, or internal.", - "default": "public", - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "pushed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "nullable": true + "406": { + "$ref": "#/components/responses/unacceptable" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "500": { + "$ref": "#/components/responses/internal_error" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:14:43Z", - "nullable": true + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } + }, + "patch": { + "summary": "Update a pull request", + "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/update", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#update-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "allow_rebase_merge": { - "description": "Whether to allow rebase merges for pull requests.", - "default": true, - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/repo" }, - "template_repository": { - "nullable": true, - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "full_name": { - "type": "string" - }, - "owner": { + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { "type": "object", "properties": { - "login": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "avatar_url": { - "type": "string" - }, - "gravatar_id": { - "type": "string" + "title": { + "type": "string", + "description": "The title of the pull request." }, - "url": { - "type": "string" + "body": { + "type": "string", + "description": "The contents of the pull request." }, - "html_url": { - "type": "string" + "state": { + "type": "string", + "description": "State of this Pull Request. Either `open` or `closed`.", + "enum": [ + "open", + "closed" + ] }, - "followers_url": { - "type": "string" + "base": { + "type": "string", + "description": "The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository." }, - "following_url": { + "maintainer_can_modify": { + "type": "boolean", + "description": "Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request." + } + } + }, + "examples": { + "default": { + "value": { + "title": "new title", + "body": "updated body", + "state": "open", + "base": "master" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request" + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/codespaces": { + "post": { + "summary": "Create a codespace from a pull request", + "description": "Creates a codespace owned by the authenticated user for the specified pull request.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/create-with-pr-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-from-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "nullable": true, + "properties": { + "location": { + "description": "The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided.", "type": "string" }, - "gists_url": { - "type": "string" + "geo": { + "description": "The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is closing down.", + "type": "string", + "enum": [ + "EuropeWest", + "SoutheastAsia", + "UsEast", + "UsWest" + ] }, - "starred_url": { + "client_ip": { + "description": "IP for location auto-detection when proxying a request", "type": "string" }, - "subscriptions_url": { + "machine": { + "description": "Machine type to use for this codespace", "type": "string" }, - "organizations_url": { + "devcontainer_path": { + "description": "Path to devcontainer.json config to use for this codespace", "type": "string" }, - "repos_url": { - "type": "string" + "multi_repo_permissions_opt_out": { + "description": "Whether to authorize requested permissions from devcontainer.json", + "type": "boolean" }, - "events_url": { + "working_directory": { + "description": "Working directory for this codespace", "type": "string" }, - "received_events_url": { - "type": "string" + "idle_timeout_minutes": { + "description": "Time in minutes before codespace stops from inactivity", + "type": "integer" }, - "type": { + "display_name": { + "description": "Display name for this codespace", "type": "string" }, - "site_admin": { - "type": "boolean" + "retention_period_minutes": { + "description": "Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days).", + "type": "integer" } } }, - "private": { - "type": "boolean" - }, - "html_url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "fork": { - "type": "boolean" - }, - "url": { - "type": "string" - }, - "archive_url": { - "type": "string" - }, - "assignees_url": { - "type": "string" - }, - "blobs_url": { - "type": "string" - }, - "branches_url": { - "type": "string" - }, - "collaborators_url": { - "type": "string" - }, - "comments_url": { - "type": "string" - }, - "commits_url": { - "type": "string" - }, - "compare_url": { - "type": "string" - }, - "contents_url": { - "type": "string" - }, - "contributors_url": { - "type": "string" - }, - "deployments_url": { - "type": "string" - }, - "downloads_url": { - "type": "string" - }, - "events_url": { - "type": "string" - }, - "forks_url": { - "type": "string" - }, - "git_commits_url": { - "type": "string" - }, - "git_refs_url": { - "type": "string" - }, - "git_tags_url": { - "type": "string" - }, - "git_url": { - "type": "string" - }, - "issue_comment_url": { - "type": "string" - }, - "issue_events_url": { - "type": "string" - }, - "issues_url": { - "type": "string" - }, - "keys_url": { - "type": "string" - }, - "labels_url": { - "type": "string" - }, - "languages_url": { - "type": "string" - }, - "merges_url": { - "type": "string" - }, - "milestones_url": { - "type": "string" - }, - "notifications_url": { - "type": "string" - }, - "pulls_url": { - "type": "string" - }, - "releases_url": { - "type": "string" - }, - "ssh_url": { - "type": "string" - }, - "stargazers_url": { - "type": "string" - }, - "statuses_url": { - "type": "string" - }, - "subscribers_url": { - "type": "string" - }, - "subscription_url": { - "type": "string" - }, - "tags_url": { - "type": "string" - }, - "teams_url": { - "type": "string" - }, - "trees_url": { - "type": "string" - }, - "clone_url": { - "type": "string" - }, - "mirror_url": { - "type": "string" - }, - "hooks_url": { - "type": "string" - }, - "svn_url": { - "type": "string" - }, - "homepage": { - "type": "string" - }, - "language": { - "type": "string" - }, - "forks_count": { - "type": "integer" - }, - "stargazers_count": { - "type": "integer" - }, - "watchers_count": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "default_branch": { - "type": "string" - }, - "open_issues_count": { - "type": "integer" - }, - "is_template": { - "type": "boolean" - }, - "topics": { - "type": "array", - "items": { - "type": "string" + "examples": { + "default": { + "value": { + "repository_id": 1, + "ref": "main" + } } - }, - "has_issues": { - "type": "boolean" - }, - "has_projects": { - "type": "boolean" - }, - "has_wiki": { - "type": "boolean" - }, - "has_pages": { - "type": "boolean" - }, - "has_downloads": { - "type": "boolean" - }, - "archived": { - "type": "boolean" - }, - "disabled": { - "type": "boolean" - }, - "visibility": { - "type": "string" - }, - "pushed_at": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "push": { - "type": "boolean" - }, - "pull": { - "type": "boolean" + } + } + } + }, + "responses": { + "201": { + "description": "Response when the codespace was successfully created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" } } - }, - "allow_rebase_merge": { - "type": "boolean" - }, - "temp_clone_token": { - "type": "string" - }, - "allow_squash_merge": { - "type": "boolean" - }, - "allow_auto_merge": { - "type": "boolean" - }, - "delete_branch_on_merge": { - "type": "boolean" - }, - "allow_merge_commit": { - "type": "boolean" - }, - "subscribers_count": { - "type": "integer" - }, - "network_count": { - "type": "integer" } } }, - "temp_clone_token": { - "type": "string" - }, - "allow_squash_merge": { - "description": "Whether to allow squash merges for pull requests.", - "default": true, - "type": "boolean", - "example": true - }, - "allow_auto_merge": { - "description": "Whether to allow Auto-merge to be used on pull requests.", - "default": false, - "type": "boolean", - "example": false - }, - "delete_branch_on_merge": { - "description": "Whether to delete head branches when pull requests are merged", - "default": false, - "type": "boolean", - "example": false - }, - "allow_merge_commit": { - "description": "Whether to allow merge commits for pull requests.", - "default": true, - "type": "boolean", - "example": true - }, - "subscribers_count": { - "type": "integer" - }, - "network_count": { - "type": "integer" + "202": { + "description": "Response when the codespace creation partially failed but is being retried in the background", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } }, - "open_issues": { - "type": "integer" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "watchers": { - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" }, - "master_branch": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:42Z\"" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "archive_url", - "assignees_url", - "blobs_url", - "branches_url", - "collaborators_url", - "comments_url", - "commits_url", - "compare_url", - "contents_url", - "contributors_url", - "deployments_url", - "description", - "downloads_url", - "events_url", - "fork", - "forks_url", - "full_name", - "git_commits_url", - "git_refs_url", - "git_tags_url", - "hooks_url", - "html_url", - "id", - "node_id", - "issue_comment_url", - "issue_events_url", - "issues_url", - "keys_url", - "labels_url", - "languages_url", - "merges_url", - "milestones_url", - "name", - "notifications_url", - "owner", - "private", - "pulls_url", - "releases_url", - "stargazers_url", - "statuses_url", - "subscribers_url", - "subscription_url", - "tags_url", - "teams_url", - "trees_url", - "url", - "clone_url", - "default_branch", - "forks", - "forks_count", - "git_url", - "has_downloads", - "has_issues", - "has_projects", - "has_wiki", - "has_pages", - "homepage", - "language", - "archived", - "disabled", - "mirror_url", - "open_issues", - "open_issues_count", - "license", - "pushed_at", - "size", - "ssh_url", - "stargazers_count", - "svn_url", - "watchers", - "watchers_count", - "created_at", - "updated_at" - ] - }, - "installation-token": { - "title": "Installation Token", - "description": "Authentication token for a GitHub App installed on a user or org.", - "type": "object", - "properties": { - "token": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + "get": { + "summary": "List review comments on a pull request", + "description": "Lists all review comments for a specified pull request. By default, review comments\nare in ascending order by ID.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list-review-comments", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "expires_at": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "permissions": { - "$ref": "#/components/schemas/app-permissions" + { + "$ref": "#/components/parameters/pull-number" }, - "repository_selection": { - "type": "string", - "enum": [ - "all", - "selected" - ] + { + "$ref": "#/components/parameters/sort" }, - "repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" + { + "name": "direction", + "description": "The direction to sort results. Ignored without `sort` parameter.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] } }, - "single_file": { - "type": "string", - "example": "README.md" + { + "$ref": "#/components/parameters/since" }, - "has_multiple_single_files": { - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/per-page" }, - "single_file_paths": { - "type": "array", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review-comment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-items" + } + } + } }, - "example": [ - "config.yml", - ".github/issue_TEMPLATE.md" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "token", - "expires_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "comments" + } }, - "application-grant": { - "title": "Application Grant", - "description": "The authorization associated with an OAuth Access.", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1 + "post": { + "summary": "Create a review comment for a pull request", + "description": "Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see \"[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment).\"\n\nIf your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request.\n\nThe `position` parameter is closing down. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\"\nand \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/create-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/applications/grants/1" + { + "$ref": "#/components/parameters/repo" }, - "app": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "name": { - "type": "string" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The text of the review comment." + }, + "commit_id": { + "type": "string", + "description": "The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`." + }, + "path": { + "type": "string", + "description": "The relative path to the file that necessitates a comment." + }, + "position": { + "type": "integer", + "description": "**This parameter is closing down. Use `line` instead**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The position value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.", + "deprecated": true, + "x-github": { + "deprecationDate": "2022-11-01" + } + }, + "side": { + "type": "string", + "description": "In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see \"[Diff view options](https://docs.github.com/articles/about-comparing-branches-in-pull-requests#diff-view-options)\" in the GitHub Help documentation.", + "enum": [ + "LEFT", + "RIGHT" + ] + }, + "line": { + "type": "integer", + "description": "**Required unless using `subject_type:file`**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to." + }, + "start_line": { + "type": "integer", + "description": "**Required when using multi-line comments unless using `in_reply_to`**. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see \"[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation." + }, + "start_side": { + "type": "string", + "description": "**Required when using multi-line comments unless using `in_reply_to`**. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see \"[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation. See `side` in this table for additional context.", + "enum": [ + "LEFT", + "RIGHT", + "side" + ] + }, + "in_reply_to": { + "type": "integer", + "example": 2, + "description": "The ID of the review comment to reply to. To find the ID of a review comment with [\"List review comments on a pull request\"](#list-review-comments-on-a-pull-request). When specified, all parameters other than `body` in the request body are ignored." + }, + "subject_type": { + "type": "string", + "description": "The level at which the comment is targeted.", + "enum": [ + "line", + "file" + ] + } + }, + "required": [ + "body", + "commit_id", + "path" + ] }, - "url": { - "type": "string", - "format": "uri" + "examples": { + "example-for-a-multi-line-comment": { + "summary": "Example for a multi-line comment", + "value": { + "body": "Great stuff!", + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "path": "file1.txt", + "start_line": 1, + "start_side": "RIGHT", + "line": 2, + "side": "RIGHT" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "example-for-a-multi-line-comment": { + "$ref": "#/components/examples/pull-request-review-comment-example-for-a-multi-line-comment" + } + } } }, - "required": [ - "client_id", - "name", - "url" - ] - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-09-06T17:26:27Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-09-06T20:39:23Z" + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "schema": { + "type": "string" + } + } + } }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "public_repo" - ] + "422": { + "$ref": "#/components/responses/validation_failed" }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "app", - "id", - "scopes", - "url", - "created_at", - "updated_at" - ] - }, - "scoped-installation": { - "title": "Scoped Installation", - "type": "object", - "properties": { - "permissions": { - "$ref": "#/components/schemas/app-permissions" - }, - "repository_selection": { - "description": "Describe whether all repositories have been selected or there's a selection involved", - "type": "string", - "enum": [ - "all", - "selected" - ] + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "comments" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { + "post": { + "summary": "Create a reply for a review comment", + "description": "Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\"\nand \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/create-reply-for-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "single_file_name": { - "type": "string", - "example": "config.yaml", - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "has_multiple_single_files": { - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/pull-number" }, - "single_file_paths": { - "type": "array", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/comment-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The text of the review comment." + } + }, + "required": [ + "body" + ] + }, + "examples": { + "default": { + "value": { + "body": "Great stuff!" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment" + } + } + } }, - "example": [ - "config.yml", - ".github/issue_TEMPLATE.md" - ] - }, - "repositories_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "schema": { + "type": "string" + } + } + } }, - "account": { - "$ref": "#/components/schemas/simple-user" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "permissions", - "repository_selection", - "single_file_name", - "repositories_url", - "account" - ] - }, - "authorization": { - "title": "Authorization", - "description": "The authorization for an OAuth app, GitHub App, or a Personal Access Token.", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "url": { - "type": "string", - "format": "uri" - }, - "scopes": { - "description": "A list of scopes that this authorization is in.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "pulls", + "subcategory": "comments" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + "get": { + "summary": "List commits on a pull request", + "description": "Lists a maximum of 250 commits for a pull request. To receive a complete\ncommit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits)\nendpoint.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list-commits", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "token": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "token_last_eight": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/pull-number" }, - "hashed_token": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/per-page" }, - "app": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-items" + } + } } }, - "required": [ - "client_id", - "name", - "url" - ] - }, - "note": { - "type": "string", - "nullable": true - }, - "note_url": { - "type": "string", - "format": "uri", - "nullable": true + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + "get": { + "summary": "List pull requests files", + "description": "Lists the files in a specified pull request.\n\n> [!NOTE]\n> Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list-files", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#list-pull-requests-files" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "$ref": "#/components/parameters/repo" }, - "created_at": { - "type": "string", - "format": "date-time" + { + "$ref": "#/components/parameters/pull-number" }, - "fingerprint": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/per-page" }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/diff-entry" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/diff-entry-items" + } + } } - ] - }, - "installation": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/scoped-installation" + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] - } - }, - "required": [ - "app", - "id", - "note", - "note_url", - "scopes", - "token", - "hashed_token", - "token_last_eight", - "fingerprint", - "url", - "created_at", - "updated_at" - ] - }, - "code-of-conduct": { - "title": "Code Of Conduct", - "description": "Code Of Conduct", - "type": "object", - "properties": { - "key": { - "type": "string", - "example": "contributor_covenant" - }, - "name": { - "type": "string", - "example": "Contributor Covenant" + } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/codes_of_conduct/contributor_covenant" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "body": { - "type": "string", - "example": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n" + "500": { + "$ref": "#/components/responses/internal_error" }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "url", - "html_url", - "key", - "name" - ] - }, - "enabled-organizations": { - "type": "string", - "description": "The policy that controls the organizations in the enterprise that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`.", - "enum": [ - "all", - "none", - "selected" - ] - }, - "allowed-actions": { - "type": "string", - "description": "The permissions policy that controls the actions that are allowed to run. Can be one of: `all`, `local_only`, or `selected`.", - "enum": [ - "all", - "local_only", - "selected" - ] - }, - "selected-actions-url": { - "type": "string", - "description": "The API URL to use to get or set the actions that are allowed to run, when `allowed_actions` is set to `selected`." - }, - "actions-enterprise-permissions": { - "type": "object", - "properties": { - "enabled_organizations": { - "$ref": "#/components/schemas/enabled-organizations" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { + "get": { + "summary": "Check if a pull request has been merged", + "description": "Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty.", + "tags": [ + "pulls" + ], + "operationId": "pulls/check-if-merged", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#check-if-a-pull-request-has-been-merged" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "selected_organizations_url": { - "type": "string", - "description": "The API URL to use to get or set the selected organizations that are allowed to run GitHub Actions, when `enabled_organizations` is set to `selected`." + { + "$ref": "#/components/parameters/repo" }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "responses": { + "204": { + "description": "Response if pull request has been merged" }, - "selected_actions_url": { - "$ref": "#/components/schemas/selected-actions-url" + "404": { + "description": "Not Found if pull request has not been merged" } }, - "required": [ - "enabled_organizations" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } }, - "organization-simple": { - "title": "Organization Simple", - "description": "Organization Simple", - "type": "object", - "properties": { - "login": { - "type": "string", - "example": "github" - }, - "id": { - "type": "integer", - "example": 1 + "put": { + "summary": "Merge a pull request", + "description": "Merges a pull request into the base branch.\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\" and \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"", + "tags": [ + "pulls" + ], + "operationId": "pulls/merge", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#merge-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "node_id": { - "type": "string", - "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + { + "$ref": "#/components/parameters/repo" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github" - }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/repos" - }, - "events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/events" - }, - "hooks_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/hooks" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "nullable": true, + "properties": { + "commit_title": { + "type": "string", + "description": "Title for the automatic commit message." + }, + "commit_message": { + "type": "string", + "description": "Extra detail to append to automatic commit message." + }, + "sha": { + "type": "string", + "description": "SHA that pull request head must match to allow merge." + }, + "merge_method": { + "type": "string", + "description": "The merge method to use.", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "if merge was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-merge-result" + }, + "examples": { + "response-if-merge-was-successful": { + "$ref": "#/components/examples/pull-request-merge-result-response-if-merge-was-successful" + } + } + } + } }, - "issues_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/issues" + "405": { + "description": "Method Not Allowed if merge cannot be performed", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + }, + "examples": { + "response-if-merge-cannot-be-performed": { + "value": { + "message": "Pull Request is not mergeable" + } + } + } + } + } }, - "members_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/members{/member}" + "409": { + "description": "Conflict if sha was provided and pull request head did not match", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + }, + "examples": { + "response-if-sha-was-provided-and-pull-request-head-did-not-match": { + "value": { + "message": "Head branch was modified. Review and try the merge again." + } + } + } + } + } }, - "public_members_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/public_members{/member}" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "avatar_url": { - "type": "string", - "example": "https://github.com/images/error/octocat_happy.gif" + "403": { + "$ref": "#/components/responses/forbidden" }, - "description": { - "type": "string", - "example": "A great organization", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "login", - "url", - "id", - "node_id", - "repos_url", - "events_url", - "hooks_url", - "issues_url", - "members_url", - "public_members_url", - "avatar_url", - "description" - ] - }, - "selected-actions": { - "type": "object", - "properties": { - "github_owned_allowed": { - "type": "boolean", - "description": "Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization." + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + "get": { + "summary": "Get all requested reviewers for a pull request", + "description": "Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list-requested-reviewers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "verified_allowed": { - "type": "boolean", - "description": "Whether actions in GitHub Marketplace from verified creators are allowed. Set to `true` to allow all GitHub Marketplace actions by verified creators." + { + "$ref": "#/components/parameters/repo" }, - "patterns_allowed": { - "type": "array", - "description": "Specifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`.\"", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-request" + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-pull-request-review-request" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "review-requests" } }, - "runner-groups-enterprise": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "name": { - "type": "string" - }, - "visibility": { - "type": "string" + "post": { + "summary": "Request reviewers for a pull request", + "description": "Requests reviews for a pull request from a given set of users and/or teams.\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\" and \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"", + "tags": [ + "pulls" + ], + "operationId": "pulls/request-reviewers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/review-requests#request-reviewers-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "default": { - "type": "boolean" + { + "$ref": "#/components/parameters/repo" }, - "selected_organizations_url": { - "type": "string" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "reviewers": { + "type": "array", + "description": "An array of user `login`s that will be requested.", + "items": { + "type": "string" + } + }, + "team_reviewers": { + "type": "array", + "description": "An array of team `slug`s that will be requested.", + "items": { + "type": "string" + } + } + }, + "anyOf": [ + { + "required": [ + "reviewers" + ] + }, + { + "required": [ + "team_reviewers" + ] + } + ] + }, + "examples": { + "default": { + "value": { + "reviewers": [ + "octocat", + "hubot", + "other_user" + ], + "team_reviewers": [ + "justice-league" + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-simple" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-request" + } + } + } + } }, - "runners_url": { - "type": "string" + "422": { + "description": "Unprocessable Entity if user is not a collaborator" }, - "allows_public_repositories": { - "type": "boolean" + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "id", - "name", - "visibility", - "allows_public_repositories", - "default", - "runners_url" - ] + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "review-requests" + } }, - "runner": { - "title": "Self hosted runners", - "description": "A self hosted runner", - "type": "object", - "properties": { - "id": { - "description": "The id of the runner.", - "type": "integer", - "example": 5 - }, - "name": { - "description": "The name of the runner.", - "type": "string", - "example": "iMac" - }, - "os": { - "description": "The Operating System of the runner.", - "type": "string", - "example": "macos" - }, - "status": { - "description": "The status of the runner.", - "type": "string", - "example": "online" + "delete": { + "summary": "Remove requested reviewers from a pull request", + "description": "Removes review requests from a pull request for a given set of users and/or teams.", + "tags": [ + "pulls" + ], + "operationId": "pulls/remove-requested-reviewers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "busy": { - "type": "boolean" + { + "$ref": "#/components/parameters/repo" }, - "labels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "Unique identifier of the label." - }, - "name": { - "type": "string", - "description": "Name of the label." + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "reviewers": { + "type": "array", + "description": "An array of user `login`s that will be removed.", + "items": { + "type": "string" + } + }, + "team_reviewers": { + "type": "array", + "description": "An array of team `slug`s that will be removed.", + "items": { + "type": "string" + } + } }, - "type": { - "type": "string", - "description": "The type of label. Read-only labels are applied automatically when the runner is configured.", - "enum": [ - "read-only", - "custom" - ] + "required": [ + "reviewers" + ] + }, + "examples": { + "default": { + "value": { + "reviewers": [ + "octocat", + "hubot", + "other_user" + ], + "team_reviewers": [ + "justice-league" + ] + } } } } } }, - "required": [ - "id", - "name", - "os", - "status", - "busy", - "labels" - ] - }, - "runner-application": { - "title": "Runner Application", - "description": "Runner Application", - "type": "object", - "properties": { - "os": { - "type": "string" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-simple" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-simple" + } + } + } + } }, - "architecture": { - "type": "string" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "review-requests" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + "get": { + "summary": "List reviews for a pull request", + "description": "Lists all reviews for a specified pull request. The list of reviews returns in chronological order.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list-reviews", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "download_url": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "filename": { - "type": "string" + { + "$ref": "#/components/parameters/pull-number" }, - "temp_download_token": { - "description": "A short lived bearer token used to download the runner, if needed.", - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "sha256_checksum": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "The list of reviews returns in chronological order.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "os", - "architecture", - "download_url", - "filename" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" + } }, - "authentication-token": { - "title": "Authentication Token", - "description": "Authentication Token", - "type": "object", - "properties": { - "token": { - "description": "The token used for authentication", - "type": "string", - "example": "v1.1f699f1069f60xxx" + "post": { + "summary": "Create a review for a pull request", + "description": "Creates a review on a specified pull request.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\" and \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"\n\nPull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see \"[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request).\"\n\n> [!NOTE]\n> To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint.\n\nThe `position` value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/create-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "expires_at": { - "description": "The time this token expires", - "type": "string", - "format": "date-time", - "example": "2016-07-11T22:14:10Z" + { + "$ref": "#/components/parameters/repo" }, - "permissions": { - "type": "object", - "example": { - "issues": "read", - "deployments": "write" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "type": "string", + "description": "The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value." + }, + "body": { + "type": "string", + "description": "**Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review." + }, + "event": { + "type": "string", + "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request) when you are ready.", + "enum": [ + "APPROVE", + "REQUEST_CHANGES", + "COMMENT" + ] + }, + "comments": { + "type": "array", + "description": "Use the following table to specify the location, destination, and contents of the draft review comment.", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The relative path to the file that necessitates a review comment." + }, + "position": { + "type": "integer", + "description": "The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The `position` value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file." + }, + "body": { + "type": "string", + "description": "Text of the review comment." + }, + "line": { + "type": "integer", + "example": 28 + }, + "side": { + "type": "string", + "example": "RIGHT" + }, + "start_line": { + "type": "integer", + "example": 26 + }, + "start_side": { + "type": "string", + "example": "LEFT" + } + }, + "required": [ + "path", + "body" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", + "body": "This is close to perfect! Please address the suggested inline change.", + "event": "REQUEST_CHANGES", + "comments": [ + { + "path": "file.md", + "position": 6, + "body": "Please add more information here, and fix this typo." + } + ] + } + } + } } - }, - "repositories": { - "description": "The repositories this token has access to", - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review" + } + } + } } }, - "single_file": { - "type": "string", - "example": "config.yaml", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed_simple" }, - "repository_selection": { - "description": "Describe whether all repositories have been selected or there's a selection involved", - "type": "string", - "enum": [ - "all", - "selected" - ] + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "token", - "expires_at" - ] - }, - "audit-log-event": { - "type": "object", - "properties": { - "@timestamp": { - "type": "integer", - "description": "The time the audit log event occurred, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time)." - }, - "action": { - "type": "string", - "description": "The name of the action that was performed, for example `user.login` or `repo.create`." - }, - "active": { - "type": "boolean" - }, - "active_was": { - "type": "boolean" + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + "get": { + "summary": "Get a review for a pull request", + "description": "Retrieves a pull request review by its ID.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/get-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "actor": { - "type": "string", - "description": "The actor who performed the action." + { + "$ref": "#/components/parameters/repo" }, - "actor_id": { - "type": "integer", - "description": "The id of the actor who performed the action." + { + "$ref": "#/components/parameters/pull-number" }, - "actor_location": { - "type": "object", - "properties": { - "country_name": { - "type": "string" + { + "$ref": "#/components/parameters/review-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-4" + } + } } } }, - "data": { - "type": "object", - "additionalProperties": true - }, - "org_id": { - "type": "integer" - }, - "blocked_user": { - "type": "string", - "description": "The username of the account being blocked." - }, - "business": { - "type": "string" - }, - "config": { - "type": "array" - }, - "config_was": { - "type": "array" - }, - "content_type": { - "type": "string" - }, - "created_at": { - "type": "integer", - "description": "The time the audit log event was recorded, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time)." - }, - "deploy_key_fingerprint": { - "type": "string" - }, - "_document_id": { - "type": "string", - "description": "A unique identifier for an audit event." - }, - "emoji": { - "type": "string" - }, - "events": { - "type": "array" - }, - "events_were": { - "type": "array" - }, - "explanation": { - "type": "string" - }, - "fingerprint": { - "type": "string" - }, - "hook_id": { - "type": "integer" - }, - "limited_availability": { - "type": "boolean" - }, - "message": { - "type": "string" - }, - "name": { - "type": "string" - }, - "old_user": { - "type": "string" - }, - "openssh_public_key": { - "type": "string" - }, - "org": { - "type": "string" - }, - "previous_visibility": { - "type": "string" - }, - "read_only": { - "type": "boolean" - }, - "repo": { - "type": "string", - "description": "The name of the repository." - }, - "repository": { - "type": "string", - "description": "The name of the repository." - }, - "repository_public": { - "type": "boolean" - }, - "target_login": { - "type": "string" - }, - "team": { - "type": "string" - }, - "transport_protocol": { - "type": "integer", - "description": "The type of protocol (for example, HTTP or SSH) used to transfer Git data." - }, - "transport_protocol_name": { - "type": "string", - "description": "A human readable name for the protocol (for example, HTTP or SSH) used to transfer Git data." - }, - "user": { - "type": "string", - "description": "The user that was affected by the action performed (if available)." - }, - "visibility": { - "type": "string", - "description": "The repository visibility, for example `public` or `private`." + "404": { + "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } }, - "actions-billing-usage": { - "type": "object", - "properties": { - "total_minutes_used": { - "type": "integer", - "description": "The sum of the free and paid GitHub Actions minutes used." + "put": { + "summary": "Update a review for a pull request", + "description": "Updates the contents of a specified review summary comment.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/update-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "total_paid_minutes_used": { - "type": "integer", - "description": "The total paid GitHub Actions minutes used." + { + "$ref": "#/components/parameters/repo" }, - "included_minutes": { - "type": "integer", - "description": "The amount of free GitHub Actions minutes available." + { + "$ref": "#/components/parameters/pull-number" }, - "minutes_used_breakdown": { - "type": "object", - "properties": { - "UBUNTU": { - "type": "integer", - "description": "Total minutes used on Ubuntu runner machines." - }, - "MACOS": { - "type": "integer", - "description": "Total minutes used on macOS runner machines." + { + "$ref": "#/components/parameters/review-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The body text of the pull request review." + } + }, + "required": [ + "body" + ] }, - "WINDOWS": { - "type": "integer", - "description": "Total minutes used on Windows runner machines." + "examples": { + "default": { + "value": { + "body": "This is close to perfect! Please address the suggested inline change. And add more about this." + } + } } } } }, - "required": [ - "total_minutes_used", - "total_paid_minutes_used", - "included_minutes", - "minutes_used_breakdown" - ] - }, - "packages-billing-usage": { - "type": "object", - "properties": { - "total_gigabytes_bandwidth_used": { - "type": "integer", - "description": "Sum of the free and paid storage space (GB) for GitHuub Packages." - }, - "total_paid_gigabytes_bandwidth_used": { - "type": "integer", - "description": "Total paid storage space (GB) for GitHuub Packages." + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-5" + } + } + } + } }, - "included_gigabytes_bandwidth": { - "type": "integer", - "description": "Free storage space (GB) for GitHub Packages." + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, - "required": [ - "total_gigabytes_bandwidth_used", - "total_paid_gigabytes_bandwidth_used", - "included_gigabytes_bandwidth" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" + } }, - "combined-billing-usage": { - "type": "object", - "properties": { - "days_left_in_billing_cycle": { - "type": "integer", - "description": "Numbers of days left in billing cycle." + "delete": { + "summary": "Delete a pending review for a pull request", + "description": "Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/delete-pending-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#delete-a-pending-review-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "estimated_paid_storage_for_month": { - "type": "integer", - "description": "Estimated storage space (GB) used in billing cycle." + { + "$ref": "#/components/parameters/repo" }, - "estimated_storage_for_month": { - "type": "integer", - "description": "Estimated sum of free and paid storage space (GB) used in billing cycle." + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$ref": "#/components/parameters/review-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review" + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "days_left_in_billing_cycle", - "estimated_paid_storage_for_month", - "estimated_storage_for_month" - ] - }, - "actor": { - "title": "Actor", - "description": "Actor", - "type": "object", - "properties": { - "id": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + "get": { + "summary": "List comments for a pull request review", + "description": "Lists comments for a specific pull request review.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/list-comments-for-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "login": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "display_login": { - "type": "string" + { + "$ref": "#/components/parameters/pull-number" }, - "gravatar_id": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/review-id" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/per-page" }, - "avatar_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/page" } - }, - "required": [ - "id", - "login", - "gravatar_id", - "url", - "avatar_url" - ] - }, - "label": { - "title": "Label", - "description": "Color-coded labels help you categorize and filter your issues (just like labels in Gmail).", - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 208045946 - }, - "node_id": { - "type": "string", - "example": "MDU6TGFiZWwyMDgwNDU5NDY=" - }, - "url": { - "description": "URL for the label", - "example": "https://api.github.com/repositories/42/labels/bug", - "type": "string", - "format": "uri" - }, - "name": { - "description": "The name of the label.", - "example": "bug", - "type": "string" - }, - "description": { - "type": "string", - "example": "Something isn't working", - "nullable": true - }, - "color": { - "description": "6-character hex code, without the leading #, identifying the color", - "example": "FFFFFF", - "type": "string" + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/review-comment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/review-comment-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "default": { - "type": "boolean", - "example": true + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "node_id", - "url", - "name", - "description", - "color", - "default" - ] - }, - "milestone": { - "title": "Milestone", - "description": "A collection of related issues and pull requests.", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/milestones/v1.0" - }, - "labels_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels" - }, - "id": { - "type": "integer", - "example": 1002604 - }, - "node_id": { - "type": "string", - "example": "MDk6TWlsZXN0b25lMTAwMjYwNA==" - }, - "number": { - "description": "The number of the milestone.", - "type": "integer", - "example": 42 - }, - "state": { - "description": "The state of the milestone.", - "example": "open", - "type": "string", - "enum": [ - "open", - "closed" - ], - "default": "open" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { + "put": { + "summary": "Dismiss a review for a pull request", + "description": "Dismisses a specified review on a pull request.\n\n> [!NOTE]\n> To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/dismiss-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "title": { - "description": "The title of the milestone.", - "example": "v1.0", - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "description": { - "type": "string", - "example": "Tracking milestone for version 1.0", - "nullable": true + { + "$ref": "#/components/parameters/pull-number" }, - "creator": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/review-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message for the pull request review dismissal" + }, + "event": { + "type": "string", + "example": "\"DISMISS\"", + "enum": [ + "DISMISS" + ] + } + }, + "required": [ + "message" + ] + }, + "examples": { + "default": { + "value": { + "message": "You are dismissed", + "event": "DISMISS" + } + } } - ] - }, - "open_issues": { - "type": "integer", - "example": 4 - }, - "closed_issues": { - "type": "integer", - "example": 8 - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-10T20:09:31Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2014-03-03T18:58:10Z" - }, - "closed_at": { - "type": "string", - "format": "date-time", - "example": "2013-02-12T13:22:01Z", - "nullable": true - }, - "due_on": { - "type": "string", - "format": "date-time", - "example": "2012-10-09T23:39:01Z", - "nullable": true + } } }, - "required": [ - "closed_issues", - "creator", - "description", - "due_on", - "closed_at", - "id", - "node_id", - "labels_url", - "html_url", - "number", - "open_issues", - "state", - "title", - "url", - "created_at", - "updated_at" - ] - }, - "author_association": { - "title": "author_association", - "type": "string", - "example": "OWNER", - "description": "How the author is associated with the repository.", - "enum": [ - "COLLABORATOR", - "CONTRIBUTOR", - "FIRST_TIMER", - "FIRST_TIME_CONTRIBUTOR", - "MANNEQUIN", - "MEMBER", - "NONE", - "OWNER" - ] - }, - "issue-simple": { - "title": "Issue Simple", - "description": "Issue Simple", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDU6SXNzdWUx" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" - }, - "repository_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" - }, - "labels_url": { - "type": "string", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}" - }, - "comments_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" - }, - "events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/issues/1347" - }, - "number": { - "type": "integer", - "example": 1347 - }, - "state": { - "type": "string", - "example": "open" - }, - "title": { - "type": "string", - "example": "Found a bug" - }, - "body": { - "type": "string", - "example": "I'm having a problem with this." - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-3" + } + } } - ] - }, - "labels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" } }, - "assignee": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true - }, - "milestone": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/milestone" - } - ] - }, - "locked": { - "type": "boolean", - "example": true - }, - "active_lock_reason": { - "type": "string", - "example": "too heated", - "nullable": true - }, - "comments": { - "type": "integer", - "example": 0 - }, - "pull_request": { - "type": "object", - "properties": { - "merged_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "diff_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "patch_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri", - "nullable": true - } - }, - "required": [ - "diff_url", - "html_url", - "patch_url", - "url" - ] - }, - "closed_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-22T13:33:48Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-22T13:33:48Z" - }, - "author_association": { - "$ref": "#/components/schemas/author_association" - }, - "body_html": { - "type": "string" - }, - "body_text": { - "type": "string" - }, - "timeline_url": { - "type": "string", - "format": "uri" - }, - "repository": { - "$ref": "#/components/schemas/repository" + "404": { + "$ref": "#/components/responses/not_found" }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" - } - ] + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, - "required": [ - "assignee", - "closed_at", - "comments", - "comments_url", - "events_url", - "html_url", - "id", - "node_id", - "labels", - "labels_url", - "milestone", - "number", - "repository_url", - "state", - "locked", - "title", - "url", - "user", - "author_association", - "created_at", - "updated_at" - ] - }, - "reaction-rollup": { - "title": "Reaction Rollup", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "total_count": { - "type": "integer" - }, - "+1": { - "type": "integer" - }, - "-1": { - "type": "integer" - }, - "laugh": { - "type": "integer" - }, - "confused": { - "type": "integer" - }, - "heart": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { + "post": { + "summary": "Submit a review for a pull request", + "description": "Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see \"[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request).\"\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "pulls" + ], + "operationId": "pulls/submit-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "hooray": { - "type": "integer" + { + "$ref": "#/components/parameters/repo" }, - "eyes": { - "type": "integer" + { + "$ref": "#/components/parameters/pull-number" }, - "rocket": { - "type": "integer" + { + "$ref": "#/components/parameters/review-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The body text of the pull request review" + }, + "event": { + "type": "string", + "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action.", + "enum": [ + "APPROVE", + "REQUEST_CHANGES", + "COMMENT" + ] + } + }, + "required": [ + "event" + ] + }, + "examples": { + "default": { + "value": { + "body": "Here is the body for the review.", + "event": "REQUEST_CHANGES" + } + } + } + } } }, - "required": [ - "url", - "total_count", - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "eyes", - "rocket" - ] - }, - "issue-comment": { - "title": "Issue Comment", - "description": "Comments provide a way for people to collaborate on an issue.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the issue comment", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "description": "URL for the issue comment", - "example": "https://api.github.com/repositories/42/issues/comments/1", - "type": "string", - "format": "uri" - }, - "body": { - "description": "Contents of the issue comment", - "example": "What version of Safari were you using when you observed this bug?", - "type": "string" - }, - "body_text": { - "type": "string" - }, - "body_html": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-4" + } + } } - ] - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" - }, - "issue_url": { - "type": "string", - "format": "uri" + } }, - "author_association": { - "$ref": "#/components/schemas/author_association" + "404": { + "$ref": "#/components/responses/not_found" }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" - } - ] + "422": { + "$ref": "#/components/responses/validation_failed_simple" }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "id", - "node_id", - "html_url", - "issue_url", - "author_association", - "user", - "url", - "created_at", - "updated_at" - ] - }, - "event": { - "title": "Event", - "description": "Event", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" + } + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { + "put": { + "summary": "Update a pull request branch", + "description": "Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch.\nNote: If making a request on behalf of a GitHub App you must also have permissions to write the contents of the head repository.", + "tags": [ + "pulls" + ], + "operationId": "pulls/update-branch", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "actor": { - "$ref": "#/components/schemas/actor" + { + "$ref": "#/components/parameters/repo" }, - "repo": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" + { + "$ref": "#/components/parameters/pull-number" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "nullable": true, + "properties": { + "expected_head_sha": { + "type": "string", + "description": "The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the \"[List commits](https://docs.github.com/rest/commits/commits#list-commits)\" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref." + } + } }, - "url": { - "type": "string", - "format": "uri" + "examples": { + "default": { + "value": { + "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + } } - }, - "required": [ - "id", - "name", - "url" - ] - }, - "org": { - "$ref": "#/components/schemas/actor" - }, - "payload": { - "type": "object", - "properties": { - "action": { - "type": "string" - }, - "issue": { - "$ref": "#/components/schemas/issue-simple" - }, - "comment": { - "$ref": "#/components/schemas/issue-comment" - }, - "pages": { - "type": "array", - "items": { + } + } + }, + "responses": { + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { "type": "object", "properties": { - "page_name": { - "type": "string" - }, - "title": { - "type": "string" - }, - "summary": { - "type": "string", - "nullable": true - }, - "action": { - "type": "string" - }, - "sha": { + "message": { "type": "string" }, - "html_url": { + "url": { "type": "string" } } + }, + "examples": { + "default": { + "value": { + "message": "Updating pull request branch.", + "url": "https://github.com/repos/octocat/Hello-World/pulls/53" + } + } } } } }, - "public": { - "type": "boolean" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "created_at": { - "type": "string", - "format": "date-time", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "id", - "type", - "actor", - "repo", - "payload", - "public", - "created_at" - ] - }, - "link-with-type": { - "title": "Link With Type", - "description": "Hypermedia Link with Type", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "type": { - "type": "string" - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "pulls", + "subcategory": "pulls" + } + } + }, + "/repos/{owner}/{repo}/readme": { + "get": { + "summary": "Get a repository README", + "description": "Gets the preferred README for a repository.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type.\n- **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup).", + "tags": [ + "repos" + ], + "operationId": "repos/get-readme", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/contents#get-a-repository-readme" }, - "required": [ - "href", - "type" - ] - }, - "feed": { - "title": "Feed", - "description": "Feed", - "type": "object", - "properties": { - "timeline_url": { - "type": "string", - "example": "https://github.com/timeline" - }, - "user_url": { - "type": "string", - "example": "https://github.com/{user}" - }, - "current_user_public_url": { - "type": "string", - "example": "https://github.com/octocat" - }, - "current_user_url": { - "type": "string", - "example": "https://github.com/octocat.private?token=abc123" - }, - "current_user_actor_url": { - "type": "string", - "example": "https://github.com/octocat.private.actor?token=abc123" + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "current_user_organization_url": { - "type": "string", - "example": "https://github.com/octocat-org" + { + "$ref": "#/components/parameters/repo" }, - "current_user_organization_urls": { - "type": "array", - "example": [ - "https://github.com/organizations/github/octocat.private.atom?token=abc123" - ], - "items": { - "type": "string", - "format": "uri" + { + "name": "ref", + "description": "The name of the commit/branch/tag. Default: the repository’s default branch.", + "in": "query", + "required": false, + "schema": { + "type": "string" } - }, - "security_advisories_url": { - "type": "string", - "example": "https://github.com/security-advisories" - }, - "_links": { - "type": "object", - "properties": { - "timeline": { - "$ref": "#/components/schemas/link-with-type" - }, - "user": { - "$ref": "#/components/schemas/link-with-type" - }, - "security_advisories": { - "$ref": "#/components/schemas/link-with-type" - }, - "current_user": { - "$ref": "#/components/schemas/link-with-type" - }, - "current_user_public": { - "$ref": "#/components/schemas/link-with-type" - }, - "current_user_actor": { - "$ref": "#/components/schemas/link-with-type" - }, - "current_user_organization": { - "$ref": "#/components/schemas/link-with-type" - }, - "current_user_organizations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/link-with-type" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/content-file" + }, + "examples": { + "default": { + "$ref": "#/components/examples/content-file" + } } } - }, - "required": [ - "timeline", - "user" - ] + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, - "required": [ - "_links", - "timeline_url", - "user_url" - ] - }, - "base-gist": { - "title": "Base Gist", - "description": "Base Gist", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" + } + } + }, + "/repos/{owner}/{repo}/readme/{dir}": { + "get": { + "summary": "Get a repository README for a directory", + "description": "Gets the README from a repository directory.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type.\n- **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup).", + "tags": [ + "repos" + ], + "operationId": "repos/get-readme-in-directory", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/contents#get-a-repository-readme-for-a-directory" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "forks_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/repo" }, - "commits_url": { - "type": "string", - "format": "uri" + { + "name": "dir", + "description": "The alternate path to look for a README file", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true }, - "id": { - "type": "string" + { + "name": "ref", + "description": "The name of the commit/branch/tag. Default: the repository’s default branch.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/content-file" + }, + "examples": { + "default": { + "$ref": "#/components/examples/content-file" + } + } + } + } }, - "node_id": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "git_pull_url": { - "type": "string", - "format": "uri" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" + } + } + }, + "/repos/{owner}/{repo}/releases": { + "get": { + "summary": "List releases", + "description": "This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags).\n\nInformation about published releases are available to everyone. Only users with push access will receive listings for draft releases.", + "tags": [ + "repos" + ], + "operationId": "repos/list-releases", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#list-releases" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "git_push_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/repo" }, - "html_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/per-page" }, - "files": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "type": { - "type": "string" - }, - "language": { - "type": "string" - }, - "raw_url": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/release" + } }, - "size": { - "type": "integer" + "examples": { + "default": { + "$ref": "#/components/examples/release-items" + } } } - } - }, - "public": { - "type": "boolean" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string", - "nullable": true - }, - "comments": { - "type": "integer" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "comments_url": { - "type": "string", - "format": "uri" - }, - "owner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] - }, - "truncated": { - "type": "boolean" - }, - "forks": { - "type": "array", - "items": { } }, - "history": { - "type": "array", - "items": { - } + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "node_id", - "url", - "forks_url", - "commits_url", - "git_pull_url", - "git_push_url", - "html_url", - "comments_url", - "public", - "description", - "comments", - "user", - "files", - "created_at", - "updated_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } }, - "public-user": { - "title": "Public User", - "description": "Public User", - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "avatar_url": { - "type": "string", - "format": "uri" - }, - "gravatar_id": { - "type": "string", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string" - }, - "gists_url": { - "type": "string" - }, - "starred_url": { - "type": "string" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "events_url": { - "type": "string" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string" - }, - "site_admin": { - "type": "boolean" - }, - "name": { - "type": "string", - "nullable": true - }, - "company": { - "type": "string", - "nullable": true - }, - "blog": { - "type": "string", - "nullable": true - }, - "location": { - "type": "string", - "nullable": true - }, - "email": { - "type": "string", - "format": "email", - "nullable": true - }, - "hireable": { - "type": "boolean", - "nullable": true - }, - "bio": { - "type": "string", - "nullable": true - }, - "twitter_username": { - "type": "string", - "nullable": true - }, - "public_repos": { - "type": "integer" - }, - "public_gists": { - "type": "integer" - }, - "followers": { - "type": "integer" - }, - "following": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" + "post": { + "summary": "Create a release", + "description": "Users with push access to the repository can create a release.\n\nThis endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)\" and \"[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api).\"", + "tags": [ + "repos" + ], + "operationId": "repos/create-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#create-a-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "plan": { - "type": "object", - "properties": { - "collaborators": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "space": { - "type": "integer" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_name": { + "type": "string", + "description": "The name of the tag." + }, + "target_commitish": { + "type": "string", + "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch." + }, + "name": { + "type": "string", + "description": "The name of the release." + }, + "body": { + "type": "string", + "description": "Text describing the contents of the tag." + }, + "draft": { + "type": "boolean", + "description": "`true` to create a draft (unpublished) release, `false` to create a published one.", + "default": false + }, + "prerelease": { + "type": "boolean", + "description": "`true` to identify the release as a prerelease. `false` to identify the release as a full release.", + "default": false + }, + "discussion_category_name": { + "type": "string", + "description": "If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see \"[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository).\"" + }, + "generate_release_notes": { + "type": "boolean", + "description": "Whether to automatically generate the name and body for this release. If `name` is specified, the specified name will be used; otherwise, a name will be automatically generated. If `body` is specified, the body will be pre-pended to the automatically generated notes.", + "default": false + }, + "make_latest": { + "type": "string", + "description": "Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version.", + "enum": [ + "true", + "false", + "legacy" + ], + "default": "true" + } + }, + "required": [ + "tag_name" + ] }, - "private_repos": { - "type": "integer" + "examples": { + "default": { + "value": { + "tag_name": "v1.0.0", + "target_commitish": "master", + "name": "v1.0.0", + "body": "Description of the release", + "draft": false, + "prerelease": false, + "generate_release_notes": false + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release" + } + } } }, - "required": [ - "collaborators", - "name", - "space", - "private_repos" - ] - }, - "suspended_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "private_gists": { - "type": "integer", - "example": 1 - }, - "total_private_repos": { - "type": "integer", - "example": 2 - }, - "owned_private_repos": { - "type": "integer", - "example": 2 + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/releases/1", + "schema": { + "type": "string" + } + } + } }, - "disk_usage": { - "type": "integer", - "example": 1 + "404": { + "description": "Not Found if the discussion category name is invalid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } }, - "collaborators": { - "type": "integer", - "example": 3 + "422": { + "$ref": "#/components/responses/validation_failed" } }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url", - "bio", - "blog", - "company", - "email", - "followers", - "following", - "hireable", - "location", - "name", - "public_gists", - "public_repos", - "created_at", - "updated_at" + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } + } + }, + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + "get": { + "summary": "Get a release asset", + "description": "To download the asset's binary content:\n\n- If within a browser, fetch the location specified in the `browser_download_url` key provided in the response.\n- Alternatively, set the `Accept` header of the request to \n [`application/octet-stream`](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). \n The API will either redirect the client to the location, or stream it directly if possible.\n API clients should handle both a `200` or `302` response.", + "tags": [ + "repos" ], - "additionalProperties": false - }, - "gist-history": { - "title": "Gist History", - "description": "Gist History", - "type": "object", - "properties": { - "user": { - "$ref": "#/components/schemas/simple-user" - }, - "version": { - "type": "string" + "operationId": "repos/get-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/assets#get-a-release-asset" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "committed_at": { - "type": "string", - "format": "date-time" + { + "$ref": "#/components/parameters/repo" }, - "change_status": { - "type": "object", - "properties": { - "total": { - "type": "integer" - }, - "additions": { - "type": "integer" - }, - "deletions": { - "type": "integer" + { + "$ref": "#/components/parameters/asset-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release-asset" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release-asset" + } + } } } }, - "url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" + }, + "302": { + "$ref": "#/components/responses/found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" } }, - "gist-simple": { - "title": "Gist Simple", - "description": "Gist Simple", - "type": "object", - "properties": { - "forks": { - "deprecated": true, - "nullable": true, - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "user": { - "$ref": "#/components/schemas/public-user" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - } - } - } + "patch": { + "summary": "Update a release asset", + "description": "Users with push access to the repository can edit a release asset.", + "tags": [ + "repos" + ], + "operationId": "repos/update-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/assets#update-a-release-asset" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "history": { - "deprecated": true, - "nullable": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/gist-history" - } + { + "$ref": "#/components/parameters/repo" }, - "fork_of": { - "nullable": true, - "title": "Gist", - "description": "Gist", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "forks_url": { - "type": "string", - "format": "uri" - }, - "commits_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "git_pull_url": { - "type": "string", - "format": "uri" - }, - "git_push_url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "files": { + { + "$ref": "#/components/parameters/asset-id" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "type": { - "type": "string" - }, - "language": { - "type": "string" - }, - "raw_url": { - "type": "string" - }, - "size": { - "type": "integer" - } + "properties": { + "name": { + "type": "string", + "description": "The file name of the asset." + }, + "label": { + "type": "string", + "description": "An alternate short description of the asset. Used in place of the filename." + }, + "state": { + "type": "string", + "example": "\"uploaded\"" } } }, - "public": { - "type": "boolean" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string", - "nullable": true - }, - "comments": { - "type": "integer" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "comments_url": { - "type": "string", - "format": "uri" - }, - "owner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "examples": { + "default": { + "value": { + "name": "foo-1.0.0-osx.zip", + "label": "Mac binary" } - ] - }, - "truncated": { - "type": "boolean" - }, - "forks": { - "type": "array", - "items": { - } - }, - "history": { - "type": "array", - "items": { } } - }, - "required": [ - "id", - "node_id", - "url", - "forks_url", - "commits_url", - "git_pull_url", - "git_push_url", - "html_url", - "comments_url", - "public", - "description", - "comments", - "user", - "files", - "created_at", - "updated_at" - ] - }, - "url": { - "type": "string" - }, - "forks_url": { - "type": "string" - }, - "commits_url": { - "type": "string" - }, - "id": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "git_pull_url": { - "type": "string" - }, - "git_push_url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "files": { - "type": "object", - "additionalProperties": { - "nullable": true, - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "type": { - "type": "string" - }, - "language": { - "type": "string" - }, - "raw_url": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "truncated": { - "type": "boolean" + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release-asset" }, - "content": { - "type": "string" + "examples": { + "default": { + "$ref": "#/components/examples/release-asset" + } } } } - }, - "public": { - "type": "boolean" - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "comments": { - "type": "integer" - }, - "user": { - "type": "string", - "nullable": true - }, - "comments_url": { - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/simple-user" - }, - "truncated": { - "type": "boolean" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" } }, - "gist-comment": { - "title": "Gist Comment", - "description": "A comment made to a gist.", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDExOkdpc3RDb21tZW50MQ==" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1" - }, - "body": { - "description": "The comment text.", - "type": "string", - "maxLength": 65535, - "example": "Body of the attachment" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-18T23:23:56Z" + "delete": { + "summary": "Delete a release asset", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/delete-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/assets#delete-a-release-asset" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-18T23:23:56Z" + { + "$ref": "#/components/parameters/repo" }, - "author_association": { - "$ref": "#/components/schemas/author_association" + { + "$ref": "#/components/parameters/asset-id" + } + ], + "responses": { + "204": { + "description": "Response" } }, - "required": [ - "url", - "id", - "node_id", - "user", - "body", - "author_association", - "created_at", - "updated_at" - ] - }, - "gist-commit": { - "title": "Gist Commit", - "description": "Gist Commit", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f" - }, - "version": { - "type": "string", - "example": "57a7f021a713b1c5a6a199b54cc514735d2d462f" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" + } + } + }, + "/repos/{owner}/{repo}/releases/generate-notes": { + "post": { + "summary": "Generate release notes content for a release", + "description": "Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release.", + "tags": [ + "repos" + ], + "operationId": "repos/generate-release-notes", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#generate-release-notes-content-for-a-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "change_status": { - "type": "object", - "properties": { - "total": { - "type": "integer" - }, - "additions": { - "type": "integer" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_name": { + "type": "string", + "description": "The tag name for the release. This can be an existing tag or a new one." + }, + "target_commitish": { + "type": "string", + "description": "Specifies the commitish value that will be the target for the release's tag. Required if the supplied tag_name does not reference an existing tag. Ignored if the tag_name already exists." + }, + "previous_tag_name": { + "type": "string", + "description": "The name of the previous tag to use as the starting point for the release notes. Use to manually specify the range for the set of changes considered as part this release." + }, + "configuration_file_path": { + "type": "string", + "description": "Specifies a path to a file in the repository containing configuration settings used for generating the release notes. If unspecified, the configuration file located in the repository at '.github/release.yml' or '.github/release.yaml' will be used. If that is not present, the default configuration will be used." + } + }, + "required": [ + "tag_name" + ] }, - "deletions": { - "type": "integer" + "examples": { + "default": { + "value": { + "tag_name": "v1.0.0", + "target_commitish": "main", + "previous_tag_name": "v0.9.2", + "configuration_file_path": ".github/custom_release_config.yml" + } + } } } - }, - "committed_at": { - "type": "string", - "format": "date-time", - "example": "2010-04-14T02:15:15Z" } }, - "required": [ - "url", - "user", - "version", - "committed_at", - "change_status" - ] - }, - "gitignore-template": { - "title": "Gitignore Template", - "description": "Gitignore Template", - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "C" + "responses": { + "200": { + "description": "Name and body of generated release notes", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release-notes-content" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release-notes-content" + } + } + } + } }, - "source": { - "type": "string", - "example": "# Object files\n*.o\n\n# Libraries\n*.lib\n*.a\n\n# Shared objects (inc. Windows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app\n" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "name", - "source" - ] - }, - "issue": { - "title": "Issue", - "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "description": "URL for the issue", - "example": "https://api.github.com/repositories/42/issues/1", - "type": "string", - "format": "uri" - }, - "repository_url": { - "type": "string", - "format": "uri" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } + } + }, + "/repos/{owner}/{repo}/releases/latest": { + "get": { + "summary": "Get the latest release", + "description": "View the latest published full release for the repository.\n\nThe latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published.", + "tags": [ + "repos" + ], + "operationId": "repos/get-latest-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#get-the-latest-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "labels_url": { - "type": "string" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } + } + }, + "/repos/{owner}/{repo}/releases/tags/{tag}": { + "get": { + "summary": "Get a release by tag name", + "description": "Get a published release with the specified tag.", + "tags": [ + "repos" + ], + "operationId": "repos/get-release-by-tag", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "comments_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/repo" }, - "events_url": { - "type": "string", - "format": "uri" + { + "name": "tag", + "description": "tag parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release" + } + } + } + } }, - "html_url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } + } + }, + "/repos/{owner}/{repo}/releases/{release_id}": { + "get": { + "summary": "Get a release", + "description": "Gets a public release with the specified release ID.\n\n> [!NOTE]\n> This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource. For more information, see \"[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia).\"", + "tags": [ + "repos" + ], + "operationId": "repos/get-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#get-a-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "number": { - "description": "Number uniquely identifying the issue within its repository", - "example": 42, - "type": "integer" + { + "$ref": "#/components/parameters/repo" }, - "state": { - "description": "State of the issue; either 'open' or 'closed'", - "example": "open", - "type": "string" + { + "$ref": "#/components/parameters/release-id" + } + ], + "responses": { + "200": { + "description": "**Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource. For more information, see \"[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia).\"", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release" + } + } + } + } }, - "title": { - "description": "Title of the issue", - "example": "Widget creation fails in Safari on OS X 10.8", - "type": "string" + "401": { + "description": "Unauthorized" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } + }, + "patch": { + "summary": "Update a release", + "description": "Users with push access to the repository can edit a release.", + "tags": [ + "repos" + ], + "operationId": "repos/update-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#update-a-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "body": { - "description": "Contents of the issue", - "example": "It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug?", - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/release-id" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_name": { + "type": "string", + "description": "The name of the tag." + }, + "target_commitish": { + "type": "string", + "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch." + }, + "name": { + "type": "string", + "description": "The name of the release." + }, + "body": { + "type": "string", + "description": "Text describing the contents of the tag." + }, + "draft": { + "type": "boolean", + "description": "`true` makes the release a draft, and `false` publishes the release." + }, + "prerelease": { + "type": "boolean", + "description": "`true` to identify the release as a prerelease, `false` to identify the release as a full release." + }, + "make_latest": { + "type": "string", + "description": "Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version.", + "enum": [ + "true", + "false", + "legacy" + ], + "default": true + }, + "discussion_category_name": { + "type": "string", + "description": "If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored. For more information, see \"[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository).\"" + } + } + }, + "examples": { + "default": { + "value": { + "tag_name": "v1.0.0", + "target_commitish": "master", + "name": "v1.0.0", + "body": "Description of the release", + "draft": false, + "prerelease": false + } + } } - ] - }, - "labels": { - "description": "Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository", - "example": [ - "bug", - "registration" - ], - "type": "array", - "items": { - "oneOf": [ - { - "type": "string" + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release" }, - { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "color": { - "type": "string", - "nullable": true - }, - "default": { - "type": "boolean" - } + "examples": { + "default": { + "$ref": "#/components/examples/release" } } - ] + } } }, - "assignee": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "404": { + "description": "Not Found if the discussion category name is invalid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } - ] + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } + }, + "delete": { + "summary": "Delete a release", + "description": "Users with push access to the repository can delete a release.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/releases#delete-a-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "milestone": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/milestone" - } - ] + { + "$ref": "#/components/parameters/release-id" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" + } + } + }, + "/repos/{owner}/{repo}/releases/{release_id}/assets": { + "get": { + "summary": "List release assets", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/list-release-assets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/assets#list-release-assets" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "locked": { - "type": "boolean" + { + "$ref": "#/components/parameters/repo" }, - "active_lock_reason": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/release-id" }, - "comments": { - "type": "integer" + { + "$ref": "#/components/parameters/per-page" }, - "pull_request": { - "type": "object", - "properties": { - "merged_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "diff_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "patch_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/release-asset" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/release-asset-items" + } + } } }, - "required": [ - "diff_url", - "html_url", - "patch_url", - "url" - ] - }, - "closed_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "closed_by": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "body_html": { - "type": "string" - }, - "body_text": { - "type": "string" - }, - "timeline_url": { - "type": "string", - "format": "uri" - }, - "repository": { - "$ref": "#/components/schemas/repository" - }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] - }, - "author_association": { - "$ref": "#/components/schemas/author_association" - }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + } } }, - "required": [ - "assignee", - "closed_at", - "comments", - "comments_url", - "events_url", - "html_url", - "id", - "node_id", - "labels", - "labels_url", - "milestone", - "number", - "repository_url", - "state", - "locked", - "title", - "url", - "user", - "author_association", - "created_at", - "updated_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" + } }, - "license": { - "title": "License", - "description": "License", - "type": "object", - "properties": { - "key": { - "type": "string", - "example": "mit" - }, - "name": { - "type": "string", - "example": "MIT License" - }, - "spdx_id": { - "type": "string", - "example": "MIT", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/licenses/mit", - "nullable": true - }, - "node_id": { - "type": "string", - "example": "MDc6TGljZW5zZW1pdA==" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "http://choosealicense.com/licenses/mit/" + "post": { + "summary": "Upload a release asset", + "description": "This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in\nthe response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset.\n\nYou need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint.\n\nMost libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: \n\n`application/zip`\n\nGitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example,\nyou'll still need to pass your authentication to be able to upload an asset.\n\nWhen an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted.\n\n**Notes:**\n* GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The \"[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)\"\nendpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api).\n* To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). \n* If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset.", + "tags": [ + "repos" + ], + "operationId": "repos/upload-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/releases/assets#upload-a-release-asset" + }, + "servers": [ + { + "url": "https://uploads.github.com", + "description": "The URL origin (protocol + host name + port) is included in `upload_url` returned in the response of the \"Create a release\" endpoint" + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "description": { - "type": "string", - "example": "A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty." + { + "$ref": "#/components/parameters/repo" }, - "implementation": { - "type": "string", - "example": "Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders." + { + "$ref": "#/components/parameters/release-id" }, - "permissions": { - "type": "array", - "example": [ - "commercial-use", - "modifications", - "distribution", - "sublicense", - "private-use" - ], - "items": { + { + "name": "name", + "in": "query", + "required": true, + "schema": { "type": "string" } }, - "conditions": { - "type": "array", - "example": [ - "include-copyright" - ], - "items": { + { + "name": "label", + "in": "query", + "schema": { "type": "string" } - }, - "limitations": { - "type": "array", - "example": [ - "no-liability" - ], - "items": { - "type": "string" + } + ], + "requestBody": { + "required": false, + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary", + "description": "The raw file data" + }, + "examples": { + "default": { + "value": "@example.zip" + } + } } - }, - "body": { - "type": "string", - "example": "\n\nThe MIT License (MIT)\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n" - }, - "featured": { - "type": "boolean", - "example": true } }, - "required": [ - "key", - "name", - "url", - "spdx_id", - "node_id", - "html_url", - "description", - "implementation", - "permissions", - "conditions", - "limitations", - "body", - "featured" - ] - }, - "marketplace-listing-plan": { - "title": "Marketplace Listing Plan", - "description": "Marketplace Listing Plan", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/marketplace_listing/plans/1313" - }, - "accounts_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/marketplace_listing/plans/1313/accounts" - }, - "id": { - "type": "integer", - "example": 1313 - }, - "number": { - "type": "integer", - "example": 3 - }, - "name": { - "type": "string", - "example": "Pro" - }, - "description": { - "type": "string", - "example": "A professional-grade CI solution" - }, - "monthly_price_in_cents": { - "type": "integer", - "example": 1099 + "responses": { + "201": { + "description": "Response for successful upload", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release-asset" + }, + "examples": { + "response-for-successful-upload": { + "$ref": "#/components/examples/release-asset-response-for-successful-upload" + } + } + } + } }, - "yearly_price_in_cents": { - "type": "integer", - "example": 11870 + "422": { + "description": "Response if you upload an asset with the same filename as another uploaded asset" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" + } + } + }, + "/repos/{owner}/{repo}/releases/{release_id}/reactions": { + "get": { + "summary": "List reactions for a release", + "description": "List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release).", + "tags": [ + "reactions" + ], + "operationId": "reactions/list-for-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "price_model": { - "type": "string", - "example": "flat-rate" + { + "$ref": "#/components/parameters/repo" }, - "has_free_trial": { - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/release-id" }, - "unit_name": { - "type": "string", - "nullable": true + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a release.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "laugh", + "heart", + "hooray", + "rocket", + "eyes" + ] + } }, - "state": { - "type": "string", - "example": "published" + { + "$ref": "#/components/parameters/per-page" }, - "bullets": { - "type": "array", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/reaction" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction-items" + } + } + } }, - "example": [ - "Up to 25 private repositories", - "11 concurrent builds" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "url", - "accounts_url", - "id", - "number", - "name", - "description", - "has_free_trial", - "price_model", - "unit_name", - "monthly_price_in_cents", - "state", - "yearly_price_in_cents", - "bullets" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" + } }, - "marketplace-purchase": { - "title": "Marketplace Purchase", - "description": "Marketplace Purchase", - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "type": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" - }, - "organization_billing_email": { - "type": "string" - }, - "email": { - "type": "string", - "nullable": true + "post": { + "summary": "Create reaction for a release", + "description": "Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release.", + "tags": [ + "reactions" + ], + "operationId": "reactions/create-for-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "marketplace_pending_change": { - "type": "object", - "properties": { - "is_installed": { - "type": "boolean" - }, - "effective_date": { - "type": "string" - }, - "unit_count": { - "type": "integer", - "nullable": true - }, - "id": { - "type": "integer" - }, - "plan": { - "$ref": "#/components/schemas/marketplace-listing-plan" - } - }, - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "marketplace_purchase": { - "type": "object", - "properties": { - "billing_cycle": { - "type": "string" - }, - "next_billing_date": { - "type": "string", - "nullable": true - }, - "is_installed": { - "type": "boolean" - }, - "unit_count": { - "type": "integer", - "nullable": true - }, - "on_free_trial": { - "type": "boolean" - }, - "free_trial_ends_on": { - "type": "string", - "nullable": true - }, - "updated_at": { - "type": "string" + { + "$ref": "#/components/parameters/release-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the release.", + "enum": [ + "+1", + "laugh", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": [ + "content" + ] }, - "plan": { - "$ref": "#/components/schemas/marketplace-listing-plan" + "examples": { + "default": { + "value": { + "content": "heart" + } + } } } } }, - "required": [ - "url", - "id", - "type", - "login", - "marketplace_purchase" - ] - }, - "api-overview": { - "title": "Api Overview", - "description": "Api Overview", - "type": "object", - "properties": { - "verifiable_password_authentication": { - "type": "boolean", - "example": true + "responses": { + "200": { + "description": "Reaction exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } + } + } }, - "ssh_key_fingerprints": { - "type": "object", - "properties": { - "SHA256_RSA": { - "type": "string" - }, - "SHA256_DSA": { - "type": "string" + "201": { + "description": "Reaction created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } } } }, - "hooks": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "127.0.0.1/32" - ] + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" + } + } + }, + "/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete a release reaction", + "description": "> [!NOTE]\n> You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`.\n\nDelete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release).", + "tags": [ + "reactions" + ], + "operationId": "reactions/delete-for-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reactions/reactions#delete-a-release-reaction" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "web": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "127.0.0.1/32" - ] + { + "$ref": "#/components/parameters/repo" }, - "api": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "127.0.0.1/32" - ] - }, - "git": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "127.0.0.1/32" - ] - }, - "packages": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "13.65.0.0/16", - "157.55.204.33/32", - "2a01:111:f403:f90c::/62" - ] - }, - "pages": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "192.30.252.153/32", - "192.30.252.154/32" - ] - }, - "importer": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "54.158.161.132", - "54.226.70.38" - ] - }, - "actions": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "13.64.0.0/16", - "13.65.0.0/16" - ] + { + "$ref": "#/components/parameters/release-id" }, - "dependabot": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "192.168.7.15/32", - "192.168.7.16/32" - ] + { + "$ref": "#/components/parameters/reaction-id" + } + ], + "responses": { + "204": { + "description": "Response" } }, - "required": [ - "verifiable_password_authentication" - ] - }, - "minimal-repository": { - "title": "Minimal Repository", - "description": "Minimal Repository", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1296269 - }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" + } + } + }, + "/repos/{owner}/{repo}/rules/branches/{branch}": { + "get": { + "summary": "Get rules for a branch", + "description": "Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply\nto a branch with that name will be returned. All active rules that apply will be returned, regardless of the level\nat which they are configured (e.g. repository or organization). Rules in rulesets with \"evaluate\" or \"disabled\"\nenforcement statuses are not returned.", + "tags": [ + "repos" + ], + "operationId": "repos/get-branch-rules", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#get-rules-for-a-branch" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "name": { - "type": "string", - "example": "Hello-World" + { + "$ref": "#/components/parameters/repo" }, - "full_name": { - "type": "string", - "example": "octocat/Hello-World" + { + "$ref": "#/components/parameters/branch" }, - "owner": { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/per-page" }, - "private": { - "type": "boolean" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-rule-detailed" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-rule-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + } + } + }, + "/repos/{owner}/{repo}/rulesets": { + "get": { + "summary": "Get all repository rulesets", + "description": "Get all the rulesets for a repository.", + "tags": [ + "repos" + ], + "operationId": "repos/get-repo-rulesets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#get-all-repository-rulesets" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World" + { + "$ref": "#/components/parameters/repo" }, - "description": { - "type": "string", - "example": "This your first repo!", - "nullable": true + { + "$ref": "#/components/parameters/per-page" }, - "fork": { - "type": "boolean" + { + "$ref": "#/components/parameters/page" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + { + "name": "includes_parents", + "description": "Include rulesets configured at higher levels that apply to this repository", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true + } }, - "archive_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + { + "$ref": "#/components/parameters/ruleset-targets" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-ruleset" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-ruleset-items" + } + } + } + } }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + "404": { + "$ref": "#/components/responses/not_found" }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + "500": { + "$ref": "#/components/responses/internal_error" + } + } + }, + "post": { + "summary": "Create a repository ruleset", + "description": "Create a ruleset for a repository.", + "tags": [ + "repos" + ], + "operationId": "repos/create-repo-ruleset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#create-a-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "branches_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "description": "Request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the ruleset." + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag", + "push" + ], + "default": "branch" + }, + "enforcement": { + "$ref": "#/components/schemas/repository-rule-enforcement" + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + } + }, + "conditions": { + "$ref": "#/components/schemas/repository-ruleset-conditions" + }, + "rules": { + "type": "array", + "description": "An array of rules within the ruleset.", + "items": { + "$ref": "#/components/schemas/repository-rule" + } + } + }, + "required": [ + "name", + "enforcement" + ] + }, + "examples": { + "default": { + "value": { + "name": "super cool ruleset", + "target": "branch", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-ruleset" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-ruleset" + } + } + } + } }, - "collaborators_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + "404": { + "$ref": "#/components/responses/not_found" }, - "comments_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + "500": { + "$ref": "#/components/responses/internal_error" + } + } + } + }, + "/repos/{owner}/{repo}/rulesets/rule-suites": { + "get": { + "summary": "List repository rule suites", + "description": "Lists suites of rule evaluations at the repository level.\nFor more information, see \"[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets).\"", + "tags": [ + "repos" + ], + "operationId": "repos/get-repo-rule-suites", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + { + "$ref": "#/components/parameters/repo" }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + { + "$ref": "#/components/parameters/ref-in-query" }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + { + "$ref": "#/components/parameters/time-period" }, - "contributors_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + { + "$ref": "#/components/parameters/actor-name-in-query" }, - "deployments_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + { + "$ref": "#/components/parameters/rule-suite-result" }, - "downloads_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + { + "$ref": "#/components/parameters/per-page" }, - "events_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rule-suites" + }, + "examples": { + "default": { + "$ref": "#/components/examples/rule-suite-items" + } + } + } + } }, - "forks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + "404": { + "$ref": "#/components/responses/not_found" }, - "git_commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rule-suites" + } + } + }, + "/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": { + "get": { + "summary": "Get a repository rule suite", + "description": "Gets information about a suite of rule evaluations from within a repository.\nFor more information, see \"[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets).\"", + "tags": [ + "repos" + ], + "operationId": "repos/get-repo-rule-suite", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rule-suites#get-a-repository-rule-suite" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + { + "$ref": "#/components/parameters/repo" }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + { + "$ref": "#/components/parameters/rule-suite-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rule-suite" + }, + "examples": { + "default": { + "$ref": "#/components/examples/rule-suite" + } + } + } + } }, - "git_url": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rule-suites" + } + } + }, + "/repos/{owner}/{repo}/rulesets/{ruleset_id}": { + "get": { + "summary": "Get a repository ruleset", + "description": "Get a ruleset for a repository.\n\n**Note:** To prevent leaking sensitive information, the `bypass_actors` property is only returned if the user\nmaking the API request has write access to the ruleset.", + "tags": [ + "repos" + ], + "operationId": "repos/get-repo-ruleset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#get-a-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + { + "$ref": "#/components/parameters/repo" }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } }, - "keys_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + { + "name": "includes_parents", + "description": "Include rulesets configured at higher levels that apply to this repository", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-ruleset" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-ruleset" + } + } + } + } }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + "404": { + "$ref": "#/components/responses/not_found" }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + "500": { + "$ref": "#/components/responses/internal_error" + } + } + }, + "put": { + "summary": "Update a repository ruleset", + "description": "Update a ruleset for a repository.", + "tags": [ + "repos" + ], + "operationId": "repos/update-repo-ruleset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#update-a-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "merges_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" + { + "$ref": "#/components/parameters/repo" }, - "milestones_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "description": "Request body", + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the ruleset." + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag", + "push" + ] + }, + "enforcement": { + "$ref": "#/components/schemas/repository-rule-enforcement" + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + } + }, + "conditions": { + "$ref": "#/components/schemas/repository-ruleset-conditions" + }, + "rules": { + "description": "An array of rules within the ruleset.", + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-rule" + } + } + } + }, + "examples": { + "default": { + "value": { + "name": "super cool ruleset", + "target": "branch", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-ruleset" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-ruleset" + } + } + } + } }, - "notifications_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + "404": { + "$ref": "#/components/responses/not_found" }, - "pulls_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + "500": { + "$ref": "#/components/responses/internal_error" + } + } + }, + "delete": { + "summary": "Delete a repository ruleset", + "description": "Delete a ruleset for a repository.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-repo-ruleset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + { + "$ref": "#/components/parameters/repo" }, - "ssh_url": { - "type": "string" + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Response" }, - "stargazers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + "404": { + "$ref": "#/components/responses/not_found" }, - "statuses_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + "500": { + "$ref": "#/components/responses/internal_error" + } + } + } + }, + "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history": { + "get": { + "summary": "Get repository ruleset history", + "description": "Get the history of a repository ruleset.", + "tags": [ + "repos" + ], + "operationId": "repos/get-repo-ruleset-history", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#get-repository-ruleset-history" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + { + "$ref": "#/components/parameters/repo" }, - "subscription_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + { + "$ref": "#/components/parameters/per-page" }, - "tags_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + { + "$ref": "#/components/parameters/page" }, - "teams_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ruleset-version" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/ruleset-history" + } + } + } + } }, - "trees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + "404": { + "$ref": "#/components/responses/not_found" }, - "clone_url": { - "type": "string" + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + } + } + }, + "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}": { + "get": { + "summary": "Get repository ruleset version", + "description": "Get a version of a repository ruleset.", + "tags": [ + "repos" + ], + "operationId": "repos/get-repo-ruleset-version", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/rules#get-repository-ruleset-version" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "mirror_url": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "hooks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } }, - "svn_url": { - "type": "string" + { + "name": "version_id", + "description": "The ID of the version", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ruleset-version-with-state" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-ruleset-version-with-state" + } + } + } + } }, - "homepage": { - "type": "string", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "language": { - "type": "string", - "nullable": true + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + } + } + }, + "/repos/{owner}/{repo}/secret-scanning/alerts": { + "get": { + "summary": "List secret scanning alerts for a repository", + "description": "Lists secret scanning alerts for an eligible repository, from newest to oldest.\n\nThe authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "tags": [ + "secret-scanning" + ], + "operationId": "secret-scanning/list-alerts-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "forks_count": { - "type": "integer" + { + "$ref": "#/components/parameters/repo" }, - "stargazers_count": { - "type": "integer" + { + "$ref": "#/components/parameters/secret-scanning-alert-state" }, - "watchers_count": { - "type": "integer" + { + "$ref": "#/components/parameters/secret-scanning-alert-secret-type" }, - "size": { - "type": "integer" + { + "$ref": "#/components/parameters/secret-scanning-alert-resolution" }, - "default_branch": { - "type": "string" + { + "$ref": "#/components/parameters/secret-scanning-alert-assignee" }, - "open_issues_count": { - "type": "integer" + { + "$ref": "#/components/parameters/secret-scanning-alert-sort" }, - "is_template": { - "type": "boolean" + { + "$ref": "#/components/parameters/direction" }, - "topics": { - "type": "array", - "items": { - "type": "string" - } + { + "$ref": "#/components/parameters/page" }, - "has_issues": { - "type": "boolean" + { + "$ref": "#/components/parameters/per-page" }, - "has_projects": { - "type": "boolean" + { + "$ref": "#/components/parameters/secret-scanning-pagination-before-org-repo" }, - "has_wiki": { - "type": "boolean" + { + "$ref": "#/components/parameters/secret-scanning-pagination-after-org-repo" }, - "has_pages": { - "type": "boolean" + { + "$ref": "#/components/parameters/secret-scanning-alert-validity" }, - "has_downloads": { - "type": "boolean" + { + "$ref": "#/components/parameters/secret-scanning-alert-publicly-leaked" }, - "archived": { - "type": "boolean" + { + "$ref": "#/components/parameters/secret-scanning-alert-multi-repo" }, - "disabled": { - "type": "boolean" + { + "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-alert" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-list" + } + } + } + } }, - "visibility": { - "type": "string" + "404": { + "description": "Repository is public or secret scanning is disabled for the repository" }, - "pushed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "nullable": true + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "secret-scanning" + } + } + }, + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + "get": { + "summary": "Get a secret scanning alert", + "description": "Gets a single secret scanning alert detected in an eligible repository.\n\nThe authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "tags": [ + "secret-scanning" + ], + "operationId": "secret-scanning/get-alert", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:14:43Z", - "nullable": true + { + "$ref": "#/components/parameters/alert-number" }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "push": { - "type": "boolean" - }, - "pull": { - "type": "boolean" - }, - "maintain": { - "type": "boolean" - }, - "triage": { - "type": "boolean" + { + "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-open" + } + } } } }, - "template_repository": { - "nullable": true, - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/repository" - } - ] - }, - "temp_clone_token": { - "type": "string" - }, - "delete_branch_on_merge": { - "type": "boolean" + "304": { + "$ref": "#/components/responses/not_modified" }, - "subscribers_count": { - "type": "integer" + "404": { + "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" }, - "network_count": { - "type": "integer" + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "secret-scanning" + } + }, + "patch": { + "summary": "Update a secret scanning alert", + "description": "Updates the status of a secret scanning alert in an eligible repository.\n\nYou can also use this endpoint to assign or unassign an alert to a user who has write access to the repository.\n\nThe authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "operationId": "secret-scanning/update-alert", + "tags": [ + "secret-scanning" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#update-a-secret-scanning-alert" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "code_of_conduct": { - "$ref": "#/components/schemas/code-of-conduct" + { + "$ref": "#/components/parameters/repo" }, - "license": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "spdx_id": { - "type": "string" - }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/alert-number" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "$ref": "#/components/schemas/secret-scanning-alert-state" + }, + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + }, + "resolution_comment": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution-comment" + }, + "assignee": { + "$ref": "#/components/schemas/secret-scanning-alert-assignee" + } + }, + "anyOf": [ + { + "required": [ + "state" + ] + }, + { + "required": [ + "assignee" + ] + } + ] }, - "node_id": { - "type": "string" + "examples": { + "default": { + "value": { + "state": "resolved", + "resolution": "false_positive" + } + }, + "assign": { + "summary": "Assign alert to a user", + "value": { + "assignee": "octocat" + } + }, + "unassign": { + "summary": "Unassign alert", + "value": { + "assignee": null + } + } } - }, - "nullable": true - }, - "forks": { - "type": "integer", - "example": 0 - }, - "open_issues": { - "type": "integer", - "example": 0 - }, - "watchers": { - "type": "integer", - "example": 0 + } } }, - "required": [ - "archive_url", - "assignees_url", - "blobs_url", - "branches_url", - "collaborators_url", - "comments_url", - "commits_url", - "compare_url", - "contents_url", - "contributors_url", - "deployments_url", - "description", - "downloads_url", - "events_url", - "fork", - "forks_url", - "full_name", - "git_commits_url", - "git_refs_url", - "git_tags_url", - "hooks_url", - "html_url", - "id", - "node_id", - "issue_comment_url", - "issue_events_url", - "issues_url", - "keys_url", - "labels_url", - "languages_url", - "merges_url", - "milestones_url", - "name", - "notifications_url", - "owner", - "private", - "pulls_url", - "releases_url", - "stargazers_url", - "statuses_url", - "subscribers_url", - "subscription_url", - "tags_url", - "teams_url", - "trees_url", - "url" - ] - }, - "thread": { - "title": "Thread", - "description": "Thread", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" - }, - "subject": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "url": { - "type": "string" - }, - "latest_comment_url": { - "type": "string" - }, - "type": { - "type": "string" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-resolved" + } + } } - }, - "required": [ - "title", - "url", - "latest_comment_url", - "type" - ] - }, - "reason": { - "type": "string" - }, - "unread": { - "type": "boolean" + } }, - "updated_at": { - "type": "string" + "400": { + "description": "Bad request, resolution comment is invalid or the resolution was not changed." }, - "last_read_at": { - "type": "string", - "nullable": true + "404": { + "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" }, - "url": { - "type": "string" + "422": { + "description": "State does not match the resolution or resolution comment, or assignee does not have write access to the repository" }, - "subscription_url": { - "type": "string", - "example": "https://api.github.com/notifications/threads/2/subscription" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "id", - "unread", - "reason", - "updated_at", - "last_read_at", - "subject", - "repository", - "url", - "subscription_url" - ] - }, - "thread-subscription": { - "title": "Thread Subscription", - "description": "Thread Subscription", - "type": "object", - "properties": { - "subscribed": { - "type": "boolean", - "example": true + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "category": "secret-scanning", + "subcategory": "secret-scanning" + } + } + }, + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { + "get": { + "summary": "List locations for a secret scanning alert", + "description": "Lists all locations for a given secret scanning alert for an eligible repository.\n\nThe authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "tags": [ + "secret-scanning" + ], + "operationId": "secret-scanning/list-locations-for-alert", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "ignored": { - "type": "boolean" + { + "$ref": "#/components/parameters/repo" }, - "reason": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/alert-number" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2012-10-06T21:34:12Z", - "nullable": true + { + "$ref": "#/components/parameters/page" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/notifications/threads/1/subscription" + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of locations where the secret was detected", + "items": { + "$ref": "#/components/schemas/secret-scanning-location" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-location-list" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "thread_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/notifications/threads/1" + "404": { + "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" }, - "repository_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/1" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "created_at", - "ignored", - "reason", - "url", - "subscribed" - ] - }, - "organization-full": { - "title": "Organization Full", - "description": "Organization Full", - "type": "object", - "properties": { - "login": { - "type": "string", - "example": "github" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "secret-scanning" + } + } + }, + "/repos/{owner}/{repo}/secret-scanning/push-protection-bypasses": { + "post": { + "summary": "Create a push protection bypass", + "description": "Creates a bypass for a previously push protected secret.\n\nThe authenticated user must be the original author of the committed secret.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "operationId": "secret-scanning/create-push-protection-bypass", + "tags": [ + "secret-scanning" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#create-a-push-protection-bypass" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "id": { - "type": "integer", - "example": 1 + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "reason": { + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-reason" + }, + "placeholder_id": { + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-placeholder-id" + } + }, + "required": [ + "reason", + "placeholder_id" + ] + }, + "examples": { + "default": { + "value": { + "reason": "will_fix_later", + "placeholder_id": "2k4dM4tseyC5lPIsjl5emX9sPNk" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-push-protection-bypass" + } + } + } + } }, - "node_id": { - "type": "string", - "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + "403": { + "description": "User does not have enough permissions to perform this action." }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github" + "404": { + "description": "Placeholder ID not found, or push protection is disabled on this repository." }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/repos" + "422": { + "description": "Bad request, input data missing or incorrect." }, - "events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/events" + "503": { + "$ref": "#/components/responses/service_unavailable" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "category": "secret-scanning", + "subcategory": "secret-scanning" + } + } + }, + "/repos/{owner}/{repo}/secret-scanning/scan-history": { + "get": { + "summary": "Get secret scanning scan history for a repository", + "description": "Lists the latest default incremental and backfill scans by type for a repository. Scans from Copilot Secret Scanning are not included.\n\n> [!NOTE]\n> This endpoint requires [GitHub Advanced Security](https://docs.github.com/get-started/learning-about-github/about-github-advanced-security).\"\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead.", + "tags": [ + "secret-scanning" + ], + "operationId": "secret-scanning/get-scan-history", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#get-secret-scanning-scan-history-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "hooks_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/hooks" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "404": { + "description": "Repository does not have GitHub Advanced Security or secret scanning enabled" }, - "issues_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/issues" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - "members_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/members{/member}" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-scan-history" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-scan-history" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "secret-scanning" + } + } + }, + "/repos/{owner}/{repo}/security-advisories": { + "get": { + "summary": "List repository security advisories", + "description": "Lists security advisories in a repository.\n\nThe authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/list-repository-advisories", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "public_members_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/public_members{/member}" + { + "$ref": "#/components/parameters/repo" }, - "avatar_url": { - "type": "string", - "example": "https://github.com/images/error/octocat_happy.gif" + { + "$ref": "#/components/parameters/direction" }, - "description": { - "type": "string", - "example": "A great organization", - "nullable": true + { + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "published" + ], + "default": "created" + } }, - "name": { - "type": "string", - "example": "github" + { + "$ref": "#/components/parameters/pagination-before" }, - "company": { - "type": "string", - "example": "GitHub" + { + "$ref": "#/components/parameters/pagination-after" }, - "blog": { - "type": "string", - "format": "uri", - "example": "https://github.com/blog" + { + "name": "per_page", + "description": "The number of advisories to return per page. For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } }, - "location": { - "type": "string", - "example": "San Francisco" + { + "name": "state", + "description": "Filter by state of the repository advisories. Only advisories of this state will be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "triage", + "draft", + "published", + "closed" + ] + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-advisory" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/list-repository-advisories" + } + } + } + } }, - "email": { - "type": "string", - "format": "email", - "example": "octocat@github.com" + "400": { + "$ref": "#/components/responses/bad_request" }, - "twitter_username": { - "type": "string", - "example": "github", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" + } + }, + "post": { + "summary": "Create a repository security advisory", + "description": "Creates a new repository security advisory.\n\nIn order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/create-repository-advisory", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#create-a-repository-security-advisory" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "is_verified": { - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-advisory-create" + }, + "examples": { + "default": { + "value": { + "summary": "A new important advisory", + "description": "A more in-depth description of what the problem is.", + "severity": "high", + "cve_id": null, + "vulnerabilities": [ + { + "package": { + "name": "a-package", + "ecosystem": "npm" + }, + "vulnerable_version_range": "< 1.0.0", + "patched_versions": "1.0.0", + "vulnerable_functions": [ + "important_function" + ] + } + ], + "cwe_ids": [ + "CWE-1101", + "CWE-20" + ], + "credits": [ + { + "login": "monalisa", + "type": "reporter" + }, + { + "login": "octocat", + "type": "analyst" + } + ] + } + }, + "withVectorString": { + "value": { + "summary": "A new important advisory", + "description": "A more in-depth description of what the problem is.", + "cvss_vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L", + "cve_id": null, + "vulnerabilities": [ + { + "package": { + "name": "a-package", + "ecosystem": "npm" + }, + "vulnerable_version_range": "< 1.0.0", + "patched_versions": "1.0.0", + "vulnerable_functions": [ + "important_function" + ] + } + ], + "cwe_ids": [ + "CWE-1101", + "CWE-20" + ], + "credits": [ + { + "login": "monalisa", + "type": "reporter" + }, + { + "login": "octocat", + "type": "analyst" + } + ] + } + }, + "minimal": { + "value": { + "summary": "A new important advisory", + "description": "A more in-depth description of what the problem is.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "npm" + } + } + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-advisory" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-advisory" + } + } + } + } }, - "has_organization_projects": { - "type": "boolean", - "example": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "has_repository_projects": { - "type": "boolean", - "example": true + "404": { + "$ref": "#/components/responses/not_found" }, - "public_repos": { - "type": "integer", - "example": 2 + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" + } + } + }, + "/repos/{owner}/{repo}/security-advisories/reports": { + "post": { + "summary": "Privately report a security vulnerability", + "description": "Report a security vulnerability to the maintainers of the repository.\nSee \"[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)\" for more information about private vulnerability reporting.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/create-private-vulnerability-report", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#privately-report-a-security-vulnerability" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "public_gists": { - "type": "integer", - "example": 1 + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/private-vulnerability-report-create" + }, + "examples": { + "default": { + "value": { + "summary": "A newly discovered vulnerability", + "description": "A more in-depth description of what the problem is.", + "severity": "high", + "vulnerabilities": [ + { + "package": { + "name": "a-package", + "ecosystem": "npm" + }, + "vulnerable_version_range": "< 1.0.0", + "patched_versions": "1.0.0", + "vulnerable_functions": [ + "important_function" + ] + } + ], + "cwe_ids": [ + "CWE-123" + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-advisory" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-advisory-pvr" + } + } + } + } }, - "followers": { - "type": "integer", - "example": 20 + "403": { + "$ref": "#/components/responses/forbidden" }, - "following": { - "type": "integer", - "example": 0 + "404": { + "$ref": "#/components/responses/not_found" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" + } + } + }, + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}": { + "get": { + "summary": "Get a repository security advisory", + "description": "Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier.\n\nAnyone can access any published security advisory on a public repository.\n\nThe authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a\ncollaborator on the security advisory.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/get-repository-advisory", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#get-a-repository-security-advisory" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2008-01-14T04:33:35Z" + { + "$ref": "#/components/parameters/repo" }, - "type": { - "type": "string", - "example": "Organization" + { + "$ref": "#/components/parameters/ghsa_id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-advisory" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-advisory" + } + } + } + } }, - "total_private_repos": { - "type": "integer", - "example": 100 + "403": { + "$ref": "#/components/responses/forbidden" }, - "owned_private_repos": { - "type": "integer", - "example": 100 + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" + } + }, + "patch": { + "summary": "Update a repository security advisory", + "description": "Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier.\n\nIn order to update any security advisory, the authenticated user must be a security manager or administrator of that repository,\nor a collaborator on the repository security advisory.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/update-repository-advisory", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#update-a-repository-security-advisory" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "private_gists": { - "type": "integer", - "example": 81, - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "disk_usage": { - "type": "integer", - "example": 10000, - "nullable": true + { + "$ref": "#/components/parameters/ghsa_id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-advisory-update" + }, + "examples": { + "default": { + "summary": "Updating the severity and state.", + "value": { + "severity": "critical", + "state": "published" + } + }, + "add_credit": { + "summary": "To add a credit to an advisory, send the whole array of values.", + "value": { + "credits": [ + { + "login": "monauser", + "type": "remediation_developer" + } + ] + } + }, + "update_vvrs": { + "summary": "To add vulnerable versions, include existing versions in the array.", + "value": [ + { + "package": { + "ecosystem": "pip", + "name": "a-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.1", + "patched_versions": "1.0.1", + "vulnerable_functions": [ + "function1" + ] + }, + { + "package": { + "ecosystem": "pip", + "name": "another-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.2", + "patched_versions": "1.0.2", + "vulnerable_functions": [ + "function2" + ] + } + ] + }, + "invalid_state_transition": { + "summary": "Example of an invalid state transition, from `published` to `draft`.", + "value": { + "state": "draft" + } + }, + "update_severity_with_cvss_set": { + "summary": "Severity cannot be updated when the CVSS is already set.", + "value": { + "severity": "low" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-advisory" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-advisory" + }, + "add_credit": { + "$ref": "#/components/examples/repository-advisory" + } + } + } + } }, - "collaborators": { - "type": "integer", - "example": 8, - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "billing_email": { - "type": "string", - "format": "email", - "example": "org@example.com", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "plan": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "space": { - "type": "integer" - }, - "private_repos": { - "type": "integer" - }, - "filled_seats": { - "type": "integer" - }, - "seats": { - "type": "integer" + "422": { + "description": "Validation failed, or the endpoint has been spammed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/validation-error" + }, + "examples": { + "invalid_state_transition": { + "value": { + "message": "Invalid state transition from `published` to `draft`." + } + }, + "update_severity_with_cvss_set": { + "value": { + "message": "Cannot update severity value when CVSS is set." + } + } + } } - }, - "required": [ - "name", - "space", - "private_repos" - ] + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" + } + } + }, + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": { + "post": { + "summary": "Request a CVE for a repository security advisory", + "description": "If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see \"[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional).\"\n\nYou may request a CVE for public repositories, but cannot do so for private repositories.\n\nIn order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/create-repository-advisory-cve-request", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#request-a-cve-for-a-repository-security-advisory" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "default_repository_permission": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/repo" }, - "members_can_create_repositories": { - "type": "boolean", - "example": true, - "nullable": true + { + "$ref": "#/components/parameters/ghsa_id" + } + ], + "responses": { + "202": { + "$ref": "#/components/responses/accepted" }, - "two_factor_requirement_enabled": { - "type": "boolean", - "example": true, - "nullable": true + "400": { + "$ref": "#/components/responses/bad_request" }, - "members_allowed_repository_creation_type": { - "type": "string", - "example": "all" + "403": { + "$ref": "#/components/responses/forbidden" }, - "members_can_create_public_repositories": { - "type": "boolean", - "example": true + "404": { + "$ref": "#/components/responses/not_found" }, - "members_can_create_private_repositories": { - "type": "boolean", - "example": true + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" + } + } + }, + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": { + "post": { + "summary": "Create a temporary private fork", + "description": "Create a temporary private fork to collaborate on fixing a security vulnerability in your repository.\n\n> [!NOTE]\n> Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork.", + "tags": [ + "security-advisories" + ], + "operationId": "security-advisories/create-fork", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#create-a-temporary-private-fork" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "members_can_create_internal_repositories": { - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/repo" }, - "members_can_create_pages": { - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/ghsa_id" + } + ], + "responses": { + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/full-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/full-repository" + } + } + } + } }, - "members_can_create_public_pages": { - "type": "boolean", - "example": true + "400": { + "$ref": "#/components/responses/bad_request" }, - "members_can_create_private_pages": { - "type": "boolean", - "example": true + "422": { + "$ref": "#/components/responses/validation_failed" }, - "updated_at": { - "type": "string", - "format": "date-time" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "login", - "url", - "id", - "node_id", - "repos_url", - "events_url", - "hooks_url", - "issues_url", - "members_url", - "public_members_url", - "avatar_url", - "description", - "html_url", - "has_organization_projects", - "has_repository_projects", - "public_repos", - "public_gists", - "followers", - "following", - "type", - "created_at", - "updated_at" - ] - }, - "enabled-repositories": { - "type": "string", - "description": "The policy that controls the repositories in the organization that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`.", - "enum": [ - "all", - "none", - "selected" - ] - }, - "actions-organization-permissions": { - "type": "object", - "properties": { - "enabled_repositories": { - "$ref": "#/components/schemas/enabled-repositories" - }, - "selected_repositories_url": { - "type": "string", - "description": "The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`." - }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" - }, - "selected_actions_url": { - "$ref": "#/components/schemas/selected-actions-url" - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" + } + } + }, + "/repos/{owner}/{repo}/stargazers": { + "get": { + "summary": "List stargazers", + "description": "Lists the people that have starred the repository.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created.", + "tags": [ + "activity" + ], + "operationId": "activity/list-stargazers-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#list-stargazers" }, - "required": [ - "enabled_repositories" - ] - }, - "runner-groups-org": { - "type": "object", - "properties": { - "id": { - "type": "number" + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "name": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "visibility": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "default": { - "type": "boolean" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/stargazer" + } + } + ] + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/simple-user-items-default-response" + }, + "alternative-response-with-star-creation-timestamps": { + "$ref": "#/components/examples/stargazer-items-alternative-response-with-star-creation-timestamps" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "selected_repositories_url": { - "description": "Link to the selected repositories resource for this runner group. Not present unless visibility was set to `selected`", - "type": "string" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "starring" + } + } + }, + "/repos/{owner}/{repo}/stats/code_frequency": { + "get": { + "summary": "Get the weekly commit activity", + "description": "Returns a weekly aggregate of the number of additions and deletions pushed to a repository.\n\n> [!NOTE]\n> This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains 10,000 or more commits, a 422 status code will be returned.", + "tags": [ + "repos" + ], + "operationId": "repos/get-code-frequency-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-activity" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "runners_url": { - "type": "string" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Returns a weekly aggregate of the number of additions and deletions pushed to a repository.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-frequency-stat" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-frequency-stat-items" + } + } + } + } }, - "inherited": { - "type": "boolean" + "202": { + "$ref": "#/components/responses/accepted" }, - "inherited_allows_public_repositories": { - "type": "boolean" + "204": { + "$ref": "#/components/responses/no_content" }, - "allows_public_repositories": { - "type": "boolean" + "422": { + "description": "Repository contains more than 10,000 commits" } }, - "required": [ - "id", - "name", - "visibility", - "default", - "runners_url", - "inherited", - "allows_public_repositories" - ] - }, - "organization-actions-secret": { - "title": "Actions Secret for an Organization", - "description": "Secrets for GitHub Actions for an organization.", - "type": "object", - "properties": { - "name": { - "description": "The name of the secret.", - "example": "SECRET_TOKEN", - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" + } + } + }, + "/repos/{owner}/{repo}/stats/commit_activity": { + "get": { + "summary": "Get the last year of commit activity", + "description": "Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`.", + "tags": [ + "repos" + ], + "operationId": "repos/get-commit-activity-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/statistics#get-the-last-year-of-commit-activity" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit-activity" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-activity-items" + } + } + } + } }, - "visibility": { - "description": "Visibility of a secret", - "enum": [ - "all", - "private", - "selected" - ], - "type": "string" + "202": { + "$ref": "#/components/responses/accepted" }, - "selected_repositories_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/org/secrets/my_secret/repositories" + "204": { + "$ref": "#/components/responses/no_content" } }, - "required": [ - "name", - "created_at", - "updated_at", - "visibility" - ] - }, - "actions-public-key": { - "title": "ActionsPublicKey", - "description": "The public key used for setting Actions Secrets.", - "type": "object", - "properties": { - "key_id": { - "description": "The identifier for the key.", - "type": "string", - "example": "1234567" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" + } + } + }, + "/repos/{owner}/{repo}/stats/contributors": { + "get": { + "summary": "Get all contributor commit activity", + "description": "\nReturns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information:\n\n* `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time).\n* `a` - Number of additions\n* `d` - Number of deletions\n* `c` - Number of commits\n\n> [!NOTE]\n> This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits.", + "tags": [ + "repos" + ], + "operationId": "repos/get-contributors-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/statistics#get-all-contributor-commit-activity" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "key": { - "description": "The Base64 encoded public key.", - "type": "string", - "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/contributor-activity" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/contributor-activity-items" + } + } + } + } }, - "id": { - "type": "integer", - "example": 2 + "202": { + "$ref": "#/components/responses/accepted" }, - "url": { - "type": "string", - "example": "https://api.github.com/user/keys/2" + "204": { + "$ref": "#/components/responses/no_content" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" + } + } + }, + "/repos/{owner}/{repo}/stats/participation": { + "get": { + "summary": "Get the weekly commit count", + "description": "Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`.\n\nThe array order is oldest week (index 0) to most recent week.\n\nThe most recent week is seven days ago at UTC midnight to today at UTC midnight.", + "tags": [ + "repos" + ], + "operationId": "repos/get-participation-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-count" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "title": { - "type": "string", - "example": "ssh-rsa AAAAB3NzaC1yc2EAAA" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "The array order is oldest week (index 0) to most recent week.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/participation-stats" + }, + "examples": { + "default": { + "$ref": "#/components/examples/participation-stats" + } + } + } + } }, - "created_at": { - "type": "string", - "example": "2011-01-26T19:01:12Z" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "key_id", - "key" - ] - }, - "empty-object": { - "title": "Empty Object", - "description": "An object without any properties.", - "type": "object", - "properties": { + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" + } + } + }, + "/repos/{owner}/{repo}/stats/punch_card": { + "get": { + "summary": "Get the hourly commit count for each day", + "description": "Each array contains the day number, hour number, and number of commits:\n\n* `0-6`: Sunday - Saturday\n* `0-23`: Hour of day\n* Number of commits\n\nFor example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.", + "tags": [ + "repos" + ], + "operationId": "repos/get-punch-card-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day" }, - "additionalProperties": false - }, - "credential-authorization": { - "title": "Credential Authorization", - "description": "Credential Authorization", - "type": "object", - "properties": { - "login": { - "type": "string", - "example": "monalisa", - "description": "User login that owns the underlying credential." - }, - "credential_id": { - "type": "integer", - "example": 1, - "description": "Unique identifier for the credential." + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "credential_type": { - "type": "string", - "example": "SSH Key", - "description": "Human-readable description of the credential type." + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-frequency-stat" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-frequency-stat-items-2" + } + } + } + } }, - "token_last_eight": { - "type": "string", - "example": "12345678", - "description": "Last eight characters of the credential. Only included in responses with credential_type of personal access token." + "204": { + "$ref": "#/components/responses/no_content" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" + } + } + }, + "/repos/{owner}/{repo}/statuses/{sha}": { + "post": { + "summary": "Create a commit status", + "description": "Users with push access in a repository can create commit statuses for a given SHA.\n\nNote: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error.", + "tags": [ + "repos" + ], + "operationId": "repos/create-commit-status", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/commits/statuses#create-a-commit-status" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "credential_authorized_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "description": "Date when the credential was authorized for use." + { + "$ref": "#/components/parameters/repo" }, - "scopes": { - "type": "array", - "example": [ - "user", - "repo" - ], - "description": "List of oauth scopes the token has been granted.", - "items": { + { + "name": "sha", + "in": "path", + "required": true, + "schema": { "type": "string" + }, + "x-multi-segment": true + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "The state of the status.", + "enum": [ + "error", + "failure", + "pending", + "success" + ] + }, + "target_url": { + "type": "string", + "nullable": true, + "description": "The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. \nFor example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: \n`http://ci.example.com/user/repo/build/sha`" + }, + "description": { + "type": "string", + "nullable": true, + "description": "A short description of the status." + }, + "context": { + "type": "string", + "description": "A string label to differentiate this status from the status of other systems. This field is case-insensitive.", + "default": "default" + } + }, + "required": [ + "state" + ] + }, + "examples": { + "default": { + "value": { + "state": "success", + "target_url": "https://example.com/build/status", + "description": "The build succeeded!", + "context": "continuous-integration/jenkins" + } + } + } } - }, - "fingerprint": { - "type": "string", - "example": "jklmnop12345678", - "description": "Unique string to distinguish the credential. Only included in responses with credential_type of SSH Key." - }, - "credential_accessed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "description": "Date when the credential was last accessed. May be null if it was never accessed", - "nullable": true - }, - "authorized_credential_id": { - "type": "integer", - "nullable": true, - "example": 12345678 - }, - "authorized_credential_title": { - "type": "string", - "nullable": true, - "example": "my ssh key", - "description": "The title given to the ssh key. This will only be present when the credential is an ssh key." - }, - "authorized_credential_note": { - "type": "string", - "nullable": true, - "example": "my token", - "description": "The note given to the token. This will only be present when the credential is a token." } }, - "required": [ - "login", - "credential_id", - "credential_type", - "credential_authorized_at" - ] - }, - "organization-invitation": { - "title": "Organization Invitation", - "description": "Organization Invitation", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "login": { - "type": "string", - "nullable": true - }, - "email": { - "type": "string", - "nullable": true - }, - "role": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "failed_at": { - "type": "string", - "nullable": true - }, - "failed_reason": { - "type": "string", - "nullable": true - }, - "inviter": { - "$ref": "#/components/schemas/simple-user" - }, - "team_count": { - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "\"MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x\"" - }, - "invitation_teams_url": { - "type": "string", - "example": "\"https://api.github.com/organizations/16/invitations/1/teams\"" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/status" + }, + "examples": { + "default": { + "$ref": "#/components/examples/status" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + } } }, - "required": [ - "id", - "login", - "email", - "role", - "created_at", - "inviter", - "team_count", - "invitation_teams_url", - "node_id" - ] - }, - "org-hook": { - "title": "Org Hook", - "description": "Org Hook", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1 - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/octocat/hooks/1" - }, - "ping_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/octocat/hooks/1/pings" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "commits", + "subcategory": "statuses" + } + } + }, + "/repos/{owner}/{repo}/subscribers": { + "get": { + "summary": "List watchers", + "description": "Lists the people watching the specified repository.", + "tags": [ + "activity" + ], + "operationId": "activity/list-watchers-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/watching#list-watchers" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "deliveries_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/octocat/hooks/1/deliveries" + { + "$ref": "#/components/parameters/repo" }, - "name": { - "type": "string", - "example": "web" + { + "$ref": "#/components/parameters/per-page" }, - "events": { - "type": "array", - "example": [ - "push", - "pull_request" - ], - "items": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "watching" + } + } + }, + "/repos/{owner}/{repo}/subscription": { + "get": { + "summary": "Get a repository subscription", + "description": "Gets information about whether the authenticated user is subscribed to the repository.", + "tags": [ + "activity" + ], + "operationId": "activity/get-repo-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/watching#get-a-repository-subscription" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "active": { - "type": "boolean", - "example": true - }, - "config": { - "type": "object", - "properties": { - "url": { - "type": "string", - "example": "\"http://example.com/2\"" - }, - "insecure_ssl": { - "type": "string", - "example": "\"0\"" - }, - "content_type": { - "type": "string", - "example": "\"form\"" - }, - "secret": { - "type": "string", - "example": "\"********\"" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "if you subscribe to the repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-subscription" + }, + "examples": { + "response-if-you-subscribe-to-the-repository": { + "$ref": "#/components/examples/repository-subscription-response-if-you-subscribe-to-the-repository" + } + } } } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-09-06T20:39:23Z" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-09-06T17:26:27Z" + "404": { + "description": "Not Found if you don't subscribe to the repository" }, - "type": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "id", - "url", - "type", - "name", - "active", - "events", - "config", - "ping_url", - "created_at", - "updated_at" - ] - }, - "interaction-group": { - "type": "string", - "description": "The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect. Can be one of: `existing_users`, `contributors_only`, `collaborators_only`.", - "example": "collaborators_only", - "enum": [ - "existing_users", - "contributors_only", - "collaborators_only" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "watching" + } }, - "interaction-limit-response": { - "title": "Interaction Limits", - "description": "Interaction limit settings.", - "type": "object", - "properties": { - "limit": { - "$ref": "#/components/schemas/interaction-group" - }, - "origin": { - "type": "string", - "example": "repository" + "put": { + "summary": "Set a repository subscription", + "description": "If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely.", + "tags": [ + "activity" + ], + "operationId": "activity/set-repo-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/watching#set-a-repository-subscription" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "expires_at": { - "type": "string", - "format": "date-time", - "example": "2018-08-17T04:18:39Z" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean", + "description": "Determines if notifications should be received from this repository." + }, + "ignored": { + "type": "boolean", + "description": "Determines if all notifications should be blocked from this repository." + } + } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } + } + } } }, - "required": [ - "limit", - "origin", - "expires_at" - ] - }, - "interaction-expiry": { - "type": "string", - "description": "The duration of the interaction restriction. Can be one of: `one_day`, `three_days`, `one_week`, `one_month`, `six_months`. Default: `one_day`.", - "example": "one_month", - "enum": [ - "one_day", - "three_days", - "one_week", - "one_month", - "six_months" - ] - }, - "interaction-limit": { - "title": "Interaction Restrictions", - "description": "Limit interactions to a specific type of user for a specified duration", - "type": "object", - "properties": { - "limit": { - "$ref": "#/components/schemas/interaction-group" - }, - "expiry": { - "$ref": "#/components/schemas/interaction-expiry" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-subscription" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-subscription" + } + } + } + } } }, - "required": [ - "limit" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "watching" + } }, - "team-simple": { - "title": "Team Simple", - "description": "Groups of organization members that gives permissions on specified repositories.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the team", - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDQ6VGVhbTE=" - }, - "url": { - "description": "URL for the team", - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/1" - }, - "members_url": { - "type": "string", - "example": "https://api.github.com/organizations/1/team/1/members{/member}" - }, - "name": { - "description": "Name of the team", - "type": "string", - "example": "Justice League" - }, - "description": { - "description": "Description of the team", - "type": "string", - "nullable": true, - "example": "A great team." - }, - "permission": { - "description": "Permission that the team will have for its repositories", - "type": "string", - "example": "admin" - }, - "privacy": { - "description": "The level of privacy this team should have", - "type": "string", - "example": "closed" + "delete": { + "summary": "Delete a repository subscription", + "description": "This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription).", + "tags": [ + "activity" + ], + "operationId": "activity/delete-repo-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/watching#delete-a-repository-subscription" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/orgs/rails/teams/core" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "watching" + } + } + }, + "/repos/{owner}/{repo}/tags": { + "get": { + "summary": "List repository tags", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/list-tags", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#list-repository-tags" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "repositories_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/1/repos" + { + "$ref": "#/components/parameters/repo" }, - "slug": { - "type": "string", - "example": "justice-league" + { + "$ref": "#/components/parameters/per-page" }, - "ldap_dn": { - "description": "Distinguished Name (DN) that team maps to within LDAP environment", - "example": "uid=example,ou=users,dc=github,dc=com", - "type": "string" + { + "$ref": "#/components/parameters/page" } - }, - "required": [ - "id", - "node_id", - "url", - "members_url", - "name", - "description", - "permission", - "html_url", - "repositories_url", - "slug" ], - "nullable": true - }, - "team": { - "title": "Team", - "description": "Groups of organization members that gives permissions on specified repositories.", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "slug": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "privacy": { - "type": "string" - }, - "permission": { - "type": "string" - }, - "permissions": { - "type": "object", - "properties": { - "pull": { - "type": "boolean" - }, - "triage": { - "type": "boolean" - }, - "push": { - "type": "boolean" - }, - "maintain": { - "type": "boolean" - }, - "admin": { - "type": "boolean" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/tag" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/tag-items" + } + } } }, - "required": [ - "pull", - "triage", - "push", - "maintain", - "admin" - ] - }, - "url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/orgs/rails/teams/core" - }, - "members_url": { - "type": "string" - }, - "repositories_url": { - "type": "string", - "format": "uri" - }, - "parent": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/team-simple" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] + } } }, - "required": [ - "id", - "node_id", - "url", - "members_url", - "name", - "description", - "permission", - "html_url", - "repositories_url", - "slug", - "parent" - ] - }, - "org-membership": { - "title": "Org Membership", - "description": "Org Membership", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/octocat/memberships/defunkt" - }, - "state": { - "type": "string", - "description": "The state of the member in the organization. The `pending` state indicates the user has not yet accepted an invitation.", - "example": "active", - "enum": [ - "active", - "pending" - ] - }, - "role": { - "type": "string", - "description": "The user's membership type in the organization.", - "example": "admin", - "enum": [ - "admin", - "member", - "billing_manager" - ] - }, - "organization_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/octocat" - }, - "organization": { - "$ref": "#/components/schemas/organization-simple" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/tags/protection": { + "get": { + "summary": "Closing down - List tag protection states for a repository", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the \"[Repository Rulesets](https://docs.github.com/rest/repos/rules#get-all-repository-rulesets)\" endpoint instead.\n\nThis returns the tag protection states of a repository.\n\nThis information is only available to repository administrators.", + "tags": [ + "repos" + ], + "operationId": "repos/list-tag-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/tags#closing-down---list-tag-protection-states-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/tag-protection" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/tag-protection-items" + } + } } - ] + } }, - "permissions": { - "type": "object", - "properties": { - "can_create_repository": { - "type": "boolean" - } - }, - "required": [ - "can_create_repository" - ] + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "state", - "role", - "organization_url", - "url", - "organization", - "user" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "tags", + "deprecationDate": "2024-05-29", + "removalDate": "2024-08-30" + }, + "deprecated": true }, - "migration": { - "title": "Migration", - "description": "A migration.", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 79 + "post": { + "summary": "Closing down - Create a tag protection state for a repository", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the \"[Repository Rulesets](https://docs.github.com/rest/repos/rules#create-a-repository-ruleset)\" endpoint instead.\n\nThis creates a tag protection state for a repository.\nThis endpoint is only available to repository administrators.", + "tags": [ + "repos" + ], + "operationId": "repos/create-tag-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/tags#closing-down---create-a-tag-protection-state-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "owner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "description": "An optional glob pattern to match against when enforcing tag protection." + } + }, + "required": [ + "pattern" + ] + }, + "examples": { + "default": { + "value": { + "pattern": "v1.*" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/tag-protection" + }, + "examples": { + "default": { + "$ref": "#/components/examples/tag-protection" + } + } } - ] - }, - "guid": { - "type": "string", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516" - }, - "state": { - "type": "string", - "example": "pending" - }, - "lock_repositories": { - "type": "boolean", - "example": true - }, - "exclude_attachments": { - "type": "boolean" - }, - "repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/octo-org/migrations/79" + "403": { + "$ref": "#/components/responses/forbidden" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2015-07-06T15:33:38-07:00" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "tags", + "deprecationDate": "2024-05-29", + "removalDate": "2024-08-30" + }, + "deprecated": true + } + }, + "/repos/{owner}/{repo}/tags/protection/{tag_protection_id}": { + "delete": { + "summary": "Closing down - Delete a tag protection state for a repository", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the \"[Repository Rulesets](https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset)\" endpoint instead.\n\nThis deletes a tag protection state for a repository.\nThis endpoint is only available to repository administrators.", + "tags": [ + "repos" + ], + "operationId": "repos/delete-tag-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/tags#closing-down---delete-a-tag-protection-state-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2015-07-06T15:33:38-07:00" + { + "$ref": "#/components/parameters/repo" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/tag-protection-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "archive_url": { - "type": "string", - "format": "uri" + "403": { + "$ref": "#/components/responses/forbidden" }, - "exclude": { - "type": "array", - "items": { - } + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "node_id", - "owner", - "guid", - "state", - "lock_repositories", - "exclude_attachments", - "repositories", - "url", - "created_at", - "updated_at" - ] - }, - "package": { - "title": "Package", - "description": "A software package", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the package.", - "type": "integer", - "example": 1 - }, - "name": { - "description": "The name of the package.", - "type": "string", - "example": "super-linter" - }, - "package_type": { - "type": "string", - "example": "docker", - "enum": [ - "npm", - "maven", - "rubygems", - "docker", - "nuget", - "container" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "tags", + "deprecationDate": "2024-05-29", + "removalDate": "2024-08-30" + }, + "deprecated": true + } + }, + "/repos/{owner}/{repo}/tarball/{ref}": { + "get": { + "summary": "Download a repository archive (tar)", + "description": "Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually\n`main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use\nthe `Location` header to make a second `GET` request.\n\n> [!NOTE]\n> For private repositories, these links are temporary and expire after five minutes.", + "tags": [ + "repos" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/contents#download-a-repository-archive-tar" + }, + "operationId": "repos/download-tarball-archive", + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "url": { - "type": "string", - "example": "https://api.github.com/orgs/github/packages/container/super-linter" + { + "$ref": "#/components/parameters/repo" }, - "html_url": { - "type": "string", - "example": "https://github.com/orgs/github/packages/container/package/super-linter" + { + "name": "ref", + "in": "path", + "required": true, + "x-multi-segment": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "302": { + "description": "Response", + "headers": { + "Location": { + "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", + "schema": { + "type": "string" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" + } + } + }, + "/repos/{owner}/{repo}/teams": { + "get": { + "summary": "List repository teams", + "description": "Lists the teams that have access to the specified repository and that are also visible to the authenticated user.\n\nFor a public repository, a team is listed only if that team added the public repository explicitly.\n\nOAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository.", + "tags": [ + "repos" + ], + "operationId": "repos/list-teams", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#list-repository-teams" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "version_count": { - "description": "The number of versions of the package.", - "type": "integer", - "example": 1 + { + "$ref": "#/components/parameters/repo" }, - "visibility": { - "type": "string", - "example": "private", - "enum": [ - "private", - "public" - ] + { + "$ref": "#/components/parameters/per-page" }, - "owner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-items" + } + } } - ] - }, - "repository": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/minimal-repository" + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] - }, - "created_at": { - "type": "string", - "format": "date-time" + } }, - "updated_at": { - "type": "string", - "format": "date-time" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "name", - "package_type", - "visibility", - "url", - "html_url", - "version_count", - "created_at", - "updated_at" - ] - }, - "package-version": { - "title": "Package Version", - "description": "A version of a software package", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the package version.", - "type": "integer", - "example": 1 - }, - "name": { - "description": "The name of the package version.", - "type": "string", - "example": "latest" - }, - "url": { - "type": "string", - "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" - }, - "package_html_url": { - "type": "string", - "example": "https://github.com/orgs/github/packages/container/package/super-linter" - }, - "html_url": { - "type": "string", - "example": "https://github.com/orgs/github/packages/container/super-linter/786068" - }, - "license": { - "type": "string", - "example": "MIT" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/topics": { + "get": { + "summary": "Get all repository topics", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/get-all-topics", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#get-all-repository-topics" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "description": { - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-10T20:09:31Z" + { + "$ref": "#/components/parameters/page" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2014-03-03T18:58:10Z" + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/topic" + }, + "examples": { + "default": { + "$ref": "#/components/examples/topic" + } + } + } + } }, - "deleted_at": { - "type": "string", - "format": "date-time", - "example": "2014-03-03T18:58:10Z" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + }, + "put": { + "summary": "Replace all repository topics", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/replace-all-topics", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#replace-all-repository-topics" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "metadata": { - "type": "object", - "title": "Package Version Metadata", - "properties": { - "package_type": { - "type": "string", - "example": "docker", - "enum": [ - "npm", - "maven", - "rubygems", - "docker", - "nuget", - "container" - ] - }, - "container": { + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "type": "object", - "title": "Container Metadata", "properties": { - "tags": { - "type": "array" + "names": { + "type": "array", + "description": "An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` will be saved as lowercase.", + "items": { + "type": "string" + } } }, "required": [ - "tags" + "names" ] }, - "docker": { - "type": "object", - "title": "Docker Metadata", - "properties": { - "tag": { - "type": "array" + "examples": { + "default": { + "value": { + "names": [ + "octocat", + "atom", + "electron", + "api" + ] } - }, - "required": [ - "tags" - ] + } } - }, - "required": [ - "package_type" - ] + } } }, - "required": [ - "id", - "name", - "url", - "package_html_url", - "created_at", - "updated_at" - ] - }, - "project": { - "title": "Project", - "description": "Projects are a way to organize columns and cards of work.", - "type": "object", - "properties": { - "owner_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/api-playground/projects-test" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/1002604" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/api-playground/projects-test/projects/12" - }, - "columns_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/1002604/columns" - }, - "id": { - "type": "integer", - "example": 1002604 - }, - "node_id": { - "type": "string", - "example": "MDc6UHJvamVjdDEwMDI2MDQ=" - }, - "name": { - "description": "Name of the project", - "example": "Week One Sprint", - "type": "string" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/topic" + }, + "examples": { + "default": { + "$ref": "#/components/examples/topic" + } + } + } + } }, - "body": { - "description": "Body of the project", - "example": "This project represents the sprint of the first week in January", - "type": "string", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "number": { - "type": "integer", - "example": 1 + "422": { + "$ref": "#/components/responses/validation_failed_simple" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/traffic/clones": { + "get": { + "summary": "Get repository clones", + "description": "Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.", + "tags": [ + "repos" + ], + "operationId": "repos/get-clones", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/traffic#get-repository-clones" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "state": { - "description": "State of the project; either 'open' or 'closed'", - "example": "open", - "type": "string" + { + "$ref": "#/components/parameters/repo" }, - "creator": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/per" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/clone-traffic" + }, + "examples": { + "default": { + "$ref": "#/components/examples/clone-traffic" + } + } } - ] - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-10T20:09:31Z" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2014-03-03T18:58:10Z" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "traffic" + } + } + }, + "/repos/{owner}/{repo}/traffic/popular/paths": { + "get": { + "summary": "Get top referral paths", + "description": "Get the top 10 popular contents over the last 14 days.", + "tags": [ + "repos" + ], + "operationId": "repos/get-top-paths", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/traffic#get-top-referral-paths" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "organization_permission": { - "description": "The baseline permission that all organization members have on this project. Only present if owner is an organization.", - "type": "string", - "enum": [ - "read", - "write", - "admin", - "none" - ] + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/content-traffic" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/content-traffic-items" + } + } + } + } }, - "private": { - "description": "Whether or not this project can be seen by everyone. Only present if owner is an organization.", - "type": "boolean" + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "id", - "node_id", - "number", - "name", - "body", - "state", - "url", - "html_url", - "owner_url", - "creator", - "columns_url", - "created_at", - "updated_at" - ] - }, - "group-mapping": { - "title": "GroupMapping", - "description": "External Groups to be mapped to a team for membership", - "type": "object", - "properties": { - "groups": { - "description": "Array of groups to be mapped to this team", - "example": [ - { - "group_id": "111a1a11-aaa1-1aaa-11a1-a1a1a1a1a1aa", - "group_name": "saml-azuread-test", - "group_description": "A group of Developers working on AzureAD SAML SSO" - }, - { - "group_id": "2bb2bb2b-bb22-22bb-2bb2-bb2bbb2bb2b2", - "group_name": "saml-azuread-test2", - "group_description": "Another group of Developers working on AzureAD SAML SSO" - } - ], - "type": "array", - "items": { - "type": "object", - "required": [ - "group_id", - "group_name", - "group_description" - ], - "properties": { - "group_id": { - "description": "The ID of the group", - "example": "111a1a11-aaa1-1aaa-11a1-a1a1a1a1a1aa", - "type": "string" - }, - "group_name": { - "description": "The name of the group", - "example": "saml-azuread-test", - "type": "string" - }, - "group_description": { - "description": "a description of the group", - "example": "A group of Developers working on AzureAD SAML SSO", - "type": "string" - }, - "status": { - "description": "synchronization status for this group mapping", - "example": "unsynced", - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "traffic" + } + } + }, + "/repos/{owner}/{repo}/traffic/popular/referrers": { + "get": { + "summary": "Get top referral sources", + "description": "Get the top 10 referrers over the last 14 days.", + "tags": [ + "repos" + ], + "operationId": "repos/get-top-referrers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/traffic#get-top-referral-sources" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/referrer-traffic" + } }, - "synced_at": { - "description": "the time of the last sync for this group-mapping", - "example": "2019-06-03 22:27:15:000 -700", - "type": "string", - "nullable": true + "examples": { + "default": { + "$ref": "#/components/examples/referrer-traffic-items" + } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "traffic" } - }, - "team-full": { - "title": "Full Team", - "description": "Groups of organization members that gives permissions on specified repositories.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the team", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDQ6VGVhbTE=" + } + }, + "/repos/{owner}/{repo}/traffic/views": { + "get": { + "summary": "Get page views", + "description": "Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.", + "tags": [ + "repos" + ], + "operationId": "repos/get-views", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/metrics/traffic#get-page-views" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "url": { - "description": "URL for the team", - "example": "https://api.github.com/organizations/1/team/1", - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/repo" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/orgs/rails/teams/core" + { + "$ref": "#/components/parameters/per" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/view-traffic" + }, + "examples": { + "default": { + "$ref": "#/components/examples/view-traffic" + } + } + } + } }, - "name": { - "description": "Name of the team", - "example": "Developers", - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "traffic" + } + } + }, + "/repos/{owner}/{repo}/transfer": { + "post": { + "summary": "Transfer a repository", + "description": "A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/).", + "tags": [ + "repos" + ], + "operationId": "repos/transfer", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#transfer-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "slug": { - "type": "string", - "example": "justice-league" + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_owner": { + "type": "string", + "description": "The username or organization name the repository will be transferred to." + }, + "new_name": { + "type": "string", + "description": "The new name to be given to the repository." + }, + "team_ids": { + "type": "array", + "description": "ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "new_owner" + ] + }, + "examples": { + "default": { + "value": { + "new_owner": "github", + "team_ids": [ + 12, + 345 + ], + "new_name": "octorepo" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/minimal-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/vulnerability-alerts": { + "get": { + "summary": "Check if vulnerability alerts are enabled for a repository", + "description": "Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)\".", + "tags": [ + "repos" + ], + "operationId": "repos/check-vulnerability-alerts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "description": { - "type": "string", - "example": "A great team.", - "nullable": true + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response if repository is enabled with vulnerability alerts" }, - "privacy": { - "description": "The level of privacy this team should have", - "type": "string", - "enum": [ - "closed", - "secret" - ], - "example": "closed" + "404": { + "description": "Not Found if repository is not enabled with vulnerability alerts" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + }, + "put": { + "summary": "Enable vulnerability alerts", + "description": "Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)\".", + "tags": [ + "repos" + ], + "operationId": "repos/enable-vulnerability-alerts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#enable-vulnerability-alerts" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "permission": { - "description": "Permission that the team will have for its repositories", - "example": "push", - "type": "string" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + }, + "delete": { + "summary": "Disable vulnerability alerts", + "description": "Disables dependency alerts and the dependency graph for a repository.\nThe authenticated user must have admin access to the repository. For more information,\nsee \"[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)\".", + "tags": [ + "repos" + ], + "operationId": "repos/disable-vulnerability-alerts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#disable-vulnerability-alerts" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "members_url": { - "type": "string", - "example": "https://api.github.com/organizations/1/team/1/members{/member}" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repos/{owner}/{repo}/zipball/{ref}": { + "get": { + "summary": "Download a repository archive (zip)", + "description": "Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually\n`main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use\nthe `Location` header to make a second `GET` request.\n\n> [!NOTE]\n> For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect.", + "tags": [ + "repos" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip" + }, + "operationId": "repos/download-zipball-archive", + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "repositories_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/1/repos" + { + "$ref": "#/components/parameters/repo" }, - "parent": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/team-simple" + { + "name": "ref", + "in": "path", + "required": true, + "x-multi-segment": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "302": { + "description": "Response", + "headers": { + "Location": { + "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", + "schema": { + "type": "string" + } } - ] - }, - "members_count": { - "type": "integer", - "example": 3 - }, - "repos_count": { - "type": "integer", - "example": 10 - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-08-17T12:37:15Z" - }, - "organization": { - "$ref": "#/components/schemas/organization-full" + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" + } + } + }, + "/repos/{template_owner}/{template_repo}/generate": { + "post": { + "summary": "Create a repository using a template", + "description": "Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`.\n\nOAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository.", + "tags": [ + "repos" + ], + "operationId": "repos/create-using-template", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#create-a-repository-using-a-template" + }, + "parameters": [ + { + "name": "template_owner", + "description": "The account owner of the template repository. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "ldap_dn": { - "description": "Distinguished Name (DN) that team maps to within LDAP environment", - "example": "uid=example,ou=users,dc=github,dc=com", - "type": "string" + { + "name": "template_repo", + "description": "The name of the template repository without the `.git` extension. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization." + }, + "name": { + "type": "string", + "description": "The name of the new repository." + }, + "description": { + "type": "string", + "description": "A short description of the new repository." + }, + "include_all_branches": { + "type": "boolean", + "description": "Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`.", + "default": false + }, + "private": { + "type": "boolean", + "description": "Either `true` to create a new private repository or `false` to create a new public one.", + "default": false + } + }, + "required": [ + "name" + ] + }, + "examples": { + "default": { + "value": { + "owner": "octocat", + "name": "Hello-World", + "description": "This is your first repository", + "include_all_branches": false, + "private": false + } + } + } + } } }, - "required": [ - "id", - "node_id", - "url", - "members_url", - "name", - "description", - "permission", - "html_url", - "repositories_url", - "slug", - "created_at", - "updated_at", - "members_count", - "repos_count", - "organization" - ] - }, - "team-discussion": { - "title": "Team Discussion", - "description": "A team discussion is a persistent record of a free-form conversation within a team.", - "type": "object", - "properties": { - "author": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/full-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/full-repository" + } + } } - ] - }, - "body": { - "description": "The main text of the discussion.", - "example": "Please suggest improvements to our workflow in comments.", - "type": "string" - }, - "body_html": { - "type": "string", - "example": "

Hi! This is an area for us to collaborate as a team

" + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "schema": { + "type": "string" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/repositories": { + "get": { + "summary": "List public repositories", + "description": "Lists all public repositories in the order that they were created.\n\nNote:\n- For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise.\n- Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories.", + "tags": [ + "repos" + ], + "operationId": "repos/list-public", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#list-public-repositories" + }, + "parameters": [ + { + "$ref": "#/components/parameters/since-repo" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/public-repository-items" + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\"", + "schema": { + "type": "string" + } + } + } }, - "body_version": { - "description": "The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server.", - "example": "0307116bbf7ced493b8d8a346c650b71", - "type": "string" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "comments_count": { - "type": "integer", - "example": 0 + "304": { + "$ref": "#/components/responses/not_modified" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/search/code": { + "get": { + "summary": "Search code", + "description": "Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api).\n\nWhen searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata).\n\nFor example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this:\n\n`q=addClass+in:file+language:js+repo:jquery/jquery`\n\nThis query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository.\n\nConsiderations for code search:\n\nDue to the complexity of searching code, there are a few restrictions on how searches are performed:\n\n* Only the _default branch_ is considered. In most cases, this will be the `master` branch.\n* Only files smaller than 384 KB are searchable.\n* You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing\nlanguage:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is.\n\nThis endpoint requires you to authenticate and limits you to 10 requests per minute.", + "tags": [ + "search" + ], + "operationId": "search/code", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/search/search#search-code" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See \"[Searching code](https://docs.github.com/search-github/searching-on-github/searching-code)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { + "type": "string" + } }, - "comments_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/2343027/discussions/1/comments" + { + "name": "sort", + "deprecated": true, + "description": "**This field is closing down.** Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "indexed" + ] + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2018-01-25T18:56:31Z" + { + "name": "order", + "description": "**This field is closing down.** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. ", + "in": "query", + "deprecated": true, + "required": false, + "schema": { + "type": "string", + "enum": [ + "desc", + "asc" + ], + "default": "desc" + } }, - "last_edited_at": { - "type": "string", - "format": "date-time", - "nullable": true + { + "$ref": "#/components/parameters/per-page" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/orgs/github/teams/justice-league/discussions/1" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-search-result-item-paginated" + } + } + } + } }, - "node_id": { - "type": "string", - "example": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==" + "304": { + "$ref": "#/components/responses/not_modified" }, - "number": { - "description": "The unique sequence number of a team discussion.", - "example": 42, - "type": "integer" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - "pinned": { - "description": "Whether or not this discussion should be pinned for easy retrieval.", - "example": true, - "type": "boolean" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "private": { - "description": "Whether or not this discussion should be restricted to team members and organization administrators.", - "example": true, - "type": "boolean" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" + } + } + }, + "/search/commits": { + "get": { + "summary": "Search commits", + "description": "Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api).\n\nWhen searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match\nmetadata](https://docs.github.com/rest/search/search#text-match-metadata).\n\nFor example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this:\n\n`q=repo:octocat/Spoon-Knife+css`", + "tags": [ + "search" + ], + "operationId": "search/commits", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/search/search#search-commits" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See \"[Searching commits](https://docs.github.com/search-github/searching-on-github/searching-commits)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { + "type": "string" + } }, - "team_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/2343027" + { + "name": "sort", + "description": "Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "author-date", + "committer-date" + ] + } }, - "title": { - "description": "The title of the discussion.", - "example": "How can we improve our workflow?", - "type": "string" + { + "$ref": "#/components/parameters/order" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2018-01-25T18:56:31Z" + { + "$ref": "#/components/parameters/per-page" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/2343027/discussions/1" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-search-result-item-paginated" + } + } + } + } }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + "304": { + "$ref": "#/components/responses/not_modified" } }, - "required": [ - "author", - "body", - "body_html", - "body_version", - "comments_count", - "comments_url", - "created_at", - "last_edited_at", - "html_url", - "pinned", - "private", - "node_id", - "number", - "team_url", - "title", - "updated_at", - "url" - ] - }, - "team-discussion-comment": { - "title": "Team Discussion Comment", - "description": "A reply to a discussion within a team.", - "type": "object", - "properties": { - "author": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" + } + } + }, + "/search/issues": { + "get": { + "summary": "Search issues and pull requests", + "description": "Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api).\n\nWhen searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted\nsearch results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata).\n\nFor example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this.\n\n`q=windows+label:bug+language:python+state:open&sort=created&order=asc`\n\nThis query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results.\n\n> [!NOTE]\n> For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see \"[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests).\"", + "tags": [ + "search" + ], + "operationId": "search/issues-and-pull-requests", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/search/search#search-issues-and-pull-requests" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See \"[Searching issues and pull requests](https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { + "type": "string" + } }, - "body": { - "description": "The main text of the comment.", - "example": "I agree with this suggestion.", - "type": "string" + { + "name": "sort", + "description": "Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "comments", + "reactions", + "reactions-+1", + "reactions--1", + "reactions-smile", + "reactions-thinking_face", + "reactions-heart", + "reactions-tada", + "interactions", + "created", + "updated" + ] + } }, - "body_html": { - "type": "string", - "example": "

Do you like apples?

" + { + "$ref": "#/components/parameters/order" }, - "body_version": { - "description": "The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server.", - "example": "0307116bbf7ced493b8d8a346c650b71", - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2018-01-15T23:53:58Z" + { + "$ref": "#/components/parameters/page" }, - "last_edited_at": { - "type": "string", - "format": "date-time", - "nullable": true + { + "$ref": "#/components/parameters/issues-advanced-search" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-search-result-item-paginated" + } + } + } + } }, - "discussion_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/2403582/discussions/1" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "node_id": { - "type": "string", - "example": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=" + "304": { + "$ref": "#/components/responses/not_modified" }, - "number": { - "description": "The unique sequence number of a team discussion comment.", - "example": 42, - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" + } + } + }, + "/search/labels": { + "get": { + "summary": "Search labels", + "description": "Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api).\n\nWhen searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata).\n\nFor example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this:\n\n`q=bug+defect+enhancement&repository_id=64778136`\n\nThe labels that best match the query appear first in the search results.", + "tags": [ + "search" + ], + "operationId": "search/labels", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/search/search#search-labels" + }, + "parameters": [ + { + "name": "repository_id", + "description": "The id of the repository.", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2018-01-15T23:53:58Z" + { + "name": "q", + "description": "The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query).", + "in": "query", + "required": true, + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/organizations/1/team/2403582/discussions/1/comments/1" + { + "name": "sort", + "description": "Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ] + } }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" - } - }, - "required": [ - "author", - "body", - "body_html", - "body_version", - "created_at", - "last_edited_at", - "discussion_url", - "html_url", - "node_id", - "number", - "updated_at", - "url" - ] - }, - "reaction": { - "title": "Reaction", - "description": "Reactions to conversations provide a way to help people express their feelings more simply and effectively.", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1 + { + "$ref": "#/components/parameters/order" }, - "node_id": { - "type": "string", - "example": "MDg6UmVhY3Rpb24x" + { + "$ref": "#/components/parameters/per-page" }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/label-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/label-search-result-item-paginated" + } + } } - ] + } }, - "content": { - "description": "The reaction to use", - "example": "heart", - "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] + "304": { + "$ref": "#/components/responses/not_modified" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2016-05-20T20:09:31Z" - } - }, - "required": [ - "id", - "node_id", - "user", - "content", - "created_at" - ] - }, - "team-membership": { - "title": "Team Membership", - "description": "Team Membership", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" }, - "role": { - "description": "The role of the user in the team.", - "enum": [ - "member", - "maintainer" - ], - "default": "member", - "example": "member", - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "state": { - "description": "The state of the user's membership in the team.", - "type": "string", - "enum": [ - "active", - "pending" - ] + "422": { + "$ref": "#/components/responses/validation_failed" } }, - "required": [ - "role", - "state", - "url" - ] - }, - "team-project": { - "title": "Team Project", - "description": "A team's access to a project.", - "type": "object", - "properties": { - "owner_url": { - "type": "string" - }, - "url": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" + } + } + }, + "/search/repositories": { + "get": { + "summary": "Search repositories", + "description": "Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api).\n\nWhen searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata).\n\nFor example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this:\n\n`q=tetris+language:assembly&sort=stars&order=desc`\n\nThis query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results.", + "tags": [ + "search" + ], + "operationId": "search/repos", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/search/search#search-repositories" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See \"[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string" + { + "name": "sort", + "description": "Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "stars", + "forks", + "help-wanted-issues", + "updated" + ] + } }, - "columns_url": { - "type": "string" + { + "$ref": "#/components/parameters/order" }, - "id": { - "type": "integer" + { + "$ref": "#/components/parameters/per-page" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repo-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repo-search-result-item-paginated" + } + } + } + } }, - "name": { - "type": "string" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - "body": { - "type": "string", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" }, - "number": { - "type": "integer" + "304": { + "$ref": "#/components/responses/not_modified" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" + } + } + }, + "/search/topics": { + "get": { + "summary": "Search topics", + "description": "Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See \"[Searching topics](https://docs.github.com/articles/searching-topics/)\" for a detailed list of qualifiers.\n\nWhen searching for topics, you can get text match metadata for the topic's **short\\_description**, **description**, **name**, or **display\\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata).\n\nFor example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this:\n\n`q=ruby+is:featured`\n\nThis query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results.", + "tags": [ + "search" + ], + "operationId": "search/topics", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/search/search#search-topics" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query).", + "in": "query", + "required": true, + "schema": { + "type": "string" + } }, - "state": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "creator": { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/topic-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/topic-search-result-item-paginated" + } + } + } + } }, - "created_at": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" + } + } + }, + "/search/users": { + "get": { + "summary": "Search users", + "description": "Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api).\n\nWhen searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata).\n\nFor example, if you're looking for a list of popular users, you might try this query:\n\n`q=tom+repos:%3E42+followers:%3E1000`\n\nThis query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers.\n\nThis endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see \"[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search).\"", + "tags": [ + "search" + ], + "operationId": "search/users", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/search/search#search-users" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See \"[Searching users](https://docs.github.com/search-github/searching-on-github/searching-users)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string" + { + "name": "sort", + "description": "Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "followers", + "repositories", + "joined" + ] + } }, - "organization_permission": { - "description": "The organization permission for this project. Only present when owner is an organization.", - "type": "string" + { + "$ref": "#/components/parameters/order" }, - "private": { - "description": "Whether the project is private or not. Only present when owner is an organization.", - "type": "boolean" + { + "$ref": "#/components/parameters/per-page" }, - "permissions": { - "type": "object", - "properties": { - "read": { - "type": "boolean" - }, - "write": { - "type": "boolean" - }, - "admin": { - "type": "boolean" - } - }, - "required": [ - "read", - "write", - "admin" - ] + { + "$ref": "#/components/parameters/page" } - }, - "required": [ - "owner_url", - "url", - "html_url", - "columns_url", - "id", - "node_id", - "name", - "body", - "number", - "state", - "creator", - "created_at", - "updated_at", - "permissions" - ] - }, - "team-repository": { - "title": "Team Repository", - "description": "A team's access to a repository.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the repository", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/user-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-search-result-item-paginated" + } + } + } + } }, - "name": { - "description": "The name of the repository.", - "type": "string", - "example": "Team Environment" + "304": { + "$ref": "#/components/responses/not_modified" }, - "full_name": { - "type": "string", - "example": "octocat/Hello-World" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - "license": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/license-simple" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" + } + } + }, + "/teams/{team_id}": { + "get": { + "summary": "Get a team (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint.", + "tags": [ + "teams" + ], + "operationId": "teams/get-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#get-a-team-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-full" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-full" + } + } } - ] - }, - "forks": { - "type": "integer" + } }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "pull": { - "type": "boolean" - }, - "triage": { - "type": "boolean" - }, - "push": { - "type": "boolean" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + }, + "patch": { + "summary": "Update a team (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint.\n\nTo edit a team, the authenticated user must either be an organization owner or a team maintainer.\n\n> [!NOTE]\n> With nested teams, the `privacy` for parent teams cannot be `secret`.", + "tags": [ + "teams" + ], + "operationId": "teams/update-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#update-a-team-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the team." + }, + "description": { + "type": "string", + "description": "The description of the team." + }, + "privacy": { + "type": "string", + "description": "The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \n**For a parent or child team:** \n * `closed` - visible to all members of this organization.", + "enum": [ + "secret", + "closed" + ] + }, + "notification_setting": { + "type": "string", + "description": "The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications.", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] + }, + "permission": { + "type": "string", + "description": "**Closing down notice**. The permission that new repositories will be added to the team with when none is specified.", + "enum": [ + "pull", + "push", + "admin" + ], + "default": "pull" + }, + "parent_team_id": { + "type": "integer", + "description": "The ID of a team to set as the parent team.", + "nullable": true + } + }, + "required": [ + "name" + ] }, - "maintain": { - "type": "boolean" + "examples": { + "default": { + "value": { + "name": "new team name", + "description": "new team description", + "privacy": "closed", + "notification_setting": "notifications_enabled" + } + } } - }, - "required": [ - "admin", - "pull", - "push" - ] - }, - "owner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + } + } + }, + "responses": { + "200": { + "description": "Response when the updated information already exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-full" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-full" + } + } } - ] - }, - "private": { - "description": "Whether the repository is private or public.", - "default": false, - "type": "boolean" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World" + } }, - "description": { - "type": "string", - "example": "This your first repo!", - "nullable": true + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-full" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-full" + } + } + } + } }, - "fork": { - "type": "boolean" + "404": { + "$ref": "#/components/responses/not_found" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "archive_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + }, + "delete": { + "summary": "Delete a team (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint.\n\nTo delete a team, the authenticated user must be an organization owner or team maintainer.\n\nIf you are an organization owner, deleting a parent team will delete all of its child teams as well.", + "tags": [ + "teams" + ], + "operationId": "teams/delete-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#delete-a-team-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + "404": { + "$ref": "#/components/responses/not_found" }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + } + }, + "/teams/{team_id}/invitations": { + "get": { + "summary": "List pending team invitations (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint.\n\nThe return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.", + "tags": [ + "teams" + ], + "operationId": "teams/list-pending-invitations-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "branches_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + { + "$ref": "#/components/parameters/per-page" }, - "collaborators_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-invitation-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + } + }, + "/teams/{team_id}/members": { + "get": { + "summary": "List team members (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint.\n\nTeam members will include the members of child teams.", + "tags": [ + "teams" + ], + "operationId": "teams/list-members-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#list-team-members-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "comments_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + { + "name": "role", + "description": "Filters members returned by their role in the team.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "member", + "maintainer", + "all" + ], + "default": "all" + } }, - "commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + { + "$ref": "#/components/parameters/per-page" }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + } + }, + "/teams/{team_id}/members/{username}": { + "get": { + "summary": "Get team member (Legacy)", + "description": "The \"Get team member\" endpoint (described below) is closing down.\n\nWe recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships.\n\nTo list members in a team, the team must be visible to the authenticated user.", + "tags": [ + "teams" + ], + "operationId": "teams/get-member-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#get-team-member-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "contributors_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "if user is a member" }, - "deployments_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + "404": { + "description": "if user is not a member" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + }, + "put": { + "summary": "Add team member (Legacy)", + "description": "The \"Add team member\" endpoint (described below) is closing down.\n\nWe recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization.\n\n> [!NOTE]\n> When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nNote that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"", + "tags": [ + "teams" + ], + "operationId": "teams/add-member-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#add-team-member-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "downloads_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "events_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + "404": { + "description": "Not Found if team synchronization is set up" }, - "forks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + "422": { + "description": "Unprocessable Entity if you attempt to add an organization to a team or you attempt to add a user to a team when they are not a member of at least one other team in the same organization" }, - "git_commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + }, + "delete": { + "summary": "Remove team member (Legacy)", + "description": "The \"Remove team member\" endpoint (described below) is closing down.\n\nWe recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team.\n\n> [!NOTE]\n> When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"", + "tags": [ + "teams" + ], + "operationId": "teams/remove-member-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#remove-team-member-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + "404": { + "description": "Not Found if team synchronization is setup" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + } + }, + "/teams/{team_id}/memberships/{username}": { + "get": { + "summary": "Get team membership for a user (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint.\n\nTeam members will include the members of child teams.\n\nTo get a user's membership with a team, the team must be visible to the authenticated user.\n\n**Note:**\nThe response contains the `state` of the membership and the member's `role`.\n\nThe `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team).", + "tags": [ + "teams" + ], + "operationId": "teams/get-membership-for-user-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#get-team-membership-for-a-user-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "git_url": { - "type": "string", - "example": "git:github.com/octocat/Hello-World.git" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-membership" + }, + "examples": { + "response-if-user-is-a-team-maintainer": { + "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + } + } + } + } }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + }, + "put": { + "summary": "Add or update team membership for a user (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nIf the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer.\n\n> [!NOTE]\n> When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nIf the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the \"pending\" state until the user accepts the invitation, at which point the membership will transition to the \"active\" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner.\n\nIf the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.", + "tags": [ + "teams" + ], + "operationId": "teams/add-or-update-membership-for-user-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + { + "$ref": "#/components/parameters/username" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "The role that this user should have in the team.", + "enum": [ + "member", + "maintainer" + ], + "default": "member" + } + } + }, + "examples": { + "default": { + "summary": "Assign the member role for a user in a team", + "value": { + "role": "member" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-membership" + }, + "examples": { + "response-if-users-membership-with-team-is-now-pending": { + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + } + } + } + } }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + "403": { + "description": "Forbidden if team synchronization is set up" }, - "keys_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + "422": { + "description": "Unprocessable Entity if you attempt to add an organization to a team" }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + }, + "delete": { + "summary": "Remove team membership for a user (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.\n\n> [!NOTE]\n> When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"", + "tags": [ + "teams" + ], + "operationId": "teams/remove-membership-for-user-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "merges_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" - }, - "milestones_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" - }, - "notifications_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" - }, - "pulls_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" - }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" - }, - "ssh_url": { - "type": "string", - "example": "git@github.com:octocat/Hello-World.git" - }, - "stargazers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" - }, - "statuses_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" - }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" - }, - "subscription_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" - }, - "tags_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" - }, - "teams_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + "403": { + "description": "if team synchronization is set up" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true + } + }, + "/teams/{team_id}/repos": { + "get": { + "summary": "List team repositories (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint.", + "tags": [ + "teams" + ], + "operationId": "teams/list-repos-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#list-team-repositories-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "trees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + { + "$ref": "#/components/parameters/per-page" }, - "clone_url": { - "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "mirror_url": { - "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + } + }, + "/teams/{team_id}/repos/{owner}/{repo}": { + "get": { + "summary": "Check team permissions for a repository (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint.\n\n> [!NOTE]\n> Repositories inherited through a parent team will also be checked.\n\nYou can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types/) via the `Accept` header:", + "tags": [ + "teams" + ], + "operationId": "teams/check-permissions-for-repo-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "hooks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + { + "$ref": "#/components/parameters/owner" }, - "svn_url": { - "type": "string", - "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "200": { + "description": "Alternative response with extra repository information", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-repository" + }, + "examples": { + "alternative-response-with-extra-repository-information": { + "$ref": "#/components/examples/team-repository-alternative-response-with-extra-repository-information" + } + } + } + } }, - "homepage": { - "type": "string", - "format": "uri", - "example": "https://github.com", - "nullable": true + "204": { + "description": "Response if repository is managed by this team" }, - "language": { - "type": "string", - "nullable": true + "404": { + "description": "Not Found if repository is not managed by this team" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + }, + "put": { + "summary": "Add or update team repository permissions (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new \"[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)\" endpoint.\n\nTo add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization.\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"", + "tags": [ + "teams" + ], + "operationId": "teams/add-or-update-repo-permissions-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "forks_count": { - "type": "integer", - "example": 9 + { + "$ref": "#/components/parameters/owner" }, - "stargazers_count": { - "type": "integer", - "example": 80 + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant the team on this repository. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository.", + "enum": [ + "pull", + "push", + "admin" + ] + } + } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" }, - "watchers_count": { - "type": "integer", - "example": 80 + "403": { + "$ref": "#/components/responses/forbidden" }, - "size": { - "type": "integer", - "example": 108 + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + }, + "delete": { + "summary": "Remove a repository from a team (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint.\n\nIf the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team.", + "tags": [ + "teams" + ], + "operationId": "teams/remove-repo-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "default_branch": { - "description": "The default branch of the repository.", - "type": "string", - "example": "master" + { + "$ref": "#/components/parameters/owner" }, - "open_issues_count": { - "type": "integer", - "example": 0 + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + } + }, + "/teams/{team_id}/teams": { + "get": { + "summary": "List child teams (Legacy)", + "description": "> [!WARNING]\n> **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint.", + "tags": [ + "teams" + ], + "operationId": "teams/list-child-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#list-child-teams-legacy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/team-id" }, - "is_template": { - "description": "Whether this repository acts as a template that can be used to generate new repositories.", - "default": false, - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/per-page" }, - "topics": { - "type": "array", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "if child teams exist", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "examples": { + "response-if-child-teams-exist": { + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "has_issues": { - "description": "Whether issues are enabled.", - "default": true, - "type": "boolean", - "example": true - }, - "has_projects": { - "description": "Whether projects are enabled.", - "default": true, - "type": "boolean", - "example": true + "404": { + "$ref": "#/components/responses/not_found" }, - "has_wiki": { - "description": "Whether the wiki is enabled.", - "default": true, - "type": "boolean", - "example": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "has_pages": { - "type": "boolean" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true + } + }, + "/user": { + "get": { + "summary": "Get the authenticated user", + "description": "OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information.", + "tags": [ + "users" + ], + "operationId": "users/get-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#get-the-authenticated-user" + }, + "parameters": [], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/private-user" + }, + { + "$ref": "#/components/schemas/public-user" + } + ], + "discriminator": { + "propertyName": "user_view_type", + "mapping": { + "public": "#/components/schemas/public-user", + "private": "#/components/schemas/private-user" + } + } + }, + "examples": { + "response-with-public-and-private-profile-information": { + "$ref": "#/components/examples/private-user-response-with-public-and-private-profile-information" + }, + "response-with-public-profile-information": { + "$ref": "#/components/examples/private-user-response-with-public-profile-information" + } + } + } + } }, - "has_downloads": { - "description": "Whether downloads are enabled.", - "default": true, - "type": "boolean", - "example": true + "304": { + "$ref": "#/components/responses/not_modified" }, - "archived": { - "description": "Whether the repository is archived.", - "default": false, - "type": "boolean" + "403": { + "$ref": "#/components/responses/forbidden" }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "users" + } + }, + "patch": { + "summary": "Update the authenticated user", + "description": "**Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.", + "tags": [ + "users" + ], + "operationId": "users/update-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#update-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "The new name of the user.", + "type": "string", + "example": "Omar Jahandar" + }, + "email": { + "description": "The publicly visible email address of the user.", + "type": "string", + "example": "omar@example.com" + }, + "blog": { + "description": "The new blog URL of the user.", + "type": "string", + "example": "blog.example.com" + }, + "twitter_username": { + "description": "The new Twitter username of the user.", + "type": "string", + "example": "therealomarj", + "nullable": true + }, + "company": { + "description": "The new company of the user.", + "type": "string", + "example": "Acme corporation" + }, + "location": { + "description": "The new location of the user.", + "type": "string", + "example": "Berlin, Germany" + }, + "hireable": { + "description": "The new hiring availability of the user.", + "type": "boolean" + }, + "bio": { + "description": "The new short biography of the user.", + "type": "string" + } + } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/private-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/private-user" + } + } + } + } }, - "visibility": { - "description": "The repository visibility: public, private, or internal.", - "default": "public", - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "pushed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:14:43Z", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "allow_rebase_merge": { - "description": "Whether to allow rebase merges for pull requests.", - "default": true, - "type": "boolean", - "example": true + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "users" + } + } + }, + "/user/blocks": { + "get": { + "summary": "List users blocked by the authenticated user", + "description": "List the users you've blocked on your personal account.", + "tags": [ + "users" + ], + "operationId": "users/list-blocked-by-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "template_repository": { - "type": "object", - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/repository" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } } - ] - }, - "temp_clone_token": { - "type": "string" - }, - "allow_squash_merge": { - "description": "Whether to allow squash merges for pull requests.", - "default": true, - "type": "boolean", - "example": true + } }, - "allow_auto_merge": { - "description": "Whether to allow Auto-merge to be used on pull requests.", - "default": false, - "type": "boolean", - "example": false + "304": { + "$ref": "#/components/responses/not_modified" }, - "delete_branch_on_merge": { - "description": "Whether to delete head branches when pull requests are merged", - "default": false, - "type": "boolean", - "example": false + "404": { + "$ref": "#/components/responses/not_found" }, - "allow_merge_commit": { - "description": "Whether to allow merge commits for pull requests.", - "default": true, - "type": "boolean", - "example": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "subscribers_count": { - "type": "integer" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "blocking" + } + } + }, + "/user/blocks/{username}": { + "get": { + "summary": "Check if a user is blocked by the authenticated user", + "description": "Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub.", + "tags": [ + "users" + ], + "operationId": "users/check-blocked", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "If the user is blocked" }, - "network_count": { - "type": "integer" + "404": { + "description": "If the user is not blocked", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } }, - "open_issues": { - "type": "integer" + "304": { + "$ref": "#/components/responses/not_modified" }, - "watchers": { - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" }, - "master_branch": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "archive_url", - "assignees_url", - "blobs_url", - "branches_url", - "collaborators_url", - "comments_url", - "commits_url", - "compare_url", - "contents_url", - "contributors_url", - "deployments_url", - "description", - "downloads_url", - "events_url", - "fork", - "forks_url", - "full_name", - "git_commits_url", - "git_refs_url", - "git_tags_url", - "hooks_url", - "html_url", - "id", - "node_id", - "issue_comment_url", - "issue_events_url", - "issues_url", - "keys_url", - "labels_url", - "languages_url", - "merges_url", - "milestones_url", - "name", - "notifications_url", - "owner", - "private", - "pulls_url", - "releases_url", - "stargazers_url", - "statuses_url", - "subscribers_url", - "subscription_url", - "tags_url", - "teams_url", - "trees_url", - "url", - "clone_url", - "default_branch", - "forks", - "forks_count", - "git_url", - "has_downloads", - "has_issues", - "has_projects", - "has_wiki", - "has_pages", - "homepage", - "language", - "archived", - "disabled", - "mirror_url", - "open_issues", - "open_issues_count", - "license", - "pushed_at", - "size", - "ssh_url", - "stargazers_count", - "svn_url", - "watchers", - "watchers_count", - "created_at", - "updated_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "blocking" + } }, - "project-card": { - "title": "Project Card", - "description": "Project cards represent a scope of work.", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/columns/cards/1478" - }, - "id": { - "description": "The project card's ID", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDExOlByb2plY3RDYXJkMTQ3OA==" - }, - "note": { - "type": "string", - "example": "Add payload for delete Project column", - "nullable": true + "put": { + "summary": "Block a user", + "description": "Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned.", + "tags": [ + "users" + ], + "operationId": "users/block", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/blocking#block-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "creator": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "304": { + "$ref": "#/components/responses/not_modified" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2016-09-05T14:21:06Z" + "404": { + "$ref": "#/components/responses/not_found" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2016-09-05T14:20:22Z" + "403": { + "$ref": "#/components/responses/forbidden" }, - "archived": { - "description": "Whether or not the card is archived", - "example": false, - "type": "boolean" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "column_name": { - "type": "string" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "blocking" + } + }, + "delete": { + "summary": "Unblock a user", + "description": "Unblocks the given user and returns a 204.", + "tags": [ + "users" + ], + "operationId": "users/unblock", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/blocking#unblock-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "project_id": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "column_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/columns/367" + "403": { + "$ref": "#/components/responses/forbidden" }, - "content_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/api-playground/projects-test/issues/3" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "project_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/120" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "node_id", - "note", - "url", - "column_url", - "project_url", - "creator", - "created_at", - "updated_at" - ] - }, - "project-column": { - "title": "Project Column", - "description": "Project columns contain cards of work.", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/columns/367" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "blocking" + } + } + }, + "/user/codespaces": { + "get": { + "summary": "List codespaces for the authenticated user", + "description": "Lists the authenticated user's codespaces.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "project_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/120" + { + "$ref": "#/components/parameters/page" }, - "cards_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/projects/columns/367/cards" + { + "$ref": "#/components/parameters/repository-id-in-query" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespaces-list" + } + } + } + } }, - "id": { - "description": "The unique identifier of the project column", - "example": 42, - "type": "integer" + "304": { + "$ref": "#/components/responses/not_modified" }, - "node_id": { - "type": "string", - "example": "MDEzOlByb2plY3RDb2x1bW4zNjc=" + "500": { + "$ref": "#/components/responses/internal_error" }, - "name": { - "description": "Name of the project column", - "example": "Remaining tasks", - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2016-09-05T14:18:44Z" + "403": { + "$ref": "#/components/responses/forbidden" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2016-09-05T14:22:28Z" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "node_id", - "url", - "project_url", - "cards_url", - "name", - "created_at", - "updated_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } }, - "repository-collaborator-permission": { - "title": "Repository Collaborator Permission", - "description": "Repository Collaborator Permission", - "type": "object", - "properties": { - "permission": { - "type": "string" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "post": { + "summary": "Create a codespace for the authenticated user", + "description": "Creates a new codespace, owned by the authenticated user.\n\nThis endpoint requires either a `repository_id` OR a `pull_request` but not both.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/create-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-for-the-authenticated-user" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "required": [ + "repository_id" + ], + "properties": { + "repository_id": { + "description": "Repository id for this codespace", + "type": "integer" + }, + "ref": { + "description": "Git ref (typically a branch name) for this codespace", + "type": "string" + }, + "location": { + "description": "The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided.", + "type": "string" + }, + "geo": { + "description": "The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is closing down.", + "type": "string", + "enum": [ + "EuropeWest", + "SoutheastAsia", + "UsEast", + "UsWest" + ] + }, + "client_ip": { + "description": "IP for location auto-detection when proxying a request", + "type": "string" + }, + "machine": { + "description": "Machine type to use for this codespace", + "type": "string" + }, + "devcontainer_path": { + "description": "Path to devcontainer.json config to use for this codespace", + "type": "string" + }, + "multi_repo_permissions_opt_out": { + "description": "Whether to authorize requested permissions from devcontainer.json", + "type": "boolean" + }, + "working_directory": { + "description": "Working directory for this codespace", + "type": "string" + }, + "idle_timeout_minutes": { + "description": "Time in minutes before codespace stops from inactivity", + "type": "integer" + }, + "display_name": { + "description": "Display name for this codespace", + "type": "string" + }, + "retention_period_minutes": { + "description": "Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days).", + "type": "integer" + } + } + }, + { + "type": "object", + "required": [ + "pull_request" + ], + "properties": { + "pull_request": { + "required": [ + "pull_request_number", + "repository_id" + ], + "description": "Pull request number for this codespace", + "type": "object", + "properties": { + "pull_request_number": { + "description": "Pull request number", + "type": "integer" + }, + "repository_id": { + "description": "Repository id for this codespace", + "type": "integer" + } + } + }, + "location": { + "description": "The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided.", + "type": "string" + }, + "geo": { + "description": "The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is closing down.", + "type": "string", + "enum": [ + "EuropeWest", + "SoutheastAsia", + "UsEast", + "UsWest" + ] + }, + "machine": { + "description": "Machine type to use for this codespace", + "type": "string" + }, + "devcontainer_path": { + "description": "Path to devcontainer.json config to use for this codespace", + "type": "string" + }, + "working_directory": { + "description": "Working directory for this codespace", + "type": "string" + }, + "idle_timeout_minutes": { + "description": "Time in minutes before codespace stops from inactivity", + "type": "integer" + } + } + } + ] + }, + "examples": { + "default": { + "value": { + "repository_id": 1, + "ref": "main", + "geo": "UsWest" + } + } } - ] + } } }, - "required": [ - "permission", - "user" - ] - }, - "rate-limit": { - "title": "Rate Limit", - "type": "object", - "properties": { - "limit": { - "type": "integer" + "responses": { + "201": { + "description": "Response when the codespace was successfully created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } }, - "remaining": { - "type": "integer" + "202": { + "description": "Response when the codespace creation partially failed but is being retried in the background", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } }, - "reset": { - "type": "integer" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "used": { - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "limit", - "remaining", - "reset", - "used" - ] - }, - "rate-limit-overview": { - "title": "Rate Limit Overview", - "description": "Rate Limit Overview", - "type": "object", - "properties": { - "resources": { - "type": "object", - "properties": { - "core": { - "$ref": "#/components/schemas/rate-limit" - }, - "graphql": { - "$ref": "#/components/schemas/rate-limit" - }, - "search": { - "$ref": "#/components/schemas/rate-limit" - }, - "source_import": { - "$ref": "#/components/schemas/rate-limit" - }, - "integration_manifest": { - "$ref": "#/components/schemas/rate-limit" - }, - "code_scanning_upload": { - "$ref": "#/components/schemas/rate-limit" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/user/codespaces/secrets": { + "get": { + "summary": "List secrets for the authenticated user", + "description": "Lists all development environment secrets available for a user's codespaces without revealing their\nencrypted values.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/list-secrets-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespaces-secret" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repo-codespaces-secret-paginated" + } + } } }, - "required": [ - "core", - "search" - ] - }, - "rate": { - "$ref": "#/components/schemas/rate-limit" + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "rate", - "resources" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } + } + }, + "/user/codespaces/secrets/public-key": { + "get": { + "summary": "Get public key for the authenticated user", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/get-public-key-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user" + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespaces-user-public-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespaces-user-public-key" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } + } + }, + "/user/codespaces/secrets/{secret_name}": { + "get": { + "summary": "Get a secret for the authenticated user", + "description": "Gets a development environment secret available to a user's codespaces without revealing its encrypted value.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/get-secret-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#get-a-secret-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/secret-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespaces-secret" + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-codespaces-secret" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } }, - "code-of-conduct-simple": { - "title": "Code Of Conduct Simple", - "description": "Code of Conduct Simple", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/github/docs/community/code_of_conduct" + "put": { + "summary": "Create or update a secret for the authenticated user", + "description": "Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see \"[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api).\"\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/create-or-update-secret-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#create-or-update-a-secret-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/secret-name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get the public key for the authenticated user](https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the user secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Set selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints.", + "items": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } + } + }, + "required": [ + "key_id" + ] + }, + "examples": { + "default": { + "value": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "selected_repository_ids": [ + "1234567", + "2345678" + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response after successfully creating a secret", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } }, - "key": { - "type": "string", - "example": "citizen_code_of_conduct" + "204": { + "description": "Response after successfully updating a secret" }, - "name": { - "type": "string", - "example": "Citizen Code of Conduct" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "html_url": { - "type": "string", - "nullable": true, - "format": "uri", - "example": "https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "url", - "key", - "name", - "html_url" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } }, - "full-repository": { - "title": "Full Repository", - "description": "Full Repository", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1296269 - }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" - }, - "name": { - "type": "string", - "example": "Hello-World" - }, - "full_name": { - "type": "string", - "example": "octocat/Hello-World" - }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "delete": { + "summary": "Delete a secret for the authenticated user", + "description": "Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/delete-secret-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#delete-a-secret-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/secret-name" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } + } + }, + "/user/codespaces/secrets/{secret_name}/repositories": { + "get": { + "summary": "List selected repositories for a user secret", + "description": "List the repositories that have been granted the ability to use a user's development environment secret.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/list-repositories-for-secret-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/secret-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-paginated" + } + } + } + } }, - "private": { - "type": "boolean" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World" + "403": { + "$ref": "#/components/responses/forbidden" }, - "description": { - "type": "string", - "example": "This your first repo!", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "fork": { - "type": "boolean" + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } + }, + "put": { + "summary": "Set selected repositories for a user secret", + "description": "Select the repositories that will use a user's development environment secret.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/set-repositories-for-secret-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/secret-name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids for which a codespace can access the secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Add a selected repository to a user secret](https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "selected_repository_ids" + ] + }, + "examples": { + "default": { + "value": { + "selected_repository_ids": [ + "1296269", + "1296280" + ] + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content when repositories were added to the selected list" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "archive_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + "403": { + "$ref": "#/components/responses/forbidden" }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + "404": { + "$ref": "#/components/responses/not_found" }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } + } + }, + "/user/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + "put": { + "summary": "Add a selected repository to a user secret", + "description": "Adds a repository to the selected repositories for a user's development environment secret.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/add-repository-for-secret-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/secret-name" }, - "branches_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "No Content when repository was added to the selected list" }, - "collaborators_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "comments_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + "403": { + "$ref": "#/components/responses/forbidden" }, - "commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + "404": { + "$ref": "#/components/responses/not_found" }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Remove a selected repository from a user secret", + "description": "Removes a repository from the selected repositories for a user's development environment secret.\n\nThe authenticated user must have Codespaces access to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/remove-repository-for-secret-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/secret-name" }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "No Content when repository was removed from the selected list" }, - "contributors_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "deployments_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + "403": { + "$ref": "#/components/responses/forbidden" }, - "downloads_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + "404": { + "$ref": "#/components/responses/not_found" }, - "events_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + "500": { + "$ref": "#/components/responses/internal_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" + } + } + }, + "/user/codespaces/{codespace_name}": { + "get": { + "summary": "Get a codespace for the authenticated user", + "description": "Gets information about a user's codespace.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/get-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#get-a-codespace-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } }, - "forks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + "304": { + "$ref": "#/components/responses/not_modified" }, - "git_commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + "500": { + "$ref": "#/components/responses/internal_error" }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + "403": { + "$ref": "#/components/responses/forbidden" }, - "git_url": { - "type": "string", - "example": "git:github.com/octocat/Hello-World.git" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + }, + "patch": { + "summary": "Update a codespace for the authenticated user", + "description": "Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint.\n\nIf you specify a new machine type it will be applied the next time your codespace is started.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/update-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#update-a-codespace-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "machine": { + "description": "A valid machine to transition this codespace to.", + "type": "string" + }, + "display_name": { + "description": "Display name for this codespace", + "type": "string" + }, + "recent_folders": { + "description": "Recently opened folders inside the codespace. It is currently used by the clients to determine the folder path to load the codespace in.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "default": { + "value": { + "machine": "standardLinux" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + "403": { + "$ref": "#/components/responses/forbidden" }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + }, + "delete": { + "summary": "Delete a codespace for the authenticated user", + "description": "Deletes a user's codespace.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/delete-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#delete-a-codespace-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "202": { + "$ref": "#/components/responses/accepted" }, - "keys_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + "304": { + "$ref": "#/components/responses/not_modified" }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + "500": { + "$ref": "#/components/responses/internal_error" }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "merges_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" + "403": { + "$ref": "#/components/responses/forbidden" }, - "milestones_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/user/codespaces/{codespace_name}/exports": { + "post": { + "summary": "Export a codespace for the authenticated user", + "description": "Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored.\n\nIf changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/export-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace-export-details" + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-export-details" + } + } + } + } }, - "notifications_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + "500": { + "$ref": "#/components/responses/internal_error" }, - "pulls_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + "403": { + "$ref": "#/components/responses/forbidden" }, - "ssh_url": { - "type": "string", - "example": "git@github.com:octocat/Hello-World.git" + "404": { + "$ref": "#/components/responses/not_found" }, - "stargazers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/user/codespaces/{codespace_name}/exports/{export_id}": { + "get": { + "summary": "Get details about a codespace export", + "description": "Gets information about an export of a codespace.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/get-export-details-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#get-details-about-a-codespace-export" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" }, - "statuses_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + { + "$ref": "#/components/parameters/export-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace-export-details" + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-export-details" + } + } + } + } }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/user/codespaces/{codespace_name}/machines": { + "get": { + "summary": "List machine types for a codespace", + "description": "List the machine types a codespace can transition to use.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/codespace-machines-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/machines#list-machine-types-for-a-codespace" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "machines" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace-machine" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace-machines-list" + } + } + } + } }, - "subscription_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + "304": { + "$ref": "#/components/responses/not_modified" }, - "tags_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + "500": { + "$ref": "#/components/responses/internal_error" }, - "teams_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "trees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + "403": { + "$ref": "#/components/responses/forbidden" }, - "clone_url": { - "type": "string", - "example": "https://github.com/octocat/Hello-World.git" - }, - "mirror_url": { - "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", - "nullable": true - }, - "hooks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/hooks" - }, - "svn_url": { - "type": "string", - "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" - }, - "homepage": { - "type": "string", - "format": "uri", - "example": "https://github.com", - "nullable": true - }, - "language": { - "type": "string", - "nullable": true - }, - "forks_count": { - "type": "integer", - "example": 9 - }, - "stargazers_count": { - "type": "integer", - "example": 80 - }, - "watchers_count": { - "type": "integer", - "example": 80 - }, - "size": { - "type": "integer", - "example": 108 - }, - "default_branch": { - "type": "string", - "example": "master" - }, - "open_issues_count": { - "type": "integer", - "example": 0 - }, - "is_template": { - "type": "boolean", - "example": true - }, - "topics": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "octocat", - "atom", - "electron", - "API" - ] - }, - "has_issues": { - "type": "boolean", - "example": true - }, - "has_projects": { - "type": "boolean", - "example": true - }, - "has_wiki": { - "type": "boolean", - "example": true - }, - "has_pages": { - "type": "boolean" - }, - "has_downloads": { - "type": "boolean", - "example": true - }, - "archived": { - "type": "boolean" - }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." - }, - "visibility": { - "description": "The repository visibility: public, private, or internal.", - "type": "string", - "example": "public" - }, - "pushed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:14:43Z" - }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "pull": { - "type": "boolean" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "machines" + } + } + }, + "/user/codespaces/{codespace_name}/publish": { + "post": { + "summary": "Create a repository from an unpublished codespace", + "description": "Publishes an unpublished codespace, creating a new repository and assigning it to the codespace.\n\nThe codespace's token is granted write permissions to the repository, allowing the user to push their changes.\n\nThis will fail for a codespace that is already published, meaning it has an associated repository.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/publish-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-repository-from-an-unpublished-codespace" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "A name for the new repository.", + "type": "string" + }, + "private": { + "description": "Whether the new repository should be private.", + "type": "boolean", + "default": false + } + } }, - "push": { - "type": "boolean" + "examples": { + "default": { + "value": { + "repository": "monalisa-octocat-hello-world-g4wpq6h95q", + "private": false + } + } } - }, - "required": [ - "admin", - "pull", - "push" - ] - }, - "allow_rebase_merge": { - "type": "boolean", - "example": true - }, - "template_repository": { - "nullable": true, - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/repository" + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace-with-full-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace-with-full-repository" + } + } } - ] + } }, - "temp_clone_token": { - "type": "string", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "allow_squash_merge": { - "type": "boolean", - "example": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "allow_auto_merge": { - "type": "boolean", - "example": false + "404": { + "$ref": "#/components/responses/not_found" }, - "delete_branch_on_merge": { - "type": "boolean", - "example": false + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/user/codespaces/{codespace_name}/start": { + "post": { + "summary": "Start a codespace for the authenticated user", + "description": "Starts a user's codespace.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/start-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } }, - "allow_merge_commit": { - "type": "boolean", - "example": true + "304": { + "$ref": "#/components/responses/not_modified" }, - "subscribers_count": { - "type": "integer", - "example": 42 + "500": { + "$ref": "#/components/responses/internal_error" }, - "network_count": { - "type": "integer", - "example": 0 + "400": { + "$ref": "#/components/responses/bad_request" }, - "license": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/license-simple" - } - ] + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "organization": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "402": { + "description": "Payment required", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } - ] - }, - "parent": { - "$ref": "#/components/schemas/repository" - }, - "source": { - "$ref": "#/components/schemas/repository" + } }, - "forks": { - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" }, - "master_branch": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "open_issues": { - "type": "integer" + "409": { + "$ref": "#/components/responses/conflict" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/user/codespaces/{codespace_name}/stop": { + "post": { + "summary": "Stop a codespace for the authenticated user", + "description": "Stops a user's codespace.\n\nOAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.", + "tags": [ + "codespaces" + ], + "operationId": "codespaces/stop-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } }, - "watchers": { - "type": "integer" + "500": { + "$ref": "#/components/responses/internal_error" }, - "anonymous_access_enabled": { - "description": "Whether anonymous git access is allowed.", - "default": true, - "type": "boolean" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "code_of_conduct": { - "$ref": "#/components/schemas/code-of-conduct-simple" + "403": { + "$ref": "#/components/responses/forbidden" }, - "security_and_analysis": { - "nullable": true, - "type": "object", - "properties": { - "advanced_security": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ] + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" + } + } + }, + "/user/docker/conflicts": { + "get": { + "summary": "Get list of conflicting packages during Docker migration for authenticated-user", + "description": "Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint.", + "tags": [ + "packages" + ], + "operationId": "packages/list-docker-migration-conflicting-packages-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-authenticated-user" + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-for-user" } } - }, - "secret_scanning": { - "type": "object", + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/user/email/visibility": { + "patch": { + "summary": "Set primary email visibility for the authenticated user", + "description": "Sets the visibility for your primary email addresses.", + "tags": [ + "users" + ], + "operationId": "users/set-primary-email-visibility-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "properties": { - "status": { + "visibility": { + "description": "Denotes whether an email is publicly visible.", "type": "string", "enum": [ - "enabled", - "disabled" + "public", + "private" ] } + }, + "required": [ + "visibility" + ], + "type": "object" + }, + "examples": { + "default": { + "summary": "Example setting the primary email address to private", + "value": { + "visibility": "private" + } } } } } }, - "required": [ - "archive_url", - "assignees_url", - "blobs_url", - "branches_url", - "collaborators_url", - "comments_url", - "commits_url", - "compare_url", - "contents_url", - "contributors_url", - "deployments_url", - "description", - "downloads_url", - "events_url", - "fork", - "forks_url", - "full_name", - "git_commits_url", - "git_refs_url", - "git_tags_url", - "hooks_url", - "html_url", - "id", - "node_id", - "issue_comment_url", - "issue_events_url", - "issues_url", - "keys_url", - "labels_url", - "languages_url", - "merges_url", - "milestones_url", - "name", - "notifications_url", - "owner", - "private", - "pulls_url", - "releases_url", - "stargazers_url", - "statuses_url", - "subscribers_url", - "subscription_url", - "tags_url", - "teams_url", - "trees_url", - "url", - "clone_url", - "default_branch", - "forks", - "forks_count", - "git_url", - "has_downloads", - "has_issues", - "has_projects", - "has_wiki", - "has_pages", - "homepage", - "language", - "archived", - "disabled", - "mirror_url", - "open_issues", - "open_issues_count", - "license", - "pushed_at", - "size", - "ssh_url", - "stargazers_count", - "svn_url", - "watchers", - "watchers_count", - "created_at", - "updated_at", - "network_count", - "subscribers_count" - ] - }, - "artifact": { - "title": "Artifact", - "description": "An artifact", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 5 - }, - "node_id": { - "type": "string", - "example": "MDEwOkNoZWNrU3VpdGU1" - }, - "name": { - "description": "The name of the artifact.", - "type": "string", - "example": "AdventureWorks.Framework" - }, - "size_in_bytes": { - "description": "The size in bytes of the artifact.", - "type": "integer", - "example": 12345 - }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/email-items-3" + } + } + } + } }, - "archive_download_url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip" + "304": { + "$ref": "#/components/responses/not_modified" }, - "expired": { - "description": "Whether or not the artifact has expired.", - "type": "boolean" + "404": { + "$ref": "#/components/responses/not_found" }, - "created_at": { - "type": "string", - "format": "date-time", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "expires_at": { - "type": "string", - "format": "date-time", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "updated_at": { - "type": "string", - "format": "date-time", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" } }, - "required": [ - "id", - "node_id", - "name", - "size_in_bytes", - "url", - "archive_download_url", - "expired", - "created_at", - "expires_at", - "updated_at" - ] - }, - "job": { - "title": "Job", - "description": "Information of a job execution in a workflow run", - "type": "object", - "properties": { - "id": { - "description": "The id of the job.", - "example": 21, - "type": "integer" - }, - "run_id": { - "description": "The id of the associated workflow run.", - "example": 5, - "type": "integer" - }, - "run_url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" - }, - "node_id": { - "type": "string", - "example": "MDg6Q2hlY2tSdW40" - }, - "head_sha": { - "description": "The SHA of the commit that is being run.", - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" - }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/jobs/21" - }, - "html_url": { - "type": "string", - "example": "https://github.com/github/hello-world/runs/4", - "nullable": true - }, - "status": { - "description": "The phase of the lifecycle that the job is currently in.", - "example": "queued", - "type": "string", - "enum": [ - "queued", - "in_progress", - "completed" - ] - }, - "conclusion": { - "description": "The outcome of the job.", - "example": "success", - "type": "string", - "nullable": true - }, - "started_at": { - "description": "The time that the job started, in ISO 8601 format.", - "example": "2019-08-08T08:00:00-07:00", - "format": "date-time", - "type": "string" - }, - "completed_at": { - "description": "The time that the job finished, in ISO 8601 format.", - "example": "2019-08-08T08:00:00-07:00", - "format": "date-time", - "type": "string", - "nullable": true - }, - "name": { - "description": "The name of the job.", - "example": "test-coverage", - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" + } + } + }, + "/user/emails": { + "get": { + "summary": "List email addresses for the authenticated user", + "description": "Lists all of your email addresses, and specifies which one is visible\nto the public.\n\nOAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/list-emails-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "steps": { - "description": "Steps in this job.", - "type": "array", - "items": { - "type": "object", - "required": [ - "name", - "status", - "conclusion", - "number" - ], - "properties": { - "status": { - "description": "The phase of the lifecycle that the job is currently in.", - "example": "queued", - "type": "string", - "enum": [ - "queued", - "in_progress", - "completed" - ] - }, - "conclusion": { - "description": "The outcome of the job.", - "example": "success", - "type": "string", - "nullable": true - }, - "name": { - "description": "The name of the job.", - "example": "test-coverage", - "type": "string" - }, - "number": { - "type": "integer", - "example": 1 - }, - "started_at": { - "description": "The time that the step started, in ISO 8601 format.", - "example": "2019-08-08T08:00:00-07:00", - "format": "date-time", - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } }, - "completed_at": { - "description": "The time that the job finished, in ISO 8601 format.", - "example": "2019-08-08T08:00:00-07:00", - "format": "date-time", - "type": "string", - "nullable": true + "examples": { + "default": { + "$ref": "#/components/examples/email-items-2" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "check_run_url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/check-runs/4" - } - }, - "required": [ - "id", - "node_id", - "run_id", - "run_url", - "head_sha", - "name", - "url", - "html_url", - "status", - "conclusion", - "started_at", - "completed_at", - "check_run_url" - ] - }, - "actions-enabled": { - "type": "boolean", - "description": "Whether GitHub Actions is enabled on the repository." - }, - "actions-repository-permissions": { - "type": "object", - "properties": { - "enabled": { - "$ref": "#/components/schemas/actions-enabled" + "304": { + "$ref": "#/components/responses/not_modified" }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" + "404": { + "$ref": "#/components/responses/not_found" }, - "selected_actions_url": { - "$ref": "#/components/schemas/selected-actions-url" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "enabled" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" + } }, - "pull-request-minimal": { - "title": "Pull Request Minimal", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "number": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "head": { - "type": "object", - "properties": { - "ref": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "repo": { - "type": "object", - "properties": { - "id": { - "type": "integer" + "post": { + "summary": "Add an email address for the authenticated user", + "description": "OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/add-email-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "emails": { + "description": "Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", + "type": "array", + "items": { + "type": "string", + "example": "username@example.com" + }, + "minItems": 1, + "example": [] + } + }, + "required": [ + "emails" + ], + "example": { + "emails": [ + "octocat@github.com", + "mona@github.com" + ] + } }, - "url": { - "type": "string" + { + "type": "array", + "items": { + "type": "string", + "example": "username@example.com" + }, + "minItems": 1 }, - "name": { + { "type": "string" } - }, - "required": [ - "id", - "url", - "name" ] - } - }, - "required": [ - "ref", - "sha", - "repo" - ] - }, - "base": { - "type": "object", - "properties": { - "ref": { - "type": "string" }, - "sha": { - "type": "string" - }, - "repo": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "name": { - "type": "string" + "examples": { + "default": { + "summary": "Example adding multiple email addresses", + "value": { + "emails": [ + "octocat@github.com", + "mona@github.com", + "octocat@octocat.org" + ] } - }, - "required": [ - "id", - "url", - "name" - ] + } } - }, - "required": [ - "ref", - "sha", - "repo" - ] + } } }, - "required": [ - "id", - "number", - "url", - "head", - "base" - ] - }, - "simple-commit": { - "title": "Simple Commit", - "description": "Simple Commit", - "type": "object", - "properties": { - "id": { - "type": "string" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/email-items" + } + } + } + } }, - "tree_id": { - "type": "string" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "message": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "timestamp": { - "type": "string", - "format": "date-time" + "404": { + "$ref": "#/components/responses/not_found" }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "email": { - "type": "string" - } - }, - "required": [ - "name", - "email" - ], - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "committer": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "email": { - "type": "string" - } - }, - "required": [ - "name", - "email" - ], - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "tree_id", - "message", - "timestamp", - "author", - "committer" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" + } }, - "workflow-run": { - "title": "Workflow Run", - "description": "An invocation of a workflow", - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "The ID of the workflow run.", - "example": 5 - }, - "name": { - "type": "string", - "description": "The name of the workflow run.", - "nullable": true, - "example": "Build" - }, - "node_id": { - "type": "string", - "example": "MDEwOkNoZWNrU3VpdGU1" - }, - "check_suite_id": { - "type": "integer", - "description": "The ID of the associated check suite.", - "example": 42 - }, - "check_suite_node_id": { - "type": "string", - "description": "The node ID of the associated check suite.", - "example": "MDEwOkNoZWNrU3VpdGU0Mg==" - }, - "head_branch": { - "type": "string", - "nullable": true, - "example": "master" - }, - "head_sha": { - "description": "The SHA of the head commit that points to the version of the worflow being run.", - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" - }, - "run_number": { - "type": "integer", - "description": "The auto incrementing run number for the workflow run.", - "example": 106 - }, - "event": { - "type": "string", - "example": "push" - }, - "status": { - "type": "string", - "nullable": true, - "example": "completed" - }, - "conclusion": { - "type": "string", - "nullable": true, - "example": "neutral" - }, - "workflow_id": { - "type": "integer", - "description": "The ID of the parent workflow.", - "example": 5 - }, - "url": { - "type": "string", - "description": "The URL to the workflow run.", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" - }, - "html_url": { - "type": "string", - "example": "https://github.com/github/hello-world/suites/4" - }, - "pull_requests": { - "type": "array", - "nullable": true, - "items": { - "$ref": "#/components/schemas/pull-request-minimal" + "delete": { + "summary": "Delete an email address for the authenticated user", + "description": "OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/delete-email-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "description": "Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", + "properties": { + "emails": { + "description": "Email addresses associated with the GitHub user account.", + "type": "array", + "items": { + "type": "string", + "example": "username@example.com" + }, + "minItems": 1 + } + }, + "example": { + "emails": [ + "octocat@github.com", + "mona@github.com" + ] + }, + "required": [ + "emails" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "example": "username@example.com" + }, + "minItems": 1 + }, + { + "type": "string" + } + ] + }, + "examples": { + "default": { + "summary": "Example deleting multiple email accounts", + "value": { + "emails": [ + "octocat@github.com", + "mona@github.com" + ] + } + } + } } + } + }, + "responses": { + "204": { + "description": "Response" }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "jobs_url": { - "description": "The URL to the jobs for the workflow run.", - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/jobs" - }, - "logs_url": { - "description": "The URL to download the logs for the workflow run.", - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/logs" - }, - "check_suite_url": { - "description": "The URL to the associated check suite.", - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/check-suites/12" + "304": { + "$ref": "#/components/responses/not_modified" }, - "artifacts_url": { - "description": "The URL to the artifacts for the workflow run.", - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts" + "404": { + "$ref": "#/components/responses/not_found" }, - "cancel_url": { - "description": "The URL to cancel the workflow run.", - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/cancel" + "403": { + "$ref": "#/components/responses/forbidden" }, - "rerun_url": { - "description": "The URL to rerun the workflow run.", - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "workflow_url": { - "description": "The URL to the workflow.", - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" + } + } + }, + "/user/followers": { + "get": { + "summary": "List followers of the authenticated user", + "description": "Lists the people following the authenticated user.", + "tags": [ + "users" + ], + "operationId": "users/list-followers-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "head_commit": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-commit" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } } - ] + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "304": { + "$ref": "#/components/responses/not_modified" }, - "head_repository": { - "$ref": "#/components/schemas/minimal-repository" + "403": { + "$ref": "#/components/responses/forbidden" }, - "head_repository_id": { - "type": "integer", - "example": 5 + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "head_branch", - "run_number", - "event", - "status", - "conclusion", - "head_sha", - "workflow_id", - "url", - "html_url", - "created_at", - "updated_at", - "head_commit", - "head_repository", - "repository", - "jobs_url", - "logs_url", - "check_suite_url", - "cancel_url", - "rerun_url", - "artifacts_url", - "workflow_url", - "pull_requests" - ] - }, - "environment-approvals": { - "title": "Environment Approval", - "description": "An entry in the reviews log for environment deployments", - "type": "object", - "properties": { - "environments": { - "description": "The list of environments that were approved or rejected", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "The id of the environment.", - "example": 56780428, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDExOkVudmlyb25tZW50NTY3ODA0Mjg=" - }, - "name": { - "description": "The name of the environment.", - "example": "staging", - "type": "string" - }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/environments/staging" - }, - "html_url": { - "type": "string", - "example": "https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging" - }, - "created_at": { - "description": "The time that the environment was created, in ISO 8601 format.", - "example": "2020-11-23T22:00:40Z", - "format": "date-time", - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" + } + } + }, + "/user/following": { + "get": { + "summary": "List the people the authenticated user follows", + "description": "Lists the people who the authenticated user follows.", + "tags": [ + "users" + ], + "operationId": "users/list-followed-by-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, - "updated_at": { - "description": "The time that the environment was last updated, in ISO 8601 format.", - "example": "2020-11-23T22:00:40Z", - "format": "date-time", - "type": "string" + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "state": { - "description": "Whether deployment to the environment(s) was approved or rejected", - "enum": [ - "approved", - "rejected" - ], - "example": "approved", - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "user": { - "$ref": "#/components/schemas/simple-user" + "403": { + "$ref": "#/components/responses/forbidden" }, - "comment": { - "type": "string", - "description": "The comment submitted with the deployment review", - "example": "Ship it!" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "environments", - "state", - "user", - "comment" - ] - }, - "deployment-reviewer-type": { - "type": "string", - "description": "The type of reviewer. Must be one of: `User` or `Team`", - "enum": [ - "User", - "Team" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" + } + } + }, + "/user/following/{username}": { + "get": { + "summary": "Check if a person is followed by the authenticated user", + "description": "", + "tags": [ + "users" ], - "example": "User" - }, - "pending-deployment": { - "title": "Pending Deployment", - "description": "Details of a deployment that is waiting for protection rules to pass", - "type": "object", - "properties": { - "environment": { - "type": "object", - "properties": { - "id": { - "description": "The id of the environment.", - "example": 56780428, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDExOkVudmlyb25tZW50NTY3ODA0Mjg=" - }, - "name": { - "description": "The name of the environment.", - "example": "staging", - "type": "string" - }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/environments/staging" - }, - "html_url": { - "type": "string", - "example": "https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging" + "operationId": "users/check-person-is-followed-by-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "if the person is followed by the authenticated user" + }, + "404": { + "description": "if the person is not followed by the authenticated user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } } }, - "wait_timer": { - "type": "integer", - "description": "The set duration of the wait timer", - "example": 30 - }, - "wait_timer_started_at": { - "description": "The time that the wait timer began.", - "example": "2020-11-23T22:00:40Z", - "format": "date-time", - "type": "string", - "nullable": true + "304": { + "$ref": "#/components/responses/not_modified" }, - "current_user_can_approve": { - "description": "Whether the currently authenticated user can approve the deployment", - "type": "boolean", - "example": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "reviewers": { - "type": "array", - "description": "The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed.", - "items": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/deployment-reviewer-type" - }, - "reviewer": { - "anyOf": [ - { - "$ref": "#/components/schemas/simple-user" - }, - { - "$ref": "#/components/schemas/team" - } - ] - } - } - } + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "environment", - "wait_timer", - "wait_timer_started_at", - "current_user_can_approve", - "reviewers" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" + } }, - "deployment": { - "title": "Deployment", - "description": "A request for a specific ref(branch,sha,tag) to be deployed", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/1" + "put": { + "summary": "Follow a user", + "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"\n\nOAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/follow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#follow-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "id": { - "description": "Unique identifier of the deployment", - "example": 42, - "type": "integer" + "304": { + "$ref": "#/components/responses/not_modified" }, - "node_id": { - "type": "string", - "example": "MDEwOkRlcGxveW1lbnQx" + "404": { + "$ref": "#/components/responses/not_found" }, - "sha": { - "type": "string", - "example": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d" + "403": { + "$ref": "#/components/responses/forbidden" }, - "ref": { - "description": "The ref to deploy. This can be a branch, tag, or sha.", - "example": "topic-branch", - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "task": { - "description": "Parameter to specify a task to execute", - "example": "deploy", - "type": "string" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" + } + }, + "delete": { + "summary": "Unfollow a user", + "description": "OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/unfollow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#unfollow-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "payload": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "string" - } - ] + "304": { + "$ref": "#/components/responses/not_modified" }, - "original_environment": { - "type": "string", - "example": "staging" + "404": { + "$ref": "#/components/responses/not_found" }, - "environment": { - "description": "Name for the target deployment environment.", - "example": "production", - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "description": { - "type": "string", - "example": "Deploy request from hubot", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" + } + } + }, + "/user/gpg_keys": { + "get": { + "summary": "List GPG keys for the authenticated user", + "description": "Lists the current user's GPG keys.\n\nOAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/list-gpg-keys-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "creator": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/gpg-key" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/gpg-key-items" + } + } } - ] - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2012-07-20T01:19:13Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2012-07-20T01:19:13Z" - }, - "statuses_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses" + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "repository_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example" + "304": { + "$ref": "#/components/responses/not_modified" }, - "transient_environment": { - "description": "Specifies if the given environment is will no longer exist at some point in the future. Default: false.", - "example": true, - "type": "boolean" + "404": { + "$ref": "#/components/responses/not_found" }, - "production_environment": { - "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.", - "example": true, - "type": "boolean" + "403": { + "$ref": "#/components/responses/forbidden" }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" - } - ] + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "sha", - "ref", - "task", - "environment", - "creator", - "payload", - "description", - "statuses_url", - "repository_url", - "url", - "created_at", - "updated_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "gpg-keys" + } }, - "workflow-run-usage": { - "title": "Workflow Run Usage", - "description": "Workflow Run Usage", - "type": "object", - "properties": { - "billable": { - "type": "object", - "properties": { - "UBUNTU": { - "type": "object", - "required": [ - "total_ms", - "jobs" - ], + "post": { + "summary": "Create a GPG key for the authenticated user", + "description": "Adds a GPG key to the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint.", + "operationId": "users/create-gpg-key-for-authenticated-user", + "tags": [ + "users" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "properties": { - "total_ms": { - "type": "integer" + "name": { + "description": "A descriptive name for the new key.", + "type": "string" }, - "jobs": { - "type": "integer" + "armored_public_key": { + "description": "A GPG key in ASCII-armored format.", + "type": "string" } - } - }, - "MACOS": { + }, "type": "object", "required": [ - "total_ms", - "jobs" - ], - "properties": { - "total_ms": { - "type": "integer" - }, - "jobs": { - "type": "integer" - } - } + "armored_public_key" + ] }, - "WINDOWS": { - "type": "object", - "required": [ - "total_ms", - "jobs" - ], - "properties": { - "total_ms": { - "type": "integer" - }, - "jobs": { - "type": "integer" + "examples": { + "default": { + "value": { + "name": "Octocat's GPG Key", + "armored_public_key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFnZ2ZIBEADQ2Z7Z7\n-----END PGP PUBLIC KEY BLOCK-----" } } } } - }, - "run_duration_ms": { - "type": "integer" - } - }, - "required": [ - "billable" - ] - }, - "actions-secret": { - "title": "Actions Secret", - "description": "Set secrets for GitHub Actions.", - "type": "object", - "properties": { - "name": { - "description": "The name of the secret.", - "example": "SECRET_TOKEN", - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" } }, - "required": [ - "name", - "created_at", - "updated_at" - ] - }, - "workflow": { - "title": "Workflow", - "description": "A GitHub Actions workflow", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 5 - }, - "node_id": { - "type": "string", - "example": "MDg6V29ya2Zsb3cxMg==" - }, - "name": { - "type": "string", - "example": "CI" - }, - "path": { - "type": "string", - "example": "ruby.yaml" - }, - "state": { - "type": "string", - "example": "active", - "enum": [ - "active", - "deleted", - "disabled_fork", - "disabled_inactivity", - "disabled_manually" - ] - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2019-12-06T14:20:20.000Z" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/gpg-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/gpg-key" + } + } + } + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2019-12-06T14:20:20.000Z" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/actions/setup-ruby/workflows/5" + "304": { + "$ref": "#/components/responses/not_modified" }, - "html_url": { - "type": "string", - "example": "https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml" + "404": { + "$ref": "#/components/responses/not_found" }, - "badge_url": { - "type": "string", - "example": "https://github.com/actions/setup-ruby/workflows/CI/badge.svg" + "403": { + "$ref": "#/components/responses/forbidden" }, - "deleted_at": { - "type": "string", - "format": "date-time", - "example": "2019-12-06T14:20:20.000Z" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "name", - "path", - "state", - "url", - "html_url", - "badge_url", - "created_at", - "updated_at" - ] - }, - "workflow-usage": { - "title": "Workflow Usage", - "description": "Workflow Usage", - "type": "object", - "properties": { - "billable": { - "type": "object", - "properties": { - "UBUNTU": { - "type": "object", - "properties": { - "total_ms": { - "type": "integer" - } - } - }, - "MACOS": { - "type": "object", - "properties": { - "total_ms": { - "type": "integer" - } - } - }, - "WINDOWS": { - "type": "object", - "properties": { - "total_ms": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "gpg-keys" + } + } + }, + "/user/gpg_keys/{gpg_key_id}": { + "get": { + "summary": "Get a GPG key for the authenticated user", + "description": "View extended details for a single GPG key.\n\nOAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/get-gpg-key-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/gpg-key-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/gpg-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/gpg-key" } } } } - } - }, - "required": [ - "billable" - ] - }, - "autolink": { - "title": "Autolink reference", - "description": "An autolink reference.", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 3 }, - "key_prefix": { - "description": "The prefix of a key that is linkified.", - "example": "TICKET-", - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "url_template": { - "description": "A template for the target URL that is generated if a key was found.", - "example": "https://example.com/TICKET?query=", - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "key_prefix", - "url_template" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "gpg-keys" + } }, - "protected-branch-admin-enforced": { - "title": "Protected Branch Admin Enforced", - "description": "Protected Branch Admin Enforced", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins" - }, - "enabled": { - "type": "boolean", - "example": true - } + "delete": { + "summary": "Delete a GPG key for the authenticated user", + "description": "Removes a GPG key from the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/delete-gpg-key-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user" }, - "required": [ - "url", - "enabled" - ] - }, - "protected-branch-pull-request-review": { - "title": "Protected Branch Pull Request Review", - "description": "Protected Branch Pull Request Review", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions" - }, - "dismissal_restrictions": { - "type": "object", - "properties": { - "users": { - "description": "The list of users with review dismissal access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "teams": { - "description": "The list of teams with review dismissal access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } - }, - "url": { - "type": "string", - "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions\"" - }, - "users_url": { - "type": "string", - "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users\"" - }, - "teams_url": { - "type": "string", - "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams\"" - } - } - }, - "dismiss_stale_reviews": { - "type": "boolean", - "example": true - }, - "require_code_owner_reviews": { - "type": "boolean", - "example": true - }, - "required_approving_review_count": { - "type": "integer", - "minimum": 1, - "maximum": 6, - "example": 2 + "parameters": [ + { + "$ref": "#/components/parameters/gpg-key-id" } - }, - "required": [ - "dismiss_stale_reviews", - "require_code_owner_reviews" - ] - }, - "branch-restriction-policy": { - "title": "Branch Restriction Policy", - "description": "Branch Restriction Policy", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" + ], + "responses": { + "204": { + "description": "Response" }, - "users_url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" }, - "teams_url": { - "type": "string", - "format": "uri" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "apps_url": { - "type": "string", - "format": "uri" + "304": { + "$ref": "#/components/responses/not_modified" }, - "users": { - "type": "array", - "items": { - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "avatar_url": { - "type": "string" - }, - "gravatar_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "followers_url": { - "type": "string" - }, - "following_url": { - "type": "string" - }, - "gists_url": { - "type": "string" - }, - "starred_url": { - "type": "string" - }, - "subscriptions_url": { - "type": "string" - }, - "organizations_url": { - "type": "string" - }, - "repos_url": { - "type": "string" - }, - "events_url": { - "type": "string" - }, - "received_events_url": { - "type": "string" - }, - "type": { - "type": "string" - }, - "site_admin": { - "type": "boolean" - } - } - } + "403": { + "$ref": "#/components/responses/forbidden" }, - "teams": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "name": { - "type": "string" - }, - "slug": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "privacy": { - "type": "string" - }, - "permission": { - "type": "string" - }, - "members_url": { - "type": "string" - }, - "repositories_url": { - "type": "string" - }, - "parent": { - "type": "string", - "nullable": true - } - } - } + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "gpg-keys" + } + } + }, + "/user/installations": { + "get": { + "summary": "List app installations accessible to the user access token", + "description": "Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.\n\nYou can find the permissions for the installation under the `permissions` key.", + "tags": [ + "apps" + ], + "operationId": "apps/list-installations-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "apps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "slug": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "owner": { + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "You can find the permissions for the installation under the `permissions` key.", + "content": { + "application/json": { + "schema": { "type": "object", + "required": [ + "total_count", + "installations" + ], "properties": { - "login": { - "type": "string" - }, - "id": { + "total_count": { "type": "integer" }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "repos_url": { - "type": "string" - }, - "events_url": { - "type": "string" - }, - "hooks_url": { - "type": "string" - }, - "issues_url": { - "type": "string" - }, - "members_url": { - "type": "string" - }, - "public_members_url": { - "type": "string" - }, - "avatar_url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "gravatar_id": { - "type": "string", - "example": "\"\"" - }, - "html_url": { - "type": "string", - "example": "\"https://github.com/testorg-ea8ec76d71c3af4b\"" - }, - "followers_url": { - "type": "string", - "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers\"" - }, - "following_url": { - "type": "string", - "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}\"" - }, - "gists_url": { - "type": "string", - "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}\"" - }, - "starred_url": { - "type": "string", - "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}\"" - }, - "subscriptions_url": { - "type": "string", - "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions\"" - }, - "organizations_url": { - "type": "string", - "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs\"" - }, - "received_events_url": { - "type": "string", - "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events\"" - }, - "type": { - "type": "string", - "example": "\"Organization\"" - }, - "site_admin": { - "type": "boolean", - "example": false + "installations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/installation" + } } } }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "external_url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "permissions": { + "examples": { + "default": { + "$ref": "#/components/examples/base-installation-for-auth-user-paginated" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "installations" + } + } + }, + "/user/installations/{installation_id}/repositories": { + "get": { + "summary": "List repositories accessible to the user access token", + "description": "List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.\n\nThe access the user has to each repository is included in the hash under the `permissions` key.", + "tags": [ + "apps" + ], + "operationId": "apps/list-installation-repos-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token" + }, + "parameters": [ + { + "$ref": "#/components/parameters/installation-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "The access the user has to each repository is included in the hash under the `permissions` key.", + "content": { + "application/json": { + "schema": { "type": "object", + "required": [ + "total_count", + "repositories" + ], "properties": { - "metadata": { - "type": "string" - }, - "contents": { - "type": "string" + "total_count": { + "type": "integer" }, - "issues": { + "repository_selection": { "type": "string" }, - "single_file": { - "type": "string" + "repositories": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/repository" + } + ] + } } } }, - "events": { - "type": "array", - "items": { - "type": "string" + "examples": { + "default": { + "$ref": "#/components/examples/repository-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "304": { + "$ref": "#/components/responses/not_modified" } }, - "required": [ - "url", - "users_url", - "teams_url", - "apps_url", - "users", - "teams", + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "installations" + } + } + }, + "/user/installations/{installation_id}/repositories/{repository_id}": { + "put": { + "summary": "Add a repository to an app installation", + "description": "Add a single repository to an installation. The authenticated user must have admin access to the repository. \n\nThis endpoint only works for PATs (classic) with the `repo` scope.", + "tags": [ "apps" - ] - }, - "branch-protection": { - "title": "Branch Protection", - "description": "Branch Protection", - "type": "object", - "properties": { - "url": { - "type": "string" + ], + "operationId": "apps/add-repo-to-installation-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/installations#add-a-repository-to-an-app-installation" + }, + "parameters": [ + { + "$ref": "#/components/parameters/installation-id" }, - "enabled": { - "type": "boolean" + { + "$ref": "#/components/parameters/repository-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "required_status_checks": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "enforcement_level": { - "type": "string" - }, - "contexts": { - "type": "array", - "items": { - "type": "string" - } - }, - "contexts_url": { - "type": "string" - }, - "strict": { - "type": "boolean" - } - }, - "required": [ - "contexts" - ] + "403": { + "$ref": "#/components/responses/forbidden" }, - "enforce_admins": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "304": { + "$ref": "#/components/responses/not_modified" }, - "required_pull_request_reviews": { - "$ref": "#/components/schemas/protected-branch-pull-request-review" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "installations" + } + }, + "delete": { + "summary": "Remove a repository from an app installation", + "description": "Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. \n\nThis endpoint only works for PATs (classic) with the `repo` scope.", + "tags": [ + "apps" + ], + "operationId": "apps/remove-repo-from-installation-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/installations#remove-a-repository-from-an-app-installation" + }, + "parameters": [ + { + "$ref": "#/components/parameters/installation-id" }, - "restrictions": { - "$ref": "#/components/schemas/branch-restriction-policy" + { + "$ref": "#/components/parameters/repository-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "required_linear_history": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "403": { + "$ref": "#/components/responses/forbidden" }, - "allow_force_pushes": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "304": { + "$ref": "#/components/responses/not_modified" }, - "allow_deletions": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "404": { + "$ref": "#/components/responses/not_found" }, - "required_conversation_resolution": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" + "422": { + "description": "Returned when the application is installed on `all` repositories in the organization, or if this request would remove the last repository that the application has access to in the organization." + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "installations" + } + } + }, + "/user/interaction-limits": { + "get": { + "summary": "Get interaction restrictions for your public repositories", + "description": "Shows which type of GitHub user can interact with your public repositories and when the restriction expires.", + "tags": [ + "interactions" + ], + "operationId": "interactions/get-restrictions-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/interactions/user#get-interaction-restrictions-for-your-public-repositories" + }, + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/interaction-limit-response" + }, + { + "type": "object", + "properties": {}, + "additionalProperties": false + } + ] + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-response" + } + } } } }, - "name": { - "type": "string", - "example": "\"branch/with/protection\"" - }, - "protection_url": { - "type": "string", - "example": "\"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection\"" - }, - "required_signatures": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures" - }, - "enabled": { - "type": "boolean", - "example": true - } - }, - "required": [ - "url", - "enabled" - ] + "204": { + "description": "Response when there are no restrictions" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "interactions", + "subcategory": "user" } }, - "short-branch": { - "title": "Short Branch", - "description": "Short Branch", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "commit": { - "type": "object", - "properties": { - "sha": { - "type": "string" + "put": { + "summary": "Set interaction restrictions for your public repositories", + "description": "Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user.", + "tags": [ + "interactions" + ], + "operationId": "interactions/set-restrictions-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/interactions/user#set-interaction-restrictions-for-your-public-repositories" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit" }, - "url": { - "type": "string", - "format": "uri" + "examples": { + "default": { + "value": { + "limit": "collaborators_only", + "expiry": "one_month" + } + } } - }, - "required": [ - "sha", - "url" - ] - }, - "protected": { - "type": "boolean" - }, - "protection": { - "$ref": "#/components/schemas/branch-protection" - }, - "protection_url": { - "type": "string", - "format": "uri" + } } }, - "required": [ - "name", - "commit", - "protected" - ] - }, - "git-user": { - "title": "Git User", - "description": "Metaproperties for Git author/committer information.", - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "\"Chris Wanstrath\"" - }, - "email": { - "type": "string", - "example": "\"chris@ozmm.org\"" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-user" + } + } + } + } }, - "date": { - "type": "string", - "example": "\"2007-10-29T02:42:39.000-07:00\"" + "422": { + "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "interactions", + "subcategory": "user" } }, - "verification": { - "title": "Verification", - "type": "object", - "properties": { - "verified": { - "type": "boolean" - }, - "reason": { - "type": "string" - }, - "payload": { - "type": "string", - "nullable": true - }, - "signature": { - "type": "string", - "nullable": true + "delete": { + "summary": "Remove interaction restrictions from your public repositories", + "description": "Removes any interaction restrictions from your public repositories.", + "tags": [ + "interactions" + ], + "operationId": "interactions/remove-restrictions-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/interactions/user#remove-interaction-restrictions-from-your-public-repositories" + }, + "responses": { + "204": { + "description": "Response" } }, - "required": [ - "verified", - "reason", - "payload", - "signature" - ] - }, - "commit": { - "title": "Commit", - "description": "Commit", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "interactions", + "subcategory": "user" + } + } + }, + "/user/issues": { + "get": { + "summary": "List user account issues assigned to the authenticated user", + "description": "List issues across owned and member repositories assigned to the authenticated user.\n\n> [!NOTE]\n> GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull request id, use the \"[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)\" endpoint.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.\n- **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.\n- **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.\n- **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.", + "tags": [ + "issues" + ], + "operationId": "issues/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user" + }, + "parameters": [ + { + "name": "filter", + "description": "Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "assigned", + "created", + "mentioned", + "subscribed", + "repos", + "all" + ], + "default": "assigned" + } }, - "sha": { - "type": "string", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + { + "name": "state", + "description": "Indicates the state of the issues to return.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "open", + "closed", + "all" + ], + "default": "open" + } }, - "node_id": { - "type": "string", - "example": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==" + { + "$ref": "#/components/parameters/labels" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e" + { + "name": "sort", + "description": "What to sort results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "comments" + ], + "default": "created" + } }, - "comments_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments" + { + "$ref": "#/components/parameters/direction" }, - "commit": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e" - }, - "author": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/git-user" - } - ] - }, - "committer": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/git-user" - } - ] - }, - "message": { - "type": "string", - "example": "Fix all the bugs" - }, - "comment_count": { - "type": "integer", - "example": 0 - }, - "tree": { - "type": "object", - "properties": { - "sha": { - "type": "string", - "example": "827efc6d56897b048c772eb4087f854f46256132" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132" + { + "$ref": "#/components/parameters/since" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue" } }, - "required": [ - "sha", - "url" - ] - }, - "verification": { - "$ref": "#/components/schemas/verification" + "examples": { + "default": { + "$ref": "#/components/examples/issue-with-repo-items" + } + } } }, - "required": [ - "author", - "committer", - "comment_count", - "message", - "tree", - "url" - ] - }, - "author": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] + } }, - "committer": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "parents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "sha": { - "type": "string", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd" - } - }, - "required": [ - "sha", - "url" - ] - } - }, - "stats": { - "type": "object", - "properties": { - "additions": { - "type": "integer" - }, - "deletions": { - "type": "integer" - }, - "total": { - "type": "integer" - } - } - }, - "files": { - "type": "array", - "items": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "additions": { - "type": "integer" - }, - "deletions": { - "type": "integer" - }, - "changes": { - "type": "integer" - }, - "status": { - "type": "string" - }, - "raw_url": { - "type": "string" - }, - "blob_url": { - "type": "string" - }, - "patch": { - "type": "string" - }, - "sha": { - "type": "string", - "example": "\"1e8e60ce9733d5283f7836fa602b6365a66b2567\"" - }, - "contents_url": { - "type": "string", - "example": "\"https://api.github.com/repos/owner-3d68404b07d25daeb2d4a6bf/AAA_Public_Repo/contents/geometry.js?ref=c3956841a7cb7e8ba4a6fd923568d86958f01573\"" - }, - "previous_filename": { - "type": "string", - "example": "\"subdir/before_name.txt\"" - } - } - } + "304": { + "$ref": "#/components/responses/not_modified" } }, - "required": [ - "url", - "sha", - "node_id", - "html_url", - "comments_url", - "commit", - "author", - "committer", - "parents" - ] - }, - "branch-with-protection": { - "title": "Branch With Protection", - "description": "Branch With Protection", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "commit": { - "$ref": "#/components/schemas/commit" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "issues", + "subcategory": "issues" + } + } + }, + "/user/keys": { + "get": { + "summary": "List public SSH keys for the authenticated user", + "description": "Lists the public SSH keys for the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/list-public-ssh-keys-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "_links": { - "type": "object", - "properties": { - "html": { - "type": "string" - }, - "self": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/key" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/key-items" + } + } } }, - "required": [ - "html", - "self" - ] - }, - "protected": { - "type": "boolean" + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "protection": { - "$ref": "#/components/schemas/branch-protection" + "304": { + "$ref": "#/components/responses/not_modified" }, - "protection_url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" }, - "pattern": { - "type": "string", - "example": "\"mas*\"" + "403": { + "$ref": "#/components/responses/forbidden" }, - "required_approving_review_count": { - "type": "integer", - "example": 1 + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "name", - "commit", - "_links", - "protection", - "protected", - "protection_url" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" + } }, - "status-check-policy": { - "title": "Status Check Policy", - "description": "Status Check Policy", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks" - }, - "strict": { - "type": "boolean", - "example": true - }, - "contexts": { - "type": "array", - "example": [ - "continuous-integration/travis-ci" - ], - "items": { - "type": "string" - } - }, - "contexts_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts" - } + "post": { + "summary": "Create a public SSH key for the authenticated user", + "description": "Adds a public SSH key to the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `write:public_key` scope to use this endpoint.", + "operationId": "users/create-public-ssh-key-for-authenticated-user", + "tags": [ + "users" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user" }, - "required": [ - "url", - "contexts_url", - "strict", - "contexts" - ] - }, - "protected-branch": { - "title": "Protected Branch", - "description": "Branch protections protect branches", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "required_status_checks": { - "$ref": "#/components/schemas/status-check-policy" - }, - "required_pull_request_reviews": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "dismiss_stale_reviews": { - "type": "boolean" - }, - "require_code_owner_reviews": { - "type": "boolean" - }, - "required_approving_review_count": { - "type": "integer" - }, - "dismissal_restrictions": { - "type": "object", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "users_url": { + "title": { + "description": "A descriptive name for the new key.", "type": "string", - "format": "uri" + "example": "Personal MacBook Air" }, - "teams_url": { + "key": { + "description": "The public SSH key to add to your GitHub account.", "type": "string", - "format": "uri" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "pattern": "^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) " } }, "required": [ - "url", - "users_url", - "teams_url", - "users", - "teams" - ] - } - }, - "required": [ - "url" - ] - }, - "required_signatures": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures" + "key" + ], + "type": "object" }, - "enabled": { - "type": "boolean", - "example": true + "examples": { + "default": { + "value": { + "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + } } - }, - "required": [ - "url", - "enabled" - ] - }, - "enforce_admins": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "enabled": { - "type": "boolean" + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/key" + } + } } - }, - "additionalProperties": false, - "required": [ - "url", - "enabled" - ] + } }, - "required_linear_history": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enabled" - ] + "422": { + "$ref": "#/components/responses/validation_failed" }, - "allow_force_pushes": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enabled" - ] + "304": { + "$ref": "#/components/responses/not_modified" }, - "allow_deletions": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enabled" - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "restrictions": { - "$ref": "#/components/schemas/branch-restriction-policy" + "403": { + "$ref": "#/components/responses/forbidden" }, - "required_conversation_resolution": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "additionalProperties": false + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "url" - ] - }, - "deployment-simple": { - "title": "Deployment", - "description": "A deployment created as the result of an Actions check run from a workflow that references an environment", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/1" - }, - "id": { - "description": "Unique identifier of the deployment", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDEwOkRlcGxveW1lbnQx" - }, - "task": { - "description": "Parameter to specify a task to execute", - "example": "deploy", - "type": "string" - }, - "original_environment": { - "type": "string", - "example": "staging" - }, - "environment": { - "description": "Name for the target deployment environment.", - "example": "production", - "type": "string" - }, - "description": { - "type": "string", - "example": "Deploy request from hubot", - "nullable": true - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2012-07-20T01:19:13Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2012-07-20T01:19:13Z" - }, - "statuses_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" + } + } + }, + "/user/keys/{key_id}": { + "get": { + "summary": "Get a public SSH key for the authenticated user", + "description": "View extended details for a single public SSH key.\n\nOAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/get-public-ssh-key-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/key-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/key" + } + } + } + } }, - "repository_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example" + "404": { + "$ref": "#/components/responses/not_found" }, - "transient_environment": { - "description": "Specifies if the given environment is will no longer exist at some point in the future. Default: false.", - "example": true, - "type": "boolean" + "304": { + "$ref": "#/components/responses/not_modified" }, - "production_environment": { - "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.", - "example": true, - "type": "boolean" + "403": { + "$ref": "#/components/responses/forbidden" }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" - } - ] + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "task", - "environment", - "description", - "statuses_url", - "repository_url", - "url", - "created_at", - "updated_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" + } }, - "check-run": { - "title": "CheckRun", - "description": "A check performed on the code of a given code change", - "type": "object", - "properties": { - "id": { - "description": "The id of the check.", - "example": 21, - "type": "integer" - }, - "head_sha": { - "description": "The SHA of the commit that is being checked.", - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" - }, - "node_id": { - "type": "string", - "example": "MDg6Q2hlY2tSdW40" - }, - "external_id": { - "type": "string", - "example": "42", - "nullable": true - }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/check-runs/4" - }, - "html_url": { - "type": "string", - "example": "https://github.com/github/hello-world/runs/4", - "nullable": true - }, - "details_url": { - "type": "string", - "example": "https://example.com", - "nullable": true + "delete": { + "summary": "Delete a public SSH key for the authenticated user", + "description": "Removes a public SSH key from the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/delete-public-ssh-key-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/key-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "status": { - "description": "The phase of the lifecycle that the check is currently in.", - "example": "queued", - "type": "string", - "enum": [ - "queued", - "in_progress", - "completed" - ] + "304": { + "$ref": "#/components/responses/not_modified" }, - "conclusion": { - "type": "string", - "example": "neutral", - "enum": [ - "success", - "failure", - "neutral", - "cancelled", - "skipped", - "timed_out", - "action_required" - ], - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "started_at": { - "type": "string", - "format": "date-time", - "example": "2018-05-04T01:14:52Z", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "completed_at": { - "type": "string", - "format": "date-time", - "example": "2018-05-04T01:14:52Z", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" + } + } + }, + "/user/marketplace_purchases": { + "get": { + "summary": "List subscriptions for the authenticated user", + "description": "Lists the active subscriptions for the authenticated user.", + "tags": [ + "apps" + ], + "operationId": "apps/list-subscriptions-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "output": { - "type": "object", - "properties": { - "title": { - "type": "string", - "nullable": true - }, - "summary": { - "type": "string", - "nullable": true - }, - "text": { - "type": "string", - "nullable": true - }, - "annotations_count": { - "type": "integer" - }, - "annotations_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/user-marketplace-purchase" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-marketplace-purchase-items" + } + } } }, - "required": [ - "title", - "summary", - "text", - "annotations_count", - "annotations_url" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "name": { - "description": "The name of the check.", - "example": "test-coverage", - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "check_suite": { - "type": "object", - "properties": { - "id": { - "type": "integer" + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "marketplace" + } + } + }, + "/user/marketplace_purchases/stubbed": { + "get": { + "summary": "List subscriptions for the authenticated user (stubbed)", + "description": "Lists the active subscriptions for the authenticated user.", + "tags": [ + "apps" + ], + "operationId": "apps/list-subscriptions-for-authenticated-user-stubbed", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/user-marketplace-purchase" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-marketplace-purchase-items" + } + } } }, - "required": [ - "id" - ], - "nullable": true - }, - "app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] - }, - "pull_requests": { - "items": { - "$ref": "#/components/schemas/pull-request-minimal" } }, - "deployment": { - "$ref": "#/components/schemas/deployment-simple" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "head_sha", - "name", - "url", - "html_url", - "details_url", - "status", - "conclusion", - "started_at", - "completed_at", - "external_id", - "check_suite", - "output", - "app", - "pull_requests" - ] - }, - "check-annotation": { - "title": "Check Annotation", - "description": "Check Annotation", - "type": "object", - "properties": { - "path": { - "type": "string", - "example": "README.md" - }, - "start_line": { - "type": "integer", - "example": 2 + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "marketplace" + } + } + }, + "/user/memberships/orgs": { + "get": { + "summary": "List organization memberships for the authenticated user", + "description": "Lists all of the authenticated user's organization memberships.", + "tags": [ + "orgs" + ], + "operationId": "orgs/list-memberships-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "state", + "description": "Indicates the state of the memberships to return. If not specified, the API returns both active and pending memberships.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "active", + "pending" + ] + } }, - "end_line": { - "type": "integer", - "example": 2 + { + "$ref": "#/components/parameters/per-page" }, - "start_column": { - "type": "integer", - "example": 5, - "nullable": true + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/org-membership" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "end_column": { - "type": "integer", - "example": 10, - "nullable": true + "304": { + "$ref": "#/components/responses/not_modified" }, - "annotation_level": { - "type": "string", - "example": "warning", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "title": { - "type": "string", - "example": "Spell Checker", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "message": { - "type": "string", - "example": "Check your spelling for 'banaas'.", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } + } + }, + "/user/memberships/orgs/{org}": { + "get": { + "summary": "Get an organization membership for the authenticated user", + "description": "If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-membership" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership" + } + } + } + } }, - "raw_details": { - "type": "string", - "example": "Do you mean 'bananas' or 'banana'?", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "blob_href": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "path", - "blob_href", - "start_line", - "end_line", - "start_column", - "end_column", - "annotation_level", - "title", - "message", - "raw_details" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } }, - "check-suite": { - "title": "CheckSuite", - "description": "A suite of checks performed on the code of a given code change", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 5 - }, - "node_id": { - "type": "string", - "example": "MDEwOkNoZWNrU3VpdGU1" - }, - "head_branch": { - "type": "string", - "example": "master", - "nullable": true - }, - "head_sha": { - "description": "The SHA of the head commit that is being checked.", - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" - }, - "status": { - "type": "string", - "example": "completed", - "enum": [ - "queued", - "in_progress", - "completed" - ], - "nullable": true - }, - "conclusion": { - "type": "string", - "example": "neutral", - "enum": [ - "success", - "failure", - "neutral", - "cancelled", - "skipped", - "timed_out", - "action_required" - ], - "nullable": true + "patch": { + "summary": "Update an organization membership for the authenticated user", + "description": "Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization.", + "tags": [ + "orgs" + ], + "operationId": "orgs/update-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#update-an-organization-membership-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "The state that the membership should be in. Only `\"active\"` will be accepted.", + "enum": [ + "active" + ] + } + }, + "required": [ + "state" + ] + }, + "examples": { + "default": { + "value": { + "state": "active" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-membership" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership-2" + } + } + } + } }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/check-suites/5", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "before": { - "type": "string", - "example": "146e867f55c26428e5f9fade55a9bbf5e95a7912", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "after": { - "type": "string", - "example": "d6fde92930d4715a2b49857d24b940956b26d2d3", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } + } + }, + "/user/migrations": { + "get": { + "summary": "List user migrations", + "description": "Lists all migrations a user has started.", + "tags": [ + "migrations" + ], + "operationId": "migrations/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#list-user-migrations" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "pull_requests": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-minimal" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/migration" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/migration-items" + } + } + } }, - "nullable": true - }, - "app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - ] - }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" - }, - "created_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "updated_at": { - "type": "string", - "format": "date-time", - "nullable": true + } }, - "head_commit": { - "$ref": "#/components/schemas/simple-commit" + "304": { + "$ref": "#/components/responses/not_modified" }, - "latest_check_runs_count": { - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" }, - "check_runs_url": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "head_branch", - "status", - "conclusion", - "head_sha", - "url", - "before", - "after", - "created_at", - "updated_at", - "app", - "head_commit", - "repository", - "latest_check_runs_count", - "check_runs_url", - "pull_requests" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" + } }, - "check-suite-preference": { - "title": "Check Suite Preference", - "description": "Check suite configuration preferences for a repository.", - "type": "object", - "required": [ - "preferences", - "repository" + "post": { + "summary": "Start a user migration", + "description": "Initiates the generation of a user migration archive.", + "tags": [ + "migrations" ], - "properties": { - "preferences": { - "type": "object", - "properties": { - "auto_trigger_checks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "app_id": { - "type": "integer" - }, - "setting": { - "type": "boolean" + "operationId": "migrations/start-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#start-a-user-migration" + }, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "lock_repositories": { + "description": "Lock the repositories being migrated at the start of the migration", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "exclude_metadata": { + "description": "Indicates whether metadata should be excluded and only git source should be included for the migration.", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "exclude_git_data": { + "description": "Indicates whether the repository git data should be excluded from the migration.", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "exclude_attachments": { + "description": "Do not include attachments in the migration", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "exclude_releases": { + "description": "Do not include releases in the migration", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "exclude_owner_projects": { + "description": "Indicates whether projects owned by the organization or users should be excluded.", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "org_metadata_only": { + "type": "boolean", + "example": true, + "description": "Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags).", + "default": false + }, + "exclude": { + "description": "Exclude attributes from the API response to improve performance", + "example": [ + "repositories" + ], + "readOnly": false, + "type": "array", + "items": { + "description": "Allowed values that can be passed to the exclude param.", + "enum": [ + "repositories" + ], + "example": "repositories", + "type": "string" } }, - "required": [ - "app_id", - "setting" - ] + "repositories": { + "type": "array", + "items": { + "description": "Repository path, owner and name", + "example": "acme/widgets", + "type": "string" + } + } + }, + "required": [ + "repositories" + ], + "type": "object" + }, + "examples": { + "default": { + "value": { + "repositories": [ + "octocat/Hello-World" + ], + "lock_repositories": true + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/migration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/migration-2" + } } } } }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } - }, - "code-scanning-analysis-tool-name": { - "type": "string", - "description": "The name of the tool used to generate the code scanning analysis." - }, - "code-scanning-analysis-tool-guid": { - "nullable": true, - "type": "string", - "description": "The GUID of the tool used to generate the code scanning analysis, if provided in the uploaded SARIF data." - }, - "code-scanning-ref": { - "type": "string", - "description": "The full Git reference, formatted as `refs/heads/`,\n`refs/pull//merge`, or `refs/pull//head`." - }, - "code-scanning-alert-state": { - "type": "string", - "description": "State of a code scanning alert.", - "enum": [ - "open", - "closed", - "dismissed", - "fixed" - ] - }, - "alert-number": { - "type": "integer", - "description": "The security alert number.", - "readOnly": true, - "nullable": false - }, - "alert-created-at": { - "type": "string", - "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", - "format": "date-time", - "readOnly": true, - "nullable": false - }, - "alert-url": { - "type": "string", - "description": "The REST API URL of the alert resource.", - "format": "uri", - "readOnly": true, - "nullable": false - }, - "alert-html-url": { - "type": "string", - "description": "The GitHub URL of the alert resource.", - "format": "uri", - "readOnly": true, - "nullable": false - }, - "alert-instances-url": { - "type": "string", - "description": "The REST API URL for fetching the list of instances for an alert.", - "format": "uri", - "readOnly": true, - "nullable": false - }, - "code-scanning-alert-dismissed-at": { - "type": "string", - "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "code-scanning-alert-dismissed-reason": { - "type": "string", - "description": "**Required when the state is dismissed.** The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`.", - "nullable": true, - "enum": [ - null, - "false positive", - "won't fix", - "used in tests" - ] - }, - "code-scanning-alert-rule-summary": { - "type": "object", - "properties": { - "id": { - "nullable": true, - "type": "string", - "description": "A unique identifier for the rule used to detect the alert." + } + }, + "/user/migrations/{migration_id}": { + "get": { + "summary": "Get a user migration status", + "description": "Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values:\n\n* `pending` - the migration hasn't started yet.\n* `exporting` - the migration is in progress.\n* `exported` - the migration finished successfully.\n* `failed` - the migration failed.\n\nOnce the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive).", + "tags": [ + "migrations" + ], + "operationId": "migrations/get-status-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#get-a-user-migration-status" + }, + "parameters": [ + { + "$ref": "#/components/parameters/migration-id" }, - "name": { - "type": "string", - "description": "The name of the rule used to detect the alert." + { + "name": "exclude", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/migration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/migration" + } + } + } + } }, - "severity": { - "nullable": true, - "type": "string", - "description": "The severity of the alert.", - "enum": [ - "none", - "note", - "warning", - "error" - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "description": { - "type": "string", - "description": "A short description of the rule used to detect the alert." + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } - }, - "code-scanning-analysis-tool-version": { - "nullable": true, - "type": "string", - "description": "The version of the tool used to generate the code scanning analysis." - }, - "code-scanning-analysis-tool": { - "type": "object", - "properties": { - "name": { - "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + } + }, + "/user/migrations/{migration_id}/archive": { + "get": { + "summary": "Download a user migration archive", + "description": "Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects:\n\n* attachments\n* bases\n* commit\\_comments\n* issue\\_comments\n* issue\\_events\n* issues\n* milestones\n* organizations\n* projects\n* protected\\_branches\n* pull\\_request\\_reviews\n* pull\\_requests\n* releases\n* repositories\n* review\\_comments\n* schema\n* users\n\nThe archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data.", + "tags": [ + "migrations" + ], + "operationId": "migrations/get-archive-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#download-a-user-migration-archive" + }, + "parameters": [ + { + "$ref": "#/components/parameters/migration-id" + } + ], + "responses": { + "302": { + "description": "Response" }, - "version": { - "$ref": "#/components/schemas/code-scanning-analysis-tool-version" + "304": { + "$ref": "#/components/responses/not_modified" }, - "guid": { - "$ref": "#/components/schemas/code-scanning-analysis-tool-guid" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } }, - "code-scanning-analysis-analysis-key": { - "type": "string", - "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name." - }, - "code-scanning-alert-environment": { - "type": "string", - "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed." - }, - "code-scanning-alert-location": { - "type": "object", - "description": "Describe a region within a file for the alert.", - "properties": { - "path": { - "type": "string" + "delete": { + "summary": "Delete a user migration archive", + "description": "Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted.", + "tags": [ + "migrations" + ], + "operationId": "migrations/delete-archive-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#delete-a-user-migration-archive" + }, + "parameters": [ + { + "$ref": "#/components/parameters/migration-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "start_line": { - "type": "integer" + "404": { + "$ref": "#/components/responses/not_found" }, - "end_line": { - "type": "integer" + "304": { + "$ref": "#/components/responses/not_modified" }, - "start_column": { - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" }, - "end_column": { - "type": "integer" + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } - }, - "code-scanning-alert-classification": { - "type": "string", - "description": "A classification of the file. For example to identify it as generated.", - "nullable": true, - "enum": [ - "source", - "generated", - "test", - "library" - ] - }, - "code-scanning-alert-instance": { - "type": "object", - "properties": { - "ref": { - "$ref": "#/components/schemas/code-scanning-ref" - }, - "analysis_key": { - "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + } + }, + "/user/migrations/{migration_id}/repos/{repo_name}/lock": { + "delete": { + "summary": "Unlock a user repository", + "description": "Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked.", + "tags": [ + "migrations" + ], + "operationId": "migrations/unlock-repo-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#unlock-a-user-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/migration-id" }, - "environment": { - "$ref": "#/components/schemas/code-scanning-alert-environment" + { + "$ref": "#/components/parameters/repo-name" + } + ], + "responses": { + "204": { + "description": "Response" }, - "state": { - "$ref": "#/components/schemas/code-scanning-alert-state" + "304": { + "$ref": "#/components/responses/not_modified" }, - "commit_sha": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "message": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - } + "403": { + "$ref": "#/components/responses/forbidden" }, - "location": { - "$ref": "#/components/schemas/code-scanning-alert-location" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" + } + } + }, + "/user/migrations/{migration_id}/repositories": { + "get": { + "summary": "List repositories for a user migration", + "description": "Lists all the repositories for this user migration.", + "tags": [ + "migrations" + ], + "operationId": "migrations/list-repos-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration" + }, + "parameters": [ + { + "$ref": "#/components/parameters/migration-id" }, - "html_url": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "classifications": { - "type": "array", - "description": "Classifications that have been applied to the file that triggered the alert.\nFor example identifying it as documentation, or a generated file.", - "items": { - "$ref": "#/components/schemas/code-scanning-alert-classification" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } - }, - "code-scanning-alert-items": { - "type": "object", - "properties": { - "number": { - "$ref": "#/components/schemas/alert-number" - }, - "created_at": { - "$ref": "#/components/schemas/alert-created-at" - }, - "url": { - "$ref": "#/components/schemas/alert-url" + } + }, + "/user/orgs": { + "get": { + "summary": "List organizations for the authenticated user", + "description": "List organizations for the authenticated user.\n\nFor OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response.\n\n> [!NOTE]\n> Requests using a fine-grained access token will receive a `200 Success` response with an empty list.", + "tags": [ + "orgs" + ], + "operationId": "orgs/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "html_url": { - "$ref": "#/components/schemas/alert-html-url" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-simple-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "instances_url": { - "$ref": "#/components/schemas/alert-instances-url" + "304": { + "$ref": "#/components/responses/not_modified" }, - "state": { - "$ref": "#/components/schemas/code-scanning-alert-state" + "403": { + "$ref": "#/components/responses/forbidden" }, - "dismissed_by": { - "$ref": "#/components/schemas/simple-user" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "orgs", + "subcategory": "orgs" + } + } + }, + "/user/packages": { + "get": { + "summary": "List packages for the authenticated user's namespace", + "description": "Lists packages owned by the authenticated user within the user's namespace.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/list-packages-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry.", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } }, - "dismissed_at": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-at" + { + "$ref": "#/components/parameters/package-visibility" }, - "dismissed_reason": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + { + "$ref": "#/components/parameters/page" }, - "rule": { - "$ref": "#/components/schemas/code-scanning-alert-rule-summary" + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-for-user" + } + } + } + } }, - "tool": { - "$ref": "#/components/schemas/code-scanning-analysis-tool" + "400": { + "$ref": "#/components/responses/package_es_list_error" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/user/packages/{package_type}/{package_name}": { + "get": { + "summary": "Get a package for the authenticated user", + "description": "Gets a specific package for a package owned by the authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "most_recent_instance": { - "$ref": "#/components/schemas/code-scanning-alert-instance" + { + "$ref": "#/components/parameters/package-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-user" + } + } + } + } } }, - "required": [ - "number", - "created_at", - "url", - "html_url", - "instances_url", - "state", - "dismissed_by", - "dismissed_at", - "dismissed_reason", - "rule", - "tool", - "most_recent_instance" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } }, - "code-scanning-alert-rule": { - "type": "object", - "properties": { - "id": { - "nullable": true, - "type": "string", - "description": "A unique identifier for the rule used to detect the alert." + "delete": { + "summary": "Delete a package for the authenticated user", + "description": "Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#delete-a-package-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "name": { - "type": "string", - "description": "The name of the rule used to detect the alert." + { + "$ref": "#/components/parameters/package-name" + } + ], + "responses": { + "204": { + "description": "Response" }, - "severity": { - "nullable": true, - "type": "string", - "description": "The severity of the alert.", - "enum": [ - "none", - "note", - "warning", - "error" - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "security_severity_level": { - "nullable": true, - "type": "string", - "description": "The security severity of the alert.", - "enum": [ - "low", - "medium", - "high", - "critical" - ] + "403": { + "$ref": "#/components/responses/forbidden" }, - "description": { - "type": "string", - "description": "A short description of the rule used to detect the alert." + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/user/packages/{package_type}/{package_name}/restore": { + "post": { + "summary": "Restore a package for the authenticated user", + "description": "Restores a package owned by the authenticated user.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "full_description": { - "type": "string", - "description": "description of the rule used to detect the alert." + { + "$ref": "#/components/parameters/package-name" }, - "tags": { - "nullable": true, - "type": "array", - "description": "A set of tags applicable for the rule.", - "items": { + { + "name": "token", + "description": "package token", + "schema": { "type": "string" - } - }, - "help": { - "nullable": true, - "type": "string", - "description": "Detailed documentation for the rule as GitHub Flavored Markdown." + }, + "required": false, + "in": "query" } - } - }, - "code-scanning-alert": { - "type": "object", - "properties": { - "number": { - "$ref": "#/components/schemas/alert-number" - }, - "created_at": { - "$ref": "#/components/schemas/alert-created-at" + ], + "responses": { + "204": { + "description": "Response" }, - "url": { - "$ref": "#/components/schemas/alert-url" + "404": { + "$ref": "#/components/responses/not_found" }, - "html_url": { - "$ref": "#/components/schemas/alert-html-url" + "403": { + "$ref": "#/components/responses/forbidden" }, - "instances": { - "deprecated": true - }, - "instances_url": { - "$ref": "#/components/schemas/alert-instances-url" - }, - "state": { - "$ref": "#/components/schemas/code-scanning-alert-state" - }, - "dismissed_by": { - "$ref": "#/components/schemas/simple-user" - }, - "dismissed_at": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-at" - }, - "dismissed_reason": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" - }, - "rule": { - "$ref": "#/components/schemas/code-scanning-alert-rule" - }, - "tool": { - "$ref": "#/components/schemas/code-scanning-analysis-tool" - }, - "most_recent_instance": { - "$ref": "#/components/schemas/code-scanning-alert-instance" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "number", - "created_at", - "url", - "html_url", - "instances_url", - "state", - "dismissed_by", - "dismissed_at", - "dismissed_reason", - "rule", - "tool", - "most_recent_instance" - ] - }, - "code-scanning-alert-set-state": { - "description": "Sets the state of the code scanning alert. Can be one of `open` or `dismissed`. You must provide `dismissed_reason` when you set the state to `dismissed`.", - "type": "string", - "enum": [ - "open", - "dismissed" - ] - }, - "code-scanning-analysis-sarif-id": { - "type": "string", - "description": "An identifier for the upload.", - "example": "6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53", - "nullable": false - }, - "code-scanning-analysis-commit-sha": { - "description": "The SHA of the commit to which the analysis you are uploading relates.", - "type": "string", - "minLength": 40, - "maxLength": 40, - "pattern": "^[0-9a-fA-F]+$" - }, - "code-scanning-analysis-environment": { - "type": "string", - "description": "Identifies the variable values associated with the environment in which this analysis was performed." - }, - "code-scanning-analysis-category": { - "type": "string", - "description": "Identifies the configuration under which the analysis was executed. Used to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code." - }, - "code-scanning-analysis-created-at": { - "type": "string", - "description": "The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", - "format": "date-time", - "readOnly": true, - "nullable": false - }, - "code-scanning-analysis-url": { - "type": "string", - "description": "The REST API URL of the analysis resource.", - "format": "uri", - "readOnly": true, - "nullable": false - }, - "code-scanning-analysis": { - "type": "object", - "properties": { - "ref": { - "$ref": "#/components/schemas/code-scanning-ref" - }, - "commit_sha": { - "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/user/packages/{package_type}/{package_name}/versions": { + "get": { + "summary": "List package versions for a package owned by the authenticated user", + "description": "Lists package versions for a package owned by the authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-package-owned-by-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "analysis_key": { - "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + { + "$ref": "#/components/parameters/package-name" }, - "environment": { - "$ref": "#/components/schemas/code-scanning-analysis-environment" + { + "$ref": "#/components/parameters/page" }, - "category": { - "$ref": "#/components/schemas/code-scanning-analysis-category" + { + "$ref": "#/components/parameters/per-page" }, - "error": { - "type": "string", - "example": "error reading field xyz" + { + "name": "state", + "in": "query", + "required": false, + "description": "The state of the package, either active or deleted.", + "schema": { + "type": "string", + "enum": [ + "active", + "deleted" + ], + "default": "active" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package-version" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-versions-for-authenticated-user" + } + } + } + } }, - "created_at": { - "$ref": "#/components/schemas/code-scanning-analysis-created-at" + "404": { + "$ref": "#/components/responses/not_found" }, - "results_count": { - "type": "integer", - "description": "The total number of results in the analysis." + "403": { + "$ref": "#/components/responses/forbidden" }, - "rules_count": { - "type": "integer", - "description": "The total number of rules used in the analysis." + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "get": { + "summary": "Get a package version for the authenticated user", + "description": "Gets a specific package version for a package owned by the authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "id": { - "type": "integer", - "description": "Unique identifier for this analysis." + { + "$ref": "#/components/parameters/package-name" }, - "url": { - "$ref": "#/components/schemas/code-scanning-analysis-url" + { + "$ref": "#/components/parameters/package-version-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package-version" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-version-authenticated-user" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + }, + "delete": { + "summary": "Delete a package version for the authenticated user", + "description": "Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nThe authenticated user must have admin permissions in the organization to use this endpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#delete-a-package-version-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "sarif_id": { - "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + { + "$ref": "#/components/parameters/package-name" }, - "tool": { - "$ref": "#/components/schemas/code-scanning-analysis-tool" + { + "$ref": "#/components/parameters/package-version-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "deletable": { - "type": "boolean" + "404": { + "$ref": "#/components/responses/not_found" }, - "warning": { - "type": "string", - "description": "Warning generated when processing the analysis", - "example": "123 results were ignored" + "403": { + "$ref": "#/components/responses/forbidden" }, - "tool_name": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "ref", - "commit_sha", - "analysis_key", - "environment", - "error", - "created_at", - "results_count", - "rules_count", - "id", - "url", - "sarif_id", - "tool", - "deletable", - "warning" - ] - }, - "code-scanning-analysis-deletion": { - "title": "Analysis deletion", - "description": "Successful deletion of a code scanning analysis", - "type": "object", - "properties": { - "next_analysis_url": { - "type": "string", - "description": "Next deletable analysis in chain, without last analysis deletion confirmation", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "confirm_delete_url": { - "type": "string", - "description": "Next deletable analysis in chain, with last analysis deletion confirmation", - "format": "uri", - "readOnly": true, - "nullable": true - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + "post": { + "summary": "Restore a package version for the authenticated user", + "description": "Restores a package version owned by the authenticated user.\n\nYou can restore a deleted package version under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-version-for-the-authenticated-user" }, - "required": [ - "next_analysis_url", - "confirm_delete_url" - ] - }, - "code-scanning-analysis-sarif-file": { - "description": "A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string. For more information, see \"[SARIF support for code scanning](https://docs.github.com/code-security/secure-coding/sarif-support-for-code-scanning).\"", - "type": "string" - }, - "code-scanning-sarifs-receipt": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "url": { - "type": "string", - "description": "The REST API URL for checking the status of the upload.", - "format": "uri", - "readOnly": true, - "nullable": false - } - } - }, - "code-scanning-sarifs-status": { - "type": "object", - "properties": { - "processing_status": { - "type": "string", - "enum": [ - "pending", - "complete" - ], - "description": "`pending` files have not yet been processed, while `complete` means all results in the SARIF have been stored." + { + "$ref": "#/components/parameters/package-name" }, - "analyses_url": { - "type": "string", - "description": "The REST API URL for getting the analyses associated with the upload.", - "format": "uri", - "readOnly": true, - "nullable": true + { + "$ref": "#/components/parameters/package-version-id" } - } - }, - "collaborator": { - "title": "Collaborator", - "description": "Collaborator", - "type": "object", - "properties": { - "login": { - "type": "string", - "example": "octocat" + ], + "responses": { + "204": { + "description": "Response" }, - "id": { - "type": "integer", - "example": 1 + "404": { + "$ref": "#/components/responses/not_found" }, - "email": { - "nullable": true, - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "name": { - "nullable": true, - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/user/public_emails": { + "get": { + "summary": "List public email addresses for the authenticated user", + "description": "Lists your publicly visible email address, which you can set with the\n[Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user)\nendpoint.\n\nOAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/list-public-emails-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "node_id": { - "type": "string", - "example": "MDQ6VXNlcjE=" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/email-items-2" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "avatar_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" + "304": { + "$ref": "#/components/responses/not_modified" }, - "gravatar_id": { - "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat" + "403": { + "$ref": "#/components/responses/forbidden" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" + } + } + }, + "/user/repos": { + "get": { + "summary": "List repositories for the authenticated user", + "description": "Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.", + "tags": [ + "repos" + ], + "operationId": "repos/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "visibility", + "description": "Limit results to repositories with the specified visibility.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "public", + "private" + ], + "default": "all" + } }, - "followers_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/followers" + { + "name": "affiliation", + "description": "Comma-separated list of values. Can include: \n * `owner`: Repositories that are owned by the authenticated user. \n * `collaborator`: Repositories that the user has been added to as a collaborator. \n * `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "owner,collaborator,organization_member" + } }, - "following_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" + { + "name": "type", + "description": "Limit results to repositories of the specified type. Will cause a `422` error if used in the same request as **visibility** or **affiliation**.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "owner", + "public", + "private", + "member" + ], + "default": "all" + } }, - "gists_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" + { + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "pushed", + "full_name" + ], + "default": "full_name" + } }, - "starred_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + { + "name": "direction", + "description": "The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" + { + "$ref": "#/components/parameters/per-page" }, - "organizations_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" + { + "$ref": "#/components/parameters/page" }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + { + "$ref": "#/components/parameters/since-repo-date" }, - "events_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" + { + "$ref": "#/components/parameters/before-repo-date" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-items-default-response" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "received_events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "type": { - "type": "string", - "example": "User" + "304": { + "$ref": "#/components/responses/not_modified" }, - "site_admin": { - "type": "boolean" + "403": { + "$ref": "#/components/responses/forbidden" }, - "permissions": { - "type": "object", - "properties": { - "pull": { - "type": "boolean" - }, - "push": { - "type": "boolean" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "repos", + "subcategory": "repos" + } + }, + "post": { + "summary": "Create a repository for the authenticated user", + "description": "Creates a new repository for the authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository.", + "tags": [ + "repos" + ], + "operationId": "repos/create-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "description": { + "description": "A short description of the repository.", + "type": "string" + }, + "homepage": { + "description": "A URL with more information about the repository.", + "type": "string" + }, + "private": { + "description": "Whether the repository is private.", + "default": false, + "type": "boolean" + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "default": false, + "type": "boolean", + "example": true + }, + "team_id": { + "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.", + "type": "integer" + }, + "auto_init": { + "description": "Whether the repository is initialized with a minimal README.", + "default": false, + "type": "boolean" + }, + "gitignore_template": { + "description": "The desired language or platform to apply to the .gitignore.", + "example": "Haskell", + "type": "string" + }, + "license_template": { + "description": "The license keyword of the open source license for this repository.", + "example": "mit", + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + } + }, + "required": [ + "name" + ], + "type": "object" }, - "admin": { - "type": "boolean" + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } - }, - "required": [ - "pull", - "push", - "admin" - ] + } } }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url" - ] - }, - "repository-invitation": { - "title": "Repository Invitation", - "description": "Repository invitations let you manage who you collaborate with.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the repository invitation.", - "example": 42, - "type": "integer" - }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" - }, - "invitee": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/full-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/full-repository" + } + } } - ] - }, - "inviter": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "schema": { + "type": "string" + } } - ] + } }, - "permissions": { - "description": "The permission associated with the invitation.", - "example": "read", - "type": "string", - "enum": [ - "read", - "write", - "admin", - "triage", - "maintain" - ] + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2016-06-13T14:52:50-05:00" + "304": { + "$ref": "#/components/responses/not_modified" }, - "expired": { - "description": "Whether or not the invitation has expired", - "type": "boolean" + "404": { + "$ref": "#/components/responses/not_found" }, - "url": { - "description": "URL for the repository invitation", - "example": "https://api.github.com/user/repository-invitations/1", - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "html_url": { - "type": "string", - "example": "https://github.com/octocat/Hello-World/invitations" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "node_id": { - "type": "string" + "400": { + "$ref": "#/components/responses/bad_request" } }, - "required": [ - "id", - "node_id", - "permissions", - "inviter", - "invitee", - "repository", - "url", - "html_url", - "created_at" - ] - }, - "commit-comment": { - "title": "Commit Comment", - "description": "Commit Comment", - "type": "object", - "properties": { - "html_url": { - "type": "string", - "format": "uri" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/user/repository_invitations": { + "get": { + "summary": "List repository invitations for the authenticated user", + "description": "When authenticating as a user, this endpoint will list all currently open repository invitations for that user.", + "tags": [ + "repos" + ], + "operationId": "repos/list-invitations-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-invitation-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "id": { - "type": "integer" + "304": { + "$ref": "#/components/responses/not_modified" }, - "node_id": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "body": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "path": { - "type": "string", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "collaborators", + "subcategory": "invitations" + } + } + }, + "/user/repository_invitations/{invitation_id}": { + "patch": { + "summary": "Accept a repository invitation", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/accept-invitation-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/collaborators/invitations#accept-a-repository-invitation" + }, + "parameters": [ + { + "$ref": "#/components/parameters/invitation-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "position": { - "type": "integer", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "line": { - "type": "integer", - "nullable": true + "409": { + "$ref": "#/components/responses/conflict" }, - "commit_id": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "304": { + "$ref": "#/components/responses/not_modified" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "collaborators", + "subcategory": "invitations" + } + }, + "delete": { + "summary": "Decline a repository invitation", + "description": "", + "tags": [ + "repos" + ], + "operationId": "repos/decline-invitation-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/collaborators/invitations#decline-a-repository-invitation" + }, + "parameters": [ + { + "$ref": "#/components/parameters/invitation-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "created_at": { - "type": "string", - "format": "date-time" + "409": { + "$ref": "#/components/responses/conflict" }, - "updated_at": { - "type": "string", - "format": "date-time" + "304": { + "$ref": "#/components/responses/not_modified" }, - "author_association": { - "$ref": "#/components/schemas/author_association" + "404": { + "$ref": "#/components/responses/not_found" }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "url", - "html_url", - "id", - "node_id", - "user", - "position", - "line", - "path", - "commit_id", - "body", - "author_association", - "created_at", - "updated_at" - ] - }, - "branch-short": { - "title": "Branch Short", - "description": "Branch Short", - "type": "object", - "properties": { - "name": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "collaborators", + "subcategory": "invitations" + } + } + }, + "/user/social_accounts": { + "get": { + "summary": "List social accounts for the authenticated user", + "description": "Lists all of your social accounts.", + "tags": [ + "users" + ], + "operationId": "users/list-social-accounts-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "commit": { - "type": "object", - "properties": { - "sha": { - "type": "string" - }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/social-account" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/social-account-items" + } + } } }, - "required": [ - "sha", - "url" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "protected": { - "type": "boolean" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "name", - "commit", - "protected" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "social-accounts" + } }, - "link": { - "title": "Link", - "description": "Hypermedia Link", - "type": "object", - "properties": { - "href": { - "type": "string" + "post": { + "summary": "Add social accounts for the authenticated user", + "description": "Add one or more social accounts to the authenticated user's profile.\n\nOAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/add-social-account-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "account_urls": { + "description": "Full URLs for the social media profiles to add.", + "type": "array", + "items": { + "type": "string", + "example": "https://twitter.com/github" + }, + "example": [] + } + }, + "required": [ + "account_urls" + ], + "example": { + "account_urls": [ + "https://www.linkedin.com/company/github/", + "https://twitter.com/github" + ] + } + }, + "examples": { + "default": { + "summary": "Adding multiple social accounts", + "value": { + "account_urls": [ + "https://facebook.com/GitHub", + "https://www.youtube.com/@GitHub" + ] + } + } + } + } } }, - "required": [ - "href" - ] - }, - "auto_merge": { - "title": "Auto merge", - "description": "The status of auto merging a pull request.", - "type": "object", - "properties": { - "enabled_by": { - "$ref": "#/components/schemas/simple-user" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/social-account" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/social-account-items" + } + } + } + } }, - "merge_method": { - "type": "string", - "description": "The merge method to use.", - "enum": [ - "merge", - "squash", - "rebase" - ] + "422": { + "$ref": "#/components/responses/validation_failed" }, - "commit_title": { - "type": "string", - "description": "Title for the merge commit message." + "304": { + "$ref": "#/components/responses/not_modified" }, - "commit_message": { - "type": "string", - "description": "Commit message for the merge commit." + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "enabled_by", - "merge_method", - "commit_title", - "commit_message" - ], - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "social-accounts" + } }, - "pull-request-simple": { - "title": "Pull Request Simple", - "description": "Pull Request Simple", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" - }, - "id": { - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDExOlB1bGxSZXF1ZXN0MQ==" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347" + "delete": { + "summary": "Delete social accounts for the authenticated user", + "description": "Deletes one or more social accounts from the authenticated user's profile.\n\nOAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/delete-social-account-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/social-accounts#delete-social-accounts-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "account_urls": { + "description": "Full URLs for the social media profiles to delete.", + "type": "array", + "items": { + "type": "string", + "example": "https://twitter.com/github" + }, + "example": [] + } + }, + "required": [ + "account_urls" + ], + "example": { + "account_urls": [ + "https://www.linkedin.com/company/github/", + "https://twitter.com/github" + ] + } + }, + "examples": { + "default": { + "summary": "Deleting multiple social accounts", + "value": { + "account_urls": [ + "https://facebook.com/GitHub", + "https://www.youtube.com/@GitHub" + ] + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Response" }, - "diff_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347.diff" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "patch_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347.patch" + "304": { + "$ref": "#/components/responses/not_modified" }, - "issue_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + "404": { + "$ref": "#/components/responses/not_found" }, - "commits_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + "403": { + "$ref": "#/components/responses/forbidden" }, - "review_comments_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "social-accounts" + } + } + }, + "/user/ssh_signing_keys": { + "get": { + "summary": "List SSH signing keys for the authenticated user", + "description": "Lists the SSH signing keys for the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/list-ssh-signing-keys-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "review_comment_url": { - "type": "string", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ssh-signing-key" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/ssh-signing-key-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "comments_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + "304": { + "$ref": "#/components/responses/not_modified" }, - "statuses_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + "404": { + "$ref": "#/components/responses/not_found" }, - "number": { - "type": "integer", - "example": 1347 + "403": { + "$ref": "#/components/responses/forbidden" }, - "state": { - "type": "string", - "example": "open" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "ssh-signing-keys" + } + }, + "post": { + "summary": "Create a SSH signing key for the authenticated user", + "description": "Creates an SSH signing key for the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint.", + "operationId": "users/create-ssh-signing-key-for-authenticated-user", + "tags": [ + "users" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/ssh-signing-keys#create-a-ssh-signing-key-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "title": { + "description": "A descriptive name for the new key.", + "type": "string", + "example": "Personal MacBook Air" + }, + "key": { + "description": "The public SSH key to add to your GitHub account. For more information, see \"[Checking for existing SSH keys](https://docs.github.com/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys).\"", + "type": "string", + "pattern": "^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) |^(sk-ssh-ed25519|sk-ecdsa-sha2-nistp256)@openssh.com " + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "examples": { + "default": { + "value": { + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", + "title": "ssh-rsa AAAAB3NzaC1yc2EAAA" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ssh-signing-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/ssh-signing-key" + } + } + } + } }, - "locked": { - "type": "boolean", - "example": true + "422": { + "$ref": "#/components/responses/validation_failed" }, - "title": { - "type": "string", - "example": "new-feature" + "304": { + "$ref": "#/components/responses/not_modified" }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "body": { - "type": "string", - "example": "Please pull these awesome changes", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "labels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "color": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "ssh-signing-keys" + } + } + }, + "/user/ssh_signing_keys/{ssh_signing_key_id}": { + "get": { + "summary": "Get an SSH signing key for the authenticated user", + "description": "Gets extended details for an SSH signing key.\n\nOAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/get-ssh-signing-key-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/ssh-signing-keys#get-an-ssh-signing-key-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/ssh-signing-key-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ssh-signing-key" }, - "default": { - "type": "boolean" + "examples": { + "default": { + "$ref": "#/components/examples/ssh-signing-key" + } } } } }, - "milestone": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/milestone" - } - ] - }, - "active_lock_reason": { - "type": "string", - "example": "too heated", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "304": { + "$ref": "#/components/responses/not_modified" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "403": { + "$ref": "#/components/responses/forbidden" }, - "closed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "ssh-signing-keys" + } + }, + "delete": { + "summary": "Delete an SSH signing key for the authenticated user", + "description": "Deletes an SSH signing key from the authenticated user's GitHub account.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/delete-ssh-signing-key-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/ssh-signing-keys#delete-an-ssh-signing-key-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/ssh-signing-key-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "merged_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "304": { + "$ref": "#/components/responses/not_modified" }, - "merge_commit_sha": { - "type": "string", - "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "assignee": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + "403": { + "$ref": "#/components/responses/forbidden" }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "ssh-signing-keys" + } + } + }, + "/user/starred": { + "get": { + "summary": "List repositories starred by the authenticated user", + "description": "Lists repositories the authenticated user has starred.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created.", + "tags": [ + "activity" + ], + "operationId": "activity/list-repos-starred-by-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/sort-starred" }, - "requested_reviewers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true + { + "$ref": "#/components/parameters/direction" }, - "requested_teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - }, - "nullable": true + { + "$ref": "#/components/parameters/per-page" }, - "head": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "ref": { - "type": "string" - }, - "repo": { - "$ref": "#/components/schemas/repository" - }, - "sha": { - "type": "string" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository" } - ] - } - }, - "required": [ - "label", - "ref", - "repo", - "sha", - "user" - ] - }, - "base": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "ref": { - "type": "string" - }, - "repo": { - "$ref": "#/components/schemas/repository" - }, - "sha": { - "type": "string" + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/repository-items-default-response" + } + } }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + "application/vnd.github.v3.star+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/starred-repository" } - ] + }, + "examples": { + "alternative-response-with-star-creation-timestamps": { + "$ref": "#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps" + } + } } }, - "required": [ - "label", - "ref", - "repo", - "sha", - "user" - ] - }, - "_links": { - "type": "object", - "properties": { - "comments": { - "$ref": "#/components/schemas/link" - }, - "commits": { - "$ref": "#/components/schemas/link" - }, - "statuses": { - "$ref": "#/components/schemas/link" - }, - "html": { - "$ref": "#/components/schemas/link" - }, - "issue": { - "$ref": "#/components/schemas/link" - }, - "review_comments": { - "$ref": "#/components/schemas/link" - }, - "review_comment": { - "$ref": "#/components/schemas/link" - }, - "self": { - "$ref": "#/components/schemas/link" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } - }, - "required": [ - "comments", - "commits", - "statuses", - "html", - "issue", - "review_comments", - "review_comment", - "self" - ] + } }, - "author_association": { - "$ref": "#/components/schemas/author_association" + "304": { + "$ref": "#/components/responses/not_modified" }, - "auto_merge": { - "$ref": "#/components/schemas/auto_merge" + "403": { + "$ref": "#/components/responses/forbidden" }, - "draft": { - "description": "Indicates whether or not the pull request is a draft.", - "example": false, - "type": "boolean" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "_links", - "assignee", - "labels", - "base", - "body", - "closed_at", - "comments_url", - "commits_url", - "created_at", - "diff_url", - "head", - "html_url", - "id", - "node_id", - "issue_url", - "merge_commit_sha", - "merged_at", - "milestone", - "number", - "patch_url", - "review_comment_url", - "review_comments_url", - "statuses_url", - "state", - "locked", - "title", - "updated_at", - "url", - "user", - "author_association", - "auto_merge" - ] - }, - "simple-commit-status": { - "title": "Simple Commit Status", - "type": "object", - "properties": { - "description": { - "type": "string", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" + } + } + }, + "/user/starred/{owner}/{repo}": { + "get": { + "summary": "Check if a repository is starred by the authenticated user", + "description": "Whether the authenticated user has starred the repository.", + "tags": [ + "activity" + ], + "operationId": "activity/check-repo-is-starred-by-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "id": { - "type": "integer" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response if this repository is starred by you" }, - "node_id": { - "type": "string" + "404": { + "description": "Not Found if this repository is not starred by you", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } }, - "state": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "context": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "target_url": { - "type": "string", - "format": "uri" + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" + } + }, + "put": { + "summary": "Star a repository for the authenticated user", + "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method).\"", + "tags": [ + "activity" + ], + "operationId": "activity/star-repo-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#star-a-repository-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "required": { - "type": "boolean", - "nullable": true + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" }, - "avatar_url": { - "type": "string", - "nullable": true, - "format": "uri" + "403": { + "$ref": "#/components/responses/forbidden" }, - "url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" }, - "created_at": { - "type": "string", - "format": "date-time" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "updated_at": { - "type": "string", - "format": "date-time" + "304": { + "$ref": "#/components/responses/not_modified" } }, - "required": [ - "description", - "id", - "node_id", - "state", - "context", - "target_url", - "avatar_url", - "url", - "created_at", - "updated_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" + } }, - "combined-commit-status": { - "title": "Combined Commit Status", - "description": "Combined Commit Status", - "type": "object", - "properties": { - "state": { - "type": "string" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-commit-status" - } + "delete": { + "summary": "Unstar a repository for the authenticated user", + "description": "Unstar a repository that the authenticated user has previously starred.", + "tags": [ + "activity" + ], + "operationId": "activity/unstar-repo-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#unstar-a-repository-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "sha": { - "type": "string" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" }, - "total_count": { - "type": "integer" + "404": { + "$ref": "#/components/responses/not_found" }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "commit_url": { - "type": "string", - "format": "uri" + "304": { + "$ref": "#/components/responses/not_modified" }, - "url": { - "type": "string", - "format": "uri" + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "state", - "sha", - "total_count", - "statuses", - "repository", - "commit_url", - "url" - ] - }, - "status": { - "title": "Status", - "description": "The status of a commit.", - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "avatar_url": { - "type": "string", - "nullable": true - }, - "id": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" + } + } + }, + "/user/subscriptions": { + "get": { + "summary": "List repositories watched by the authenticated user", + "description": "Lists repositories the authenticated user is watching.", + "tags": [ + "activity" + ], + "operationId": "activity/list-watched-repos-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "state": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "description": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "target_url": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "watching" + } + } + }, + "/user/teams": { + "get": { + "summary": "List teams for the authenticated user", + "description": "List all of the teams across all of the organizations to which the authenticated\nuser belongs.\n\nOAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint.\n\nWhen using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization.", + "tags": [ + "teams" + ], + "operationId": "teams/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "context": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team-full" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-full-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "created_at": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "updated_at": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" }, - "creator": { - "$ref": "#/components/schemas/simple-user" + "403": { + "$ref": "#/components/responses/forbidden" } }, - "required": [ - "url", - "avatar_url", - "id", - "node_id", - "state", - "description", - "target_url", - "context", - "created_at", - "updated_at", - "creator" - ] - }, - "community-health-file": { - "title": "Community Health File", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "teams", + "subcategory": "teams" + } + } + }, + "/user/{account_id}": { + "get": { + "summary": "Get a user using their ID", + "description": "Provides publicly available information about someone with a GitHub account. This method takes their durable user `ID` instead of their `login`, which can change over time.\n\nIf you are requesting information about an [Enterprise Managed User](https://docs.github.com/enterprise-cloud@latest/admin/managing-iam/understanding-iam-for-enterprises/about-enterprise-managed-users), or a GitHub App bot that is installed in an organization that uses Enterprise Managed Users, your requests must be authenticated as a user or GitHub App that has access to the organization to view that account's information. If you are not authorized, the request will return a `404 Not Found` status.\n\nThe `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be public which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication).\n\nThe Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see [Emails API](https://docs.github.com/rest/users/emails).", + "tags": [ + "users" + ], + "operationId": "users/get-by-id", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#get-a-user-using-their-id" + }, + "parameters": [ + { + "$ref": "#/components/parameters/account-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/private-user" + }, + { + "$ref": "#/components/schemas/public-user" + } + ], + "discriminator": { + "propertyName": "user_view_type", + "mapping": { + "public": "#/components/schemas/public-user", + "private": "#/components/schemas/private-user" + } + } + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/public-user-default-response" + }, + "response-with-git-hub-plan-information": { + "$ref": "#/components/examples/public-user-response-with-git-hub-plan-information" + } + } + } + } }, - "html_url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "url", - "html_url" - ] - }, - "community-profile": { - "title": "Community Profile", - "description": "Community Profile", - "type": "object", - "properties": { - "health_percentage": { - "type": "integer", - "example": 100 - }, - "description": { - "type": "string", - "example": "My first repository on GitHub!", - "nullable": true - }, - "documentation": { - "type": "string", - "example": "example.com", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "users" + } + } + }, + "/user/{user_id}/projectsV2/{project_number}/drafts": { + "post": { + "summary": "Create draft item for user owned project", + "description": "Create draft issue item for the specified user owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/create-draft-item-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/drafts#create-draft-item-for-user-owned-project" + }, + "parameters": [ + { + "$ref": "#/components/parameters/user-id" }, - "files": { - "type": "object", - "properties": { - "code_of_conduct": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/code-of-conduct-simple" - } - ] - }, - "code_of_conduct_file": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/community-health-file" - } - ] - }, - "license": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/license-simple" - } - ] - }, - "contributing": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/community-health-file" - } - ] - }, - "readme": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/community-health-file" + { + "$ref": "#/components/parameters/project-number" + } + ], + "requestBody": { + "required": true, + "description": "Details of the draft item to create in the project.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the draft issue item to create in the project." + }, + "body": { + "type": "string", + "description": "The body content of the draft issue item to create in the project." } + }, + "required": [ + "title" ] }, - "issue_template": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/community-health-file" + "examples": { + "title": { + "summary": "Example with Sample Draft Issue Title", + "value": { + "title": "Sample Draft Issue Title" } - ] - }, - "pull_request_template": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/community-health-file" + }, + "body": { + "summary": "Example with Sample Draft Issue Title and Body", + "value": { + "title": "Sample Draft Issue Title", + "body": "This is the body content of the draft issue." } - ] + } } - }, - "required": [ - "code_of_conduct", - "code_of_conduct_file", - "license", - "contributing", - "readme", - "issue_template", - "pull_request_template" - ] - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-02-28T19:09:29Z", - "nullable": true - }, - "content_reports_enabled": { - "type": "boolean", - "example": true + } } }, - "required": [ - "health_percentage", - "description", - "documentation", - "files", - "updated_at" - ] - }, - "diff-entry": { - "title": "Diff Entry", - "description": "Diff Entry", - "type": "object", - "properties": { - "sha": { - "type": "string", - "example": "bbcd538c8e72b8c175046e27cc8f907076331401" - }, - "filename": { - "type": "string", - "example": "file1.txt" - }, - "status": { - "type": "string", - "example": "added" - }, - "additions": { - "type": "integer", - "example": 103 - }, - "deletions": { - "type": "integer", - "example": 21 - }, - "changes": { - "type": "integer", - "example": 124 - }, - "blob_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" - }, - "raw_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-item-simple" + }, + "examples": { + "draft_issue": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + } + } + } }, - "contents_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e" + "304": { + "$ref": "#/components/responses/not_modified" }, - "patch": { - "type": "string", - "example": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + "403": { + "$ref": "#/components/responses/forbidden" }, - "previous_filename": { - "type": "string", - "example": "file.txt" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "additions", - "blob_url", - "changes", - "contents_url", - "deletions", - "filename", - "raw_url", - "sha", - "status" - ] - }, - "commit-comparison": { - "title": "Commit Comparison", - "description": "Commit Comparison", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/compare/master...topic" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/compare/master...topic" - }, - "permalink_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17" - }, - "diff_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/compare/master...topic.diff" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "drafts" + } + } + }, + "/users": { + "get": { + "summary": "List users", + "description": "Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts.\n\nNote: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users.", + "tags": [ + "users" + ], + "operationId": "users/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#list-users" + }, + "parameters": [ + { + "$ref": "#/components/parameters/since-user" }, - "patch_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/compare/master...topic.patch" + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\"", + "schema": { + "type": "string" + } + } + } }, - "base_commit": { - "$ref": "#/components/schemas/commit" + "304": { + "$ref": "#/components/responses/not_modified" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "users" + } + } + }, + "/users/{user_id}/projectsV2/{project_number}/views": { + "post": { + "summary": "Create a view for a user-owned project", + "description": "Create a new view in a user-owned project. Views allow you to customize how items in a project are displayed and filtered.", + "tags": [ + "projects" + ], + "operationId": "projects/create-view-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/views#create-a-view-for-a-user-owned-project" + }, + "parameters": [ + { + "$ref": "#/components/parameters/user-id" }, - "merge_base_commit": { - "$ref": "#/components/schemas/commit" + { + "$ref": "#/components/parameters/project-number" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the view.", + "example": "Sprint Board" + }, + "layout": { + "type": "string", + "description": "The layout of the view.", + "enum": [ + "table", + "board", + "roadmap" + ], + "example": "board" + }, + "filter": { + "type": "string", + "description": "The filter query for the view. See [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) for more information.", + "example": "is:issue is:open" + }, + "visible_fields": { + "type": "array", + "description": "`visible_fields` is not applicable to `roadmap` layout views.\nFor `table` and `board` layouts, this represents the field IDs that should be visible in the view. If not provided, the default visible fields will be used.", + "items": { + "type": "integer" + }, + "example": [ + 123, + 456, + 789 + ] + } + }, + "required": [ + "name", + "layout" + ], + "additionalProperties": false + }, + "examples": { + "table_view": { + "summary": "Create a table view", + "value": { + "name": "All Issues", + "layout": "table", + "filter": "is:issue", + "visible_fields": [ + 123, + 456, + 789 + ] + } + }, + "board_view": { + "summary": "Create a board view with filter", + "value": { + "name": "Sprint Board", + "layout": "board", + "filter": "is:issue is:open label:sprint", + "visible_fields": [ + 123, + 456, + 789 + ] + } + }, + "roadmap_view": { + "summary": "Create a roadmap view", + "value": { + "name": "Product Roadmap", + "layout": "roadmap" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response for creating a view in a user-owned project.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-view" + }, + "examples": { + "table_view": { + "summary": "Response for creating a table view", + "value": { + "$ref": "#/components/examples/projects-v2-view" + } + }, + "board_view": { + "summary": "Response for creating a board view with filter", + "value": { + "$ref": "#/components/examples/projects-v2-view" + } + }, + "roadmap_view": { + "summary": "Response for creating a roadmap view", + "value": { + "$ref": "#/components/examples/projects-v2-view" + } + } + } + } + } }, - "status": { - "type": "string", - "enum": [ - "diverged", - "ahead", - "behind", - "identical" - ], - "example": "ahead" + "304": { + "$ref": "#/components/responses/not_modified" }, - "ahead_by": { - "type": "integer", - "example": 4 + "403": { + "$ref": "#/components/responses/forbidden" }, - "behind_by": { - "type": "integer", - "example": 5 + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "total_commits": { - "type": "integer", - "example": 6 + "404": { + "$ref": "#/components/responses/not_found" }, - "commits": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit" - } + "422": { + "$ref": "#/components/responses/validation_failed" }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/diff-entry" + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } } } }, - "required": [ - "url", - "html_url", - "permalink_url", - "diff_url", - "patch_url", - "base_commit", - "merge_base_commit", - "status", - "ahead_by", - "behind_by", - "total_commits", - "commits" - ] - }, - "content-reference-attachment": { - "title": "ContentReferenceAttachment", - "description": "Content Reference attachments allow you to provide context around URLs posted in comments", - "type": "object", - "properties": { - "id": { - "description": "The ID of the attachment", - "example": 21, - "type": "integer" - }, - "title": { - "description": "The title of the attachment", - "example": "Title of the attachment", - "type": "string", - "maxLength": 1024 - }, - "body": { - "description": "The body of the attachment", - "example": "Body of the attachment", - "type": "string", - "maxLength": 262144 + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "projects", + "subcategory": "views" + } + } + }, + "/users/{username}": { + "get": { + "summary": "Get a user", + "description": "Provides publicly available information about someone with a GitHub account.\n\nIf you are requesting information about an [Enterprise Managed User](https://docs.github.com/enterprise-cloud@latest/admin/managing-iam/understanding-iam-for-enterprises/about-enterprise-managed-users), or a GitHub App bot that is installed in an organization that uses Enterprise Managed Users, your requests must be authenticated as a user or GitHub App that has access to the organization to view that account's information. If you are not authorized, the request will return a `404 Not Found` status.\n\nThe `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be public which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication).\n\nThe Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see [Emails API](https://docs.github.com/rest/users/emails).", + "tags": [ + "users" + ], + "operationId": "users/get-by-username", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#get-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/private-user" + }, + { + "$ref": "#/components/schemas/public-user" + } + ], + "discriminator": { + "propertyName": "user_view_type", + "mapping": { + "public": "#/components/schemas/public-user", + "private": "#/components/schemas/private-user" + } + } + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/public-user-default-response" + }, + "response-with-git-hub-plan-information": { + "$ref": "#/components/examples/public-user-response-with-git-hub-plan-information" + } + } + } + } }, - "node_id": { - "description": "The node_id of the content attachment", - "example": "MDE3OkNvbnRlbnRBdHRhY2htZW50MjE=", - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "title", - "body" - ] - }, - "content-tree": { - "title": "Content Tree", - "description": "Content Tree", - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "users" + } + } + }, + "/users/{username}/attestations/bulk-list": { + "post": { + "summary": "List attestations by bulk subject digests", + "description": "List a collection of artifact attestations associated with any entry in a list of subject digests owned by a user.\n\nThe collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required.\n\n**Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds).", + "tags": [ + "users" + ], + "operationId": "users/list-attestations-bulk", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#list-attestations-by-bulk-subject-digests" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/pagination-before" }, - "download_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/pagination-after" }, - "entries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "content": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/username" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "subject_digests": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subject digests to fetch attestations for.", + "minItems": 1, + "maxItems": 1024 + }, + "predicate_type": { + "type": "string", + "description": "Optional filter for fetching attestations with a given predicate type.\nThis option accepts `provenance`, `sbom`, `release`, or freeform text\nfor custom predicate types." + } }, - "download_url": { - "type": "string", - "format": "uri", - "nullable": true + "required": [ + "subject_digests" + ] + }, + "examples": { + "default": { + "$ref": "#/components/examples/bulk-subject-digest-body" }, - "_links": { + "withPredicateType": { + "$ref": "#/components/examples/bulk-subject-digest-body-with-predicate-type" + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { "type": "object", "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true + "attestations_subject_digests": { + "type": "object", + "additionalProperties": { + "nullable": true, + "type": "array", + "items": { + "type": "object", + "properties": { + "bundle": { + "type": "object", + "properties": { + "mediaType": { + "type": "string" + }, + "verificationMaterial": { + "type": "object", + "properties": {}, + "additionalProperties": true + }, + "dsseEnvelope": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "description": "The bundle of the attestation." + }, + "repository_id": { + "type": "integer" + }, + "bundle_url": { + "type": "string" + } + } + } + }, + "description": "Mapping of subject digest to bundles." }, - "self": { - "type": "string", - "format": "uri" + "page_info": { + "type": "object", + "properties": { + "has_next": { + "type": "boolean", + "description": "Indicates whether there is a next page." + }, + "has_previous": { + "type": "boolean", + "description": "Indicates whether there is a previous page." + }, + "next": { + "type": "string", + "description": "The cursor to the next page." + }, + "previous": { + "type": "string", + "description": "The cursor to the previous page." + } + }, + "description": "Information about the current page." } - }, - "required": [ - "git", - "html", - "self" - ] + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/list-attestations-bulk" + } } - }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url" - ] + } } - }, - "_links": { - "type": "object", - "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" + } + } + }, + "/users/{username}/attestations/delete-request": { + "post": { + "summary": "Delete attestations in bulk", + "description": "Delete artifact attestations in bulk by either subject digests or unique ID.", + "tags": [ + "users" + ], + "operationId": "users/delete-attestations-bulk", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#delete-attestations-in-bulk" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "oneOf": [ + { + "properties": { + "subject_digests": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subject digests associated with the artifact attestations to delete.", + "minItems": 1, + "maxItems": 1024 + } + }, + "required": [ + "subject_digests" + ] + }, + { + "properties": { + "attestation_ids": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "List of unique IDs associated with the artifact attestations to delete.", + "minItems": 1, + "maxItems": 1024 + } + }, + "required": [ + "attestation_ids" + ] + } + ], + "description": "The request body must include either `subject_digests` or `attestation_ids`, but not both." }, - "self": { - "type": "string", - "format": "uri" + "examples": { + "by-subject-digests": { + "summary": "Delete by subject digests", + "value": { + "subject_digests": [ + "sha256:abc123", + "sha512:def456" + ] + } + }, + "by-attestation-ids": { + "summary": "Delete by attestation IDs", + "value": { + "attestation_ids": [ + 111, + 222 + ] + } + } } - }, - "required": [ - "git", - "html", - "self" - ] + } } }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url", - "content", - "encoding" - ] - }, - "content-directory": { - "title": "Content Directory", - "description": "A list of directory items", - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "content": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "download_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "_links": { - "type": "object", - "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true - }, - "self": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "git", - "html", - "self" - ] - } + "responses": { + "200": { + "description": "Response" }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url" - ] + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" } - }, - "content-file": { - "title": "Content File", - "description": "Content File", - "type": "object", - "properties": { - "type": { - "type": "string" + } + }, + "/users/{username}/attestations/digest/{subject_digest}": { + "delete": { + "summary": "Delete attestations by subject digest", + "description": "Delete an artifact attestation by subject digest.", + "tags": [ + "users" + ], + "operationId": "users/delete-attestations-by-subject-digest", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#delete-attestations-by-subject-digest" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "encoding": { - "type": "string" + { + "name": "subject_digest", + "description": "Subject Digest", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + } + ], + "responses": { + "200": { + "description": "Response" }, - "size": { - "type": "integer" + "204": { + "description": "Response" }, - "name": { - "type": "string" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" + } + } + }, + "/users/{username}/attestations/{attestation_id}": { + "delete": { + "summary": "Delete attestations by ID", + "description": "Delete an artifact attestation by unique ID that is associated with a repository owned by a user.", + "tags": [ + "users" + ], + "operationId": "users/delete-attestations-by-id", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#delete-attestations-by-id" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "path": { - "type": "string" + { + "name": "attestation_id", + "description": "Attestation ID", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Response" }, - "content": { - "type": "string" + "204": { + "description": "Response" }, - "sha": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" + } + } + }, + "/users/{username}/attestations/{subject_digest}": { + "get": { + "summary": "List attestations", + "description": "List a collection of artifact attestations with a given subject digest that are associated with repositories owned by a user.\n\nThe collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required.\n\n**Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds).", + "tags": [ + "users" + ], + "operationId": "users/list-attestations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#list-attestations" + }, + "parameters": [ + { + "$ref": "#/components/parameters/per-page" }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/pagination-before" }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/pagination-after" }, - "download_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/username" }, - "_links": { - "type": "object", - "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true - }, - "self": { - "type": "string", - "format": "uri" - } + { + "name": "subject_digest", + "description": "Subject Digest", + "in": "path", + "required": true, + "schema": { + "type": "string" }, - "required": [ - "git", - "html", - "self" - ] - }, - "target": { - "type": "string", - "example": "\"actual/actual.md\"" + "x-multi-segment": true }, - "submodule_git_url": { - "type": "string", - "example": "\"git://example.com/defunkt/dotjs.git\"" + { + "name": "predicate_type", + "description": "Optional filter for fetching attestations with a given predicate type.\nThis option accepts `provenance`, `sbom`, `release`, or freeform text\nfor custom predicate types.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } } - }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url", - "content", - "encoding" - ] - }, - "content-symlink": { - "title": "Symlink Content", - "description": "An object describing a symlink", - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "target": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "name": { - "type": "string" + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "attestations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "bundle": { + "type": "object", + "properties": { + "mediaType": { + "type": "string" + }, + "verificationMaterial": { + "type": "object", + "properties": {}, + "additionalProperties": true + }, + "dsseEnvelope": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "description": "The attestation's Sigstore Bundle.\nRefer to the [Sigstore Bundle Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) for more information." + }, + "repository_id": { + "type": "integer" + }, + "bundle_url": { + "type": "string" + }, + "initiator": { + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/list-attestations" + } + } + } + } }, - "path": { - "type": "string" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } }, - "sha": { - "type": "string" + "204": { + "description": "Response" }, - "url": { - "type": "string", - "format": "uri" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" + } + } + }, + "/users/{username}/docker/conflicts": { + "get": { + "summary": "Get list of conflicting packages during Docker migration for user", + "description": "Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint.", + "tags": [ + "packages" + ], + "operationId": "packages/list-docker-migration-conflicting-packages-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-for-user" + } + } + } + } }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/users/{username}/events": { + "get": { + "summary": "List events for the authenticated user", + "description": "If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. _Optional_: use the fine-grained token with following permission set to view private events: \"Events\" user permissions (read).\n\n> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", + "tags": [ + "activity" + ], + "operationId": "activity/list-events-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "download_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/per-page" }, - "_links": { - "type": "object", - "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true - }, - "self": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-events-items" + } + } } - }, - "required": [ - "git", - "html", - "self" - ] + } } }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url", - "target" - ] - }, - "content-submodule": { - "title": "Symlink Content", - "description": "An object describing a symlink", - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "submodule_git_url": { - "type": "string", - "format": "uri" - }, - "size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" + } + } + }, + "/users/{username}/events/orgs/{org}": { + "get": { + "summary": "List organization events for the authenticated user", + "description": "This is the user's organization dashboard. You must be authenticated as the user to view this.\n\n> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", + "tags": [ + "activity" + ], + "operationId": "activity/list-org-events-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/org" }, - "download_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "$ref": "#/components/parameters/per-page" }, - "_links": { - "type": "object", - "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true - }, - "self": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "git", - "html", - "self" - ] + { + "$ref": "#/components/parameters/page" } - }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url", - "submodule_git_url" - ] - }, - "file-commit": { - "title": "File Commit", - "description": "File Commit", - "type": "object", - "required": [ - "content", - "commit" ], - "properties": { - "content": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "git_url": { - "type": "string" - }, - "download_url": { - "type": "string" - }, - "type": { - "type": "string" - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "string" - }, - "git": { - "type": "string" - }, - "html": { - "type": "string" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-org-events-items" } } } - }, - "nullable": true + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "events" + } + } + }, + "/users/{username}/events/public": { + "get": { + "summary": "List public events for a user", + "description": "> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", + "tags": [ + "activity" + ], + "operationId": "activity/list-public-events-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-public-events-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "commit": { - "type": "object", - "properties": { - "sha": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "author": { - "type": "object", - "properties": { - "date": { - "type": "string" - }, - "name": { - "type": "string" - }, - "email": { - "type": "string" - } - } - }, - "committer": { - "type": "object", - "properties": { - "date": { - "type": "string" - }, - "name": { - "type": "string" - }, - "email": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" } - } - }, - "message": { - "type": "string" - }, - "tree": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "sha": { - "type": "string" + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-public-events-items" } } - }, - "parents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "sha": { - "type": "string" - } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" + } + } + }, + "/users/{username}/followers": { + "get": { + "summary": "List followers of a user", + "description": "Lists the people following the specified user.", + "tags": [ + "users" + ], + "operationId": "users/list-followers-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-followers-of-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" } - } - }, - "verification": { - "type": "object", - "properties": { - "verified": { - "type": "boolean" - }, - "reason": { - "type": "string" - }, - "signature": { - "type": "string", - "nullable": true - }, - "payload": { - "type": "string", - "nullable": true + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "followers" } - }, - "contributor": { - "title": "Contributor", - "description": "Contributor", - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "avatar_url": { - "type": "string", - "format": "uri" - }, - "gravatar_id": { - "type": "string", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string" - }, - "gists_url": { - "type": "string" - }, - "starred_url": { - "type": "string" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" + } + }, + "/users/{username}/following": { + "get": { + "summary": "List the people a user follows", + "description": "Lists the people who the specified user follows.", + "tags": [ + "users" + ], + "operationId": "users/list-following-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-the-people-a-user-follows" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "events_url": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "received_events_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "followers" + } + } + }, + "/users/{username}/following/{target_user}": { + "get": { + "summary": "Check if a user follows another user", + "description": "", + "tags": [ + "users" + ], + "operationId": "users/check-following-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "type": { - "type": "string" + { + "name": "target_user", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "if the user follows the target user" }, - "site_admin": { - "type": "boolean" + "404": { + "description": "if the user does not follow the target user" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "followers" + } + } + }, + "/users/{username}/gists": { + "get": { + "summary": "List gists for a user", + "description": "Lists public gists for the specified user:", + "tags": [ + "gists" + ], + "operationId": "gists/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/gists/gists#list-gists-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "contributions": { - "type": "integer" + { + "$ref": "#/components/parameters/since" }, - "email": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "name": { - "type": "string" + { + "$ref": "#/components/parameters/page" } - }, - "required": [ - "contributions", - "type" - ] - }, - "deployment-status": { - "title": "Deployment Status", - "description": "The status of a deployment.", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1" - }, - "id": { - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDE2OkRlcGxveW1lbnRTdGF0dXMx" - }, - "state": { - "description": "The state of the status.", - "enum": [ - "error", - "failure", - "inactive", - "pending", - "success", - "queued", - "in_progress" - ], - "example": "success", - "type": "string" - }, - "creator": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/base-gist" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/base-gist-items" + } + } } - ] - }, - "description": { - "description": "A short description of the status.", - "default": "", - "type": "string", - "maxLength": 140, - "example": "Deployment finished successfully." - }, - "environment": { - "description": "The environment of the deployment that the status is for.", - "default": "", - "type": "string", - "example": "production" - }, - "target_url": { - "description": "Deprecated: the URL to associate with this status.", - "default": "", - "type": "string", - "format": "uri", - "example": "https://example.com/deployment/42/output" + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2012-07-20T01:19:13Z" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "gists", + "subcategory": "gists" + } + } + }, + "/users/{username}/gpg_keys": { + "get": { + "summary": "List GPG keys for a user", + "description": "Lists the GPG keys for a user. This information is accessible by anyone.", + "tags": [ + "users" + ], + "operationId": "users/list-gpg-keys-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2012-07-20T01:19:13Z" + { + "$ref": "#/components/parameters/per-page" }, - "deployment_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/42" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/gpg-key" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/gpg-key-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "gpg-keys" + } + } + }, + "/users/{username}/hovercard": { + "get": { + "summary": "Get contextual information for a user", + "description": "Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations.\n\n The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository, you would use a `subject_type` value of `repository` and a `subject_id` value of `1300192` (the ID of the `Spoon-Knife` repository).\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "users" + ], + "operationId": "users/get-context-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#get-contextual-information-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "repository_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example" + { + "name": "subject_type", + "description": "Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "organization", + "repository", + "issue", + "pull_request" + ] + } }, - "environment_url": { - "description": "The URL for accessing your environment.", - "default": "", - "type": "string", - "format": "uri", - "example": "https://staging.example.com/" + { + "name": "subject_id", + "description": "Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hovercard" + }, + "examples": { + "default": { + "$ref": "#/components/examples/hovercard" + } + } + } + } }, - "log_url": { - "description": "The URL to associate with this status.", - "default": "", - "type": "string", - "format": "uri", - "example": "https://example.com/deployment/42/output" + "404": { + "$ref": "#/components/responses/not_found" }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "users" + } + } + }, + "/users/{username}/installation": { + "get": { + "summary": "Get a user installation for the authenticated app", + "description": "Enables an authenticated GitHub App to find the user’s installation information.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": [ + "apps" + ], + "operationId": "apps/get-user-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/installation" + }, + "examples": { + "default": { + "$ref": "#/components/examples/installation" + } + } } - ] + } } }, - "required": [ - "id", - "node_id", - "state", - "creator", - "description", - "deployment_url", - "target_url", - "repository_url", - "url", - "created_at", - "updated_at" - ] - }, - "wait-timer": { - "type": "integer", - "example": 30, - "description": "The amount of time to delay a job after the job is initially triggered. The time (in minutes) must be an integer between 0 and 43,200 (30 days)." - }, - "deployment_branch_policy": { - "type": "object", - "description": "The type of deployment branch policy for this environment. To allow all branches to deploy, set to `null`.", - "properties": { - "protected_branches": { - "type": "boolean", - "description": "Whether only branches with branch protection rules can deploy to this environment. If `protected_branches` is `true`, `custom_branch_policies` must be `false`; if `protected_branches` is `false`, `custom_branch_policies` must be `true`." + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "apps" + } + } + }, + "/users/{username}/keys": { + "get": { + "summary": "List public keys for a user", + "description": "Lists the _verified_ public SSH keys for a user. This is accessible by anyone.", + "tags": [ + "users" + ], + "operationId": "users/list-public-keys-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#list-public-keys-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "custom_branch_policies": { - "type": "boolean", - "description": "Whether only branches that match the specified name patterns can deploy to this environment. If `custom_branch_policies` is `true`, `protected_branches` must be `false`; if `custom_branch_policies` is `false`, `protected_branches` must be `true`." + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/key-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/key-simple-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "nullable": true, - "required": [ - "protected_branches", - "custom_branch_policies" - ] - }, - "environment": { - "title": "Environment", - "description": "Details of a deployment environment", - "type": "object", - "properties": { - "id": { - "description": "The id of the environment.", - "example": 56780428, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDExOkVudmlyb25tZW50NTY3ODA0Mjg=" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "keys" + } + } + }, + "/users/{username}/orgs": { + "get": { + "summary": "List organizations for a user", + "description": "List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user.\n\nThis method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead.", + "tags": [ + "orgs" + ], + "operationId": "orgs/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "name": { - "description": "The name of the environment.", - "example": "staging", - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/environments/staging" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-simple-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "orgs" + } + } + }, + "/users/{username}/packages": { + "get": { + "summary": "List packages for a user", + "description": "Lists all packages in a user's namespace for which the requesting user has access.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/list-packages-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#list-packages-for-a-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry.", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } }, - "html_url": { - "type": "string", - "example": "https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging" + { + "$ref": "#/components/parameters/package-visibility" }, - "created_at": { - "description": "The time that the environment was created, in ISO 8601 format.", - "example": "2020-11-23T22:00:40Z", - "format": "date-time", - "type": "string" + { + "$ref": "#/components/parameters/username" }, - "updated_at": { - "description": "The time that the environment was last updated, in ISO 8601 format.", - "example": "2020-11-23T22:00:40Z", - "format": "date-time", - "type": "string" + { + "$ref": "#/components/parameters/page" }, - "protection_rules": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 3515 - }, - "node_id": { - "type": "string", - "example": "MDQ6R2F0ZTM1MTU=" - }, - "type": { - "type": "string", - "example": "wait_timer" - }, - "wait_timer": { - "$ref": "#/components/schemas/wait-timer" - } - }, - "required": [ - "id", - "node_id", - "type" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 3755 - }, - "node_id": { - "type": "string", - "example": "MDQ6R2F0ZTM3NTU=" - }, - "type": { - "type": "string", - "example": "required_reviewers" - }, - "reviewers": { - "type": "array", - "description": "The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed.", - "items": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/deployment-reviewer-type" - }, - "reviewer": { - "anyOf": [ - { - "$ref": "#/components/schemas/simple-user" - }, - { - "$ref": "#/components/schemas/team" - } - ] - } - } - } - } - }, - "required": [ - "id", - "node_id", - "type" - ] + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } }, - { - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 3515 - }, - "node_id": { - "type": "string", - "example": "MDQ6R2F0ZTM1MTU=" - }, - "type": { - "type": "string", - "example": "branch_policy" - } - }, - "required": [ - "id", - "node_id", - "type" - ] + "examples": { + "default": { + "$ref": "#/components/examples/packages-for-user" + } } - ] + } } }, - "deployment_branch_policy": { - "$ref": "#/components/schemas/deployment_branch_policy" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "400": { + "$ref": "#/components/responses/package_es_list_error" } }, - "required": [ - "id", - "node_id", - "name", - "url", - "html_url", - "created_at", - "updated_at" - ] - }, - "short-blob": { - "title": "Short Blob", - "description": "Short Blob", - "type": "object", - "properties": { - "url": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/users/{username}/packages/{package_type}/{package_name}": { + "get": { + "summary": "Get a package for a user", + "description": "Gets a specific package metadata for a public package owned by a user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "sha": { - "type": "string" + { + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-user" + } + } + } + } } }, - "required": [ - "url", - "sha" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } }, - "blob": { - "title": "Blob", - "description": "Blob", - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "encoding": { - "type": "string" + "delete": { + "summary": "Delete a package for a user", + "description": "Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.\n\nIf the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#delete-a-package-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/package-name" }, - "sha": { - "type": "string" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - "size": { - "type": "integer", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "node_id": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "highlighted_content": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "sha", - "url", - "node_id", - "size", - "content", - "encoding" - ] - }, - "git-commit": { - "title": "Git Commit", - "description": "Low-level Git commit operations within a repository", - "type": "object", - "properties": { - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/users/{username}/packages/{package_type}/{package_name}/restore": { + "post": { + "summary": "Restore a package for a user", + "description": "Restores an entire package for a user.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nIf the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/package-name" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/username" }, - "author": { - "description": "Identifying information for the git-user", - "type": "object", - "properties": { - "date": { - "description": "Timestamp of the commit", - "example": "2014-08-09T08:02:04+12:00", - "format": "date-time", - "type": "string" - }, - "email": { - "type": "string", - "description": "Git email address of the user", - "example": "monalisa.octocat@example.com" - }, - "name": { - "description": "Name of the git user", - "example": "Monalisa Octocat", - "type": "string" - } + { + "name": "token", + "description": "package token", + "schema": { + "type": "string" }, - "required": [ - "email", - "name", - "date" - ] + "required": false, + "in": "query" + } + ], + "responses": { + "204": { + "description": "Response" }, - "committer": { - "description": "Identifying information for the git-user", - "type": "object", - "properties": { - "date": { - "description": "Timestamp of the commit", - "example": "2014-08-09T08:02:04+12:00", - "format": "date-time", - "type": "string" - }, - "email": { - "type": "string", - "description": "Git email address of the user", - "example": "monalisa.octocat@example.com" - }, - "name": { - "description": "Name of the git user", - "example": "Monalisa Octocat", - "type": "string" - } - }, - "required": [ - "email", - "name", - "date" - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "message": { - "description": "Message describing the purpose of the commit", - "example": "Fix #42", - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "tree": { - "type": "object", - "properties": { - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "sha", - "url" - ] + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/users/{username}/packages/{package_type}/{package_name}/versions": { + "get": { + "summary": "List package versions for a package owned by a user", + "description": "Lists package versions for a public package owned by a specified user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-package-owned-by-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "parents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package-version" + } }, - "html_url": { - "type": "string", - "format": "uri" + "examples": { + "default": { + "$ref": "#/components/examples/package-versions-for-user" + } } - }, - "required": [ - "sha", - "url", - "html_url" - ] + } } }, - "verification": { - "type": "object", - "properties": { - "verified": { - "type": "boolean" - }, - "reason": { - "type": "string" - }, - "signature": { - "type": "string", - "nullable": true - }, - "payload": { - "type": "string", - "nullable": true - } - }, - "required": [ - "verified", - "reason", - "signature", - "payload" - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "html_url": { - "type": "string", - "format": "uri" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "sha", - "node_id", - "url", - "html_url", - "author", - "committer", - "tree", - "message", - "parents", - "verification" - ] - }, - "git-ref": { - "title": "Git Reference", - "description": "Git references within a repository", - "type": "object", - "properties": { - "ref": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "get": { + "summary": "Get a package version for a user", + "description": "Gets a specific package version for a public package owned by a specified user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/package-name" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/package-version-id" }, - "object": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "sha": { - "description": "SHA for the reference", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string", - "minLength": 40, - "maxLength": 40 - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "type", - "sha", - "url" - ] + { + "$ref": "#/components/parameters/username" } - }, - "required": [ - "ref", - "node_id", - "url", - "object" - ] + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package-version" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-version-user" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } }, - "git-tag": { - "title": "Git Tag", - "description": "Metadata for a Git tag", - "type": "object", - "properties": { - "node_id": { - "type": "string", - "example": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==" - }, - "tag": { - "description": "Name of the tag", - "example": "v0.0.1", - "type": "string" + "delete": { + "summary": "Delete package version for a user", + "description": "Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nIf the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-version-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#delete-package-version-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "sha": { - "type": "string", - "example": "940bd336248efae0f9ee5bc7b2d5c985887b16ac" + { + "$ref": "#/components/parameters/package-name" }, - "url": { - "description": "URL for the tag", - "example": "https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/username" }, - "message": { - "description": "Message describing the purpose of the tag", - "example": "Initial public release", - "type": "string" + { + "$ref": "#/components/parameters/package-version-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "tagger": { - "type": "object", - "properties": { - "date": { - "type": "string" - }, - "email": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "date", - "email", - "name" - ] + "404": { + "$ref": "#/components/responses/not_found" }, - "object": { - "type": "object", - "properties": { - "sha": { - "type": "string" - }, - "type": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "sha", - "type", - "url" - ] + "403": { + "$ref": "#/components/responses/forbidden" }, - "verification": { - "$ref": "#/components/schemas/verification" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "sha", - "url", - "node_id", - "tagger", - "object", - "tag", - "message" - ] - }, - "git-tree": { - "title": "Git Tree", - "description": "The hierarchy between files in a Git repository.", - "type": "object", - "properties": { - "sha": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + "post": { + "summary": "Restore package version for a user", + "description": "Restores a specific package version for a user.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nIf the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"\n\nOAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).\"", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-version-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-package-version-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/package-name" }, - "truncated": { - "type": "boolean" + { + "$ref": "#/components/parameters/username" }, - "tree": { - "description": "Objects specifying a tree structure", - "type": "array", - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "example": "test/file.rb" - }, - "mode": { - "type": "string", - "example": "040000" - }, - "type": { - "type": "string", - "example": "tree" - }, - "sha": { - "type": "string", - "example": "23f6827669e43831def8a7ad935069c8bd418261" - }, - "size": { - "type": "integer", - "example": 12 - }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261" - } - } - }, - "example": [ - { - "path": "file.rb", - "mode": "100644", - "type": "blob", - "size": 30, - "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] - } - ] + { + "$ref": "#/components/parameters/package-version-id" } - }, - "required": [ - "sha", - "url", - "tree", - "truncated" - ] - }, - "hook-response": { - "title": "Hook Response", - "type": "object", - "properties": { - "code": { - "type": "integer", - "nullable": true + ], + "responses": { + "204": { + "description": "Response" }, - "status": { - "type": "string", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "message": { - "type": "string", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "code", - "status", - "message" - ] - }, - "hook": { - "title": "Webhook", - "description": "Webhooks for repositories.", - "type": "object", - "properties": { - "type": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/users/{username}/projectsV2": { + "get": { + "summary": "List projects for user", + "description": "List all projects owned by a specific user accessible by the authenticated user.", + "tags": [ + "projects" + ], + "operationId": "projects/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/projects#list-projects-for-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "id": { - "description": "Unique identifier of the webhook.", - "example": 42, - "type": "integer" + { + "name": "q", + "description": "Limit results to projects of the specified type.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } }, - "name": { - "description": "The name of a valid service, use 'web' for a webhook.", - "example": "web", - "type": "string" + { + "$ref": "#/components/parameters/pagination-before" }, - "active": { - "description": "Determines whether the hook is actually triggered on pushes.", - "type": "boolean", - "example": true + { + "$ref": "#/components/parameters/pagination-after" }, - "events": { - "description": "Determines what events the hook is triggered for. Default: ['push'].", - "type": "array", - "items": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-v2" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2" + } + } + } }, - "example": [ - "push", - "pull_request" - ] - }, - "config": { - "type": "object", - "properties": { - "email": { - "type": "string", - "example": "\"foo@bar.com\"" - }, - "password": { - "type": "string", - "example": "\"foo\"" - }, - "room": { - "type": "string", - "example": "\"roomer\"" - }, - "subdomain": { - "type": "string", - "example": "\"foo\"" - }, - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" - }, - "digest": { - "type": "string", - "example": "\"sha256\"" - }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" - }, - "token": { - "type": "string", - "example": "\"abc\"" + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-09-06T20:39:23Z" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-09-06T17:26:27Z" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1" - }, - "test_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/test" - }, - "ping_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/pings" + "304": { + "$ref": "#/components/responses/not_modified" }, - "deliveries_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries" + "403": { + "$ref": "#/components/responses/forbidden" }, - "last_response": { - "$ref": "#/components/schemas/hook-response" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "url", - "type", - "name", - "active", - "events", - "config", - "ping_url", - "created_at", - "updated_at", - "last_response", - "test_url" - ] - }, - "import": { - "title": "Import", - "description": "A repository import from an external source.", - "type": "object", - "properties": { - "vcs": { - "type": "string", - "nullable": true - }, - "use_lfs": { - "type": "boolean" - }, - "vcs_url": { - "description": "The URL of the originating repository.", - "type": "string" - }, - "svc_root": { - "type": "string" - }, - "tfvc_project": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "auth", - "error", - "none", - "detecting", - "choose", - "auth_failed", - "importing", - "mapping", - "waiting_to_push", - "pushing", - "complete", - "setup", - "unknown", - "detection_found_multiple", - "detection_found_nothing", - "detection_needs_auth" - ] - }, - "status_text": { - "type": "string", - "nullable": true - }, - "failed_step": { - "type": "string", - "nullable": true - }, - "error_message": { - "type": "string", - "nullable": true - }, - "import_percent": { - "type": "integer", - "nullable": true - }, - "commit_count": { - "type": "integer", - "nullable": true - }, - "push_percent": { - "type": "integer", - "nullable": true - }, - "has_large_files": { - "type": "boolean" - }, - "large_files_size": { - "type": "integer" - }, - "large_files_count": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "projects" + } + } + }, + "/users/{username}/projectsV2/{project_number}": { + "get": { + "summary": "Get project for user", + "description": "Get a specific user-owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/get-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/projects#get-project-for-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "project_choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "vcs": { - "type": "string" - }, - "tfvc_project": { - "type": "string" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2" }, - "human_name": { - "type": "string" + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "message": { - "type": "string" - }, - "authors_count": { - "type": "integer", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "authors_url": { - "type": "string", - "format": "uri" + "304": { + "$ref": "#/components/responses/not_modified" }, - "repository_url": { - "type": "string", - "format": "uri" + "403": { + "$ref": "#/components/responses/forbidden" }, - "svn_root": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "vcs", - "vcs_url", - "status", - "url", - "repository_url", - "html_url", - "authors_url" - ] - }, - "porter-author": { - "title": "Porter Author", - "description": "Porter Author", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "remote_id": { - "type": "string" - }, - "remote_name": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "projects" + } + } + }, + "/users/{username}/projectsV2/{project_number}/fields": { + "get": { + "summary": "List project fields for user", + "description": "List all fields for a specific user-owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/list-fields-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/fields#list-project-fields-for-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "email": { - "type": "string" + { + "$ref": "#/components/parameters/username" }, - "name": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/pagination-before" }, - "import_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/parameters/pagination-after" } - }, - "required": [ - "id", - "remote_id", - "remote_name", - "email", - "name", - "url", - "import_url" - ] - }, - "porter-large-file": { - "title": "Porter Large File", - "description": "Porter Large File", - "type": "object", - "properties": { - "ref_name": { - "type": "string" + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-v2-field" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2-field-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "path": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "oid": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "size": { - "type": "integer" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "oid", - "path", - "ref_name", - "size" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "fields" + } }, - "issue-event-label": { - "title": "Issue Event Label", - "description": "Issue Event Label", - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "color": { - "type": "string", - "nullable": true - } + "post": { + "summary": "Add field to user owned project", + "description": "Add a field to a specified user owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/add-field-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/fields#add-field-to-user-owned-project" }, - "required": [ - "name", - "color" - ] - }, - "issue-event-dismissed-review": { - "title": "Issue Event Dismissed Review", - "type": "object", - "properties": { - "state": { - "type": "string" - }, - "review_id": { - "type": "integer" - }, - "dismissal_message": { - "type": "string", - "nullable": true + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "dismissal_commit_id": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/project-number" } - }, - "required": [ - "state", - "review_id", - "dismissal_message" - ] - }, - "issue-event-milestone": { - "title": "Issue Event Milestone", - "description": "Issue Event Milestone", - "type": "object", - "properties": { - "title": { - "type": "string" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + }, + "data_type": { + "type": "string", + "description": "The field's data type.", + "enum": [ + "text", + "number", + "date" + ] + } + }, + "required": [ + "name", + "data_type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + }, + "data_type": { + "type": "string", + "description": "The field's data type.", + "enum": [ + "single_select" + ] + }, + "single_select_options": { + "type": "array", + "description": "The options available for single select fields. At least one option must be provided when creating a single select field.", + "items": { + "$ref": "#/components/schemas/projects-v2-field-single-select-option" + } + } + }, + "required": [ + "name", + "data_type", + "single_select_options" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + }, + "data_type": { + "type": "string", + "description": "The field's data type.", + "enum": [ + "iteration" + ] + }, + "iteration_configuration": { + "$ref": "#/components/schemas/projects-v2-field-iteration-configuration" + } + }, + "required": [ + "name", + "data_type", + "iteration_configuration" + ], + "additionalProperties": false + } + ] + }, + "examples": { + "text_field": { + "summary": "Create a text field", + "value": { + "name": "Team notes", + "data_type": "text" + } + }, + "number_field": { + "summary": "Create a number field", + "value": { + "name": "Story points", + "data_type": "number" + } + }, + "date_field": { + "summary": "Create a date field", + "value": { + "name": "Due date", + "data_type": "date" + } + }, + "single_select_field": { + "$ref": "#/components/examples/projects-v2-field-single-select-request" + }, + "iteration_field": { + "$ref": "#/components/examples/projects-v2-field-iteration-request" + } + } + } } }, - "required": [ - "title" - ] - }, - "issue-event-project-card": { - "title": "Issue Event Project Card", - "description": "Issue Event Project Card", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-field" + }, + "examples": { + "text_field": { + "$ref": "#/components/examples/projects-v2-field-text" + }, + "number_field": { + "$ref": "#/components/examples/projects-v2-field-number" + }, + "date_field": { + "$ref": "#/components/examples/projects-v2-field-date" + }, + "single_select_field": { + "$ref": "#/components/examples/projects-v2-field-single-select" + }, + "iteration_field": { + "$ref": "#/components/examples/projects-v2-field-iteration" + } + } + } + } }, - "project_url": { - "type": "string", - "format": "uri" + "304": { + "$ref": "#/components/responses/not_modified" }, - "project_id": { - "type": "integer" + "403": { + "$ref": "#/components/responses/forbidden" }, - "column_name": { - "type": "string" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "previous_column_name": { - "type": "string" + "422": { + "$ref": "#/components/responses/validation_failed" } }, - "required": [ - "url", - "id", - "project_url", - "project_id", - "column_name" - ] - }, - "issue-event-rename": { - "title": "Issue Event Rename", - "description": "Issue Event Rename", - "type": "object", - "properties": { - "from": { - "type": "string" - }, - "to": { - "type": "string" - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "fields" + } + } + }, + "/users/{username}/projectsV2/{project_number}/fields/{field_id}": { + "get": { + "summary": "Get project field for user", + "description": "Get a specific field for a user-owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/get-field-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/fields#get-project-field-for-user" }, - "required": [ - "from", - "to" - ] - }, - "issue-event": { - "title": "Issue Event", - "description": "Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDEwOklzc3VlRXZlbnQx" + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/events/1" + { + "$ref": "#/components/parameters/field-id" }, - "actor": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-field" + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2-field" + } + } } - ] - }, - "event": { - "type": "string", - "example": "closed" + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "commit_id": { - "type": "string", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "nullable": true + "304": { + "$ref": "#/components/responses/not_modified" }, - "commit_url": { - "type": "string", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "fields" + } + } + }, + "/users/{username}/projectsV2/{project_number}/items": { + "get": { + "summary": "List items for a user owned project", + "description": "List all items for a specific user-owned project accessible by the authenticated user.", + "tags": [ + "projects" + ], + "operationId": "projects/list-items-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#list-items-for-a-user-owned-project" + }, + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "issue": { - "$ref": "#/components/schemas/issue-simple" + { + "$ref": "#/components/parameters/username" }, - "label": { - "$ref": "#/components/schemas/issue-event-label" + { + "$ref": "#/components/parameters/pagination-before" }, - "assignee": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + { + "$ref": "#/components/parameters/pagination-after" }, - "assigner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + { + "$ref": "#/components/parameters/per-page" }, - "review_requester": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + { + "name": "q", + "description": "Search query to filter items, see [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) for more information.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } }, - "requested_reviewer": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "name": "fields", + "description": "Limit results to specific fields, by their IDs. If not specified, the title field will be returned.\n\nExample: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" + } + } + ] + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-v2-item-with-content" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2-item-with-content" + } + } } - ] - }, - "requested_team": { - "$ref": "#/components/schemas/team" - }, - "dismissed_review": { - "$ref": "#/components/schemas/issue-event-dismissed-review" - }, - "milestone": { - "$ref": "#/components/schemas/issue-event-milestone" - }, - "project_card": { - "$ref": "#/components/schemas/issue-event-project-card" - }, - "rename": { - "$ref": "#/components/schemas/issue-event-rename" + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "author_association": { - "$ref": "#/components/schemas/author_association" + "304": { + "$ref": "#/components/responses/not_modified" }, - "lock_reason": { - "type": "string", - "nullable": true + "403": { + "$ref": "#/components/responses/forbidden" }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" - } - ] + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" + } }, - "labeled-issue-event": { - "title": "Labeled Issue Event", - "description": "Labeled Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "event": { - "type": "string" - }, - "commit_id": { - "type": "string", - "nullable": true - }, - "commit_url": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string" - }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + "post": { + "summary": "Add item to user owned project", + "description": "Add an issue or pull request item to the specified user owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/add-item-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#add-item-to-user-owned-project" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "label": { - "type": "object", - "properties": { - "name": { - "type": "string" + { + "$ref": "#/components/parameters/project-number" + } + ], + "requestBody": { + "required": true, + "description": "Details of the item to add to the project. You can specify either the unique ID or the repository owner, name, and issue/PR number.", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": [ + "Issue", + "PullRequest" + ], + "description": "The type of item to add to the project. Must be either Issue or PullRequest." + }, + "id": { + "type": "integer", + "description": "The unique identifier of the issue or pull request to add to the project." + }, + "owner": { + "type": "string", + "description": "The repository owner login." + }, + "repo": { + "type": "string", + "description": "The repository name." + }, + "number": { + "type": "integer", + "description": "The issue or pull request number." + } + }, + "required": [ + "type" + ], + "oneOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "owner", + "repo", + "number" + ] + } + ] }, - "color": { - "type": "string" + "examples": { + "issue_with_id": { + "summary": "Add an issue using its unique ID", + "value": { + "type": "Issue", + "id": 3 + } + }, + "pull_request_with_id": { + "summary": "Add a pull request using its unique ID", + "value": { + "type": "PullRequest", + "id": 3 + } + }, + "issue_with_nwo": { + "summary": "Add an issue using repository owner, name, and issue number", + "value": { + "type": "Issue", + "owner": "octocat", + "repo": "hello-world", + "number": 42 + } + }, + "pull_request_with_nwo": { + "summary": "Add a pull request using repository owner, name, and PR number", + "value": { + "type": "PullRequest", + "owner": "octocat", + "repo": "hello-world", + "number": 123 + } + } } - }, - "required": [ - "name", - "color" - ] + } } }, - "required": [ - "label", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "unlabeled-issue-event": { - "title": "Unlabeled Issue Event", - "description": "Unlabeled Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-item-simple" + }, + "examples": { + "issue_with_id": { + "summary": "Response for adding an issue using its unique ID", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + }, + "pull_request_with_id": { + "summary": "Response for adding a pull request using its unique ID", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + }, + "issue_with_nwo": { + "summary": "Response for adding an issue using repository owner, name, and issue number", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + }, + "pull_request_with_nwo": { + "summary": "Response for adding a pull request using repository owner, name, and PR number", + "value": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + } + } + } + } }, - "node_id": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "url": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" + } + } + }, + "/users/{username}/projectsV2/{project_number}/items/{item_id}": { + "get": { + "summary": "Get an item for a user owned project", + "description": "Get a specific item from a user-owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/get-user-item", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#get-an-item-for-a-user-owned-project" + }, + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "event": { - "type": "string" + { + "$ref": "#/components/parameters/username" }, - "commit_id": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/item-id" }, - "commit_url": { - "type": "string", - "nullable": true + { + "name": "fields", + "description": "Limit results to specific fields, by their IDs. If not specified, the title field will be returned.\n\nExample: fields[]=123&fields[]=456&fields[]=789 or fields=123,456,789", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" + } + } + ] + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-item-with-content" + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2-item-with-content" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "created_at": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + "403": { + "$ref": "#/components/responses/forbidden" }, - "label": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "color": { - "type": "string" - } - }, - "required": [ - "name", - "color" - ] + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "label", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" + } }, - "assigned-issue-event": { - "title": "Assigned Issue Event", - "description": "Assigned Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" + "patch": { + "summary": "Update project item for user", + "description": "Update a specific item in a user-owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/update-item-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#update-project-item-for-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/username" }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/item-id" + } + ], + "requestBody": { + "required": true, + "description": "Field updates to apply to the project item. Only text, number, date, single select, and iteration fields are supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "fields": { + "type": "array", + "description": "A list of field updates to apply.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the project field to update." + }, + "value": { + "description": "The new value for the field:\n- For text, number, and date fields, provide the new value directly.\n- For single select and iteration fields, provide the ID of the option or iteration.\n- To clear the field, set this to null.", + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "required": [ + "id", + "value" + ] + } + } + }, + "required": [ + "fields" + ] + }, + "examples": { + "text_field": { + "summary": "Update a text field", + "value": { + "fields": [ + { + "id": 123, + "value": "Updated text value" + } + ] + } + }, + "number_field": { + "summary": "Update a number field", + "value": { + "fields": [ + { + "id": 456, + "value": 42.5 + } + ] + } + }, + "date_field": { + "summary": "Update a date field", + "value": { + "fields": [ + { + "id": 789, + "value": "2023-10-05" + } + ] + } + }, + "single_select_field": { + "summary": "Update a single select field", + "value": { + "fields": [ + { + "id": 789, + "value": "47fc9ee4" + } + ] + } + }, + "iteration_field": { + "summary": "Update an iteration field", + "value": { + "fields": [ + { + "id": 1011, + "value": "866ee5b8" + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-item-with-content" + }, + "examples": { + "text_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "number_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "date_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "single_select_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + }, + "iteration_field": { + "$ref": "#/components/examples/projects-v2-item-with-content" + } + } + } + } }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "event": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "commit_id": { - "type": "string", - "nullable": true + "404": { + "$ref": "#/components/responses/not_found" }, - "commit_url": { - "type": "string", - "nullable": true + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" + } + }, + "delete": { + "summary": "Delete project item for user", + "description": "Delete a specific item from a user-owned project.", + "tags": [ + "projects" + ], + "operationId": "projects/delete-item-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#delete-project-item-for-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "created_at": { - "type": "string" + { + "$ref": "#/components/parameters/username" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "$ref": "#/components/parameters/item-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - "assignee": { - "$ref": "#/components/schemas/simple-user" + "403": { + "$ref": "#/components/responses/forbidden" }, - "assigner": { - "$ref": "#/components/schemas/simple-user" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app", - "assignee", - "assigner" - ] - }, - "unassigned-issue-event": { - "title": "Unassigned Issue Event", - "description": "Unassigned Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" + } + } + }, + "/users/{username}/projectsV2/{project_number}/views/{view_number}/items": { + "get": { + "summary": "List items for a user project view", + "description": "List items in a user project with the saved view's filter applied.", + "tags": [ + "projects" + ], + "operationId": "projects/list-view-items-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#list-items-for-a-user-project-view" + }, + "parameters": [ + { + "$ref": "#/components/parameters/project-number" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/username" }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/view-number" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + { + "name": "fields", + "description": "Limit results to specific fields, by their IDs. If not specified, the\ntitle field will be returned.\n\nExample: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" + } + } + ] + } }, - "event": { - "type": "string" + { + "$ref": "#/components/parameters/pagination-before" }, - "commit_id": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/pagination-after" }, - "commit_url": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/per-page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-v2-item-with-content" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2-item-with-content" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, - "created_at": { - "type": "string" + "304": { + "$ref": "#/components/responses/not_modified" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + "403": { + "$ref": "#/components/responses/forbidden" }, - "assignee": { - "$ref": "#/components/schemas/simple-user" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - "assigner": { - "$ref": "#/components/schemas/simple-user" + "404": { + "$ref": "#/components/responses/not_found" } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app", - "assignee", - "assigner" - ] - }, - "milestoned-issue-event": { - "title": "Milestoned Issue Event", - "description": "Milestoned Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "projects", + "subcategory": "items" + } + } + }, + "/users/{username}/received_events": { + "get": { + "summary": "List events received by the authenticated user", + "description": "These are events that you've received by watching repositories and following users. If you are authenticated as the\ngiven user, you will see private events. Otherwise, you'll only see public events.\n\n> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", + "tags": [ + "activity" + ], + "operationId": "activity/list-received-events-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/per-page" }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-received-events-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" + } + } + }, + "/users/{username}/received_events/public": { + "get": { + "summary": "List public events received by a user", + "description": "> [!NOTE]\n> This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.", + "tags": [ + "activity" + ], + "operationId": "activity/list-received-public-events-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/per-page" }, - "event": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-received-public-events-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" + } + } + }, + "/users/{username}/repos": { + "get": { + "summary": "List repositories for a user", + "description": "Lists public repositories for the specified user.", + "tags": [ + "repos" + ], + "operationId": "repos/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#list-repositories-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "commit_id": { - "type": "string", - "nullable": true + { + "name": "type", + "description": "Limit results to repositories of the specified type.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "owner", + "member" + ], + "default": "owner" + } }, - "commit_url": { - "type": "string", - "nullable": true + { + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "pushed", + "full_name" + ], + "default": "full_name" + } }, - "created_at": { - "type": "string" + { + "name": "direction", + "description": "The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "$ref": "#/components/parameters/per-page" }, - "milestone": { - "type": "object", - "properties": { - "title": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } } }, - "required": [ - "title" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "milestone", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "demilestoned-issue-event": { - "title": "Demilestoned Issue Event", - "description": "Demilestoned Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + } + }, + "/users/{username}/settings/billing/premium_request/usage": { + "get": { + "summary": "Get billing premium request usage report for a user", + "description": "Gets a report of premium request usage for a user.\n\n**Note:** Only data from the past 24 months is accessible via this endpoint.", + "tags": [ + "billing" + ], + "operationId": "billing/get-github-billing-premium-request-usage-report-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-premium-request-usage-report-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/billing-usage-report-year" }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/billing-usage-report-month-default" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/billing-usage-report-day" }, - "event": { - "type": "string" + { + "$ref": "#/components/parameters/billing-usage-report-model" }, - "commit_id": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/billing-usage-report-product" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/billing_premium_request_usage_report_user" }, - "commit_url": { - "type": "string", - "nullable": true + "400": { + "$ref": "#/components/responses/bad_request" }, - "created_at": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + "404": { + "$ref": "#/components/responses/not_found" }, - "milestone": { - "type": "object", - "properties": { - "title": { - "type": "string" - } - }, - "required": [ - "title" - ] + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "milestone", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "renamed-issue-event": { - "title": "Renamed Issue Event", - "description": "Renamed Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" + } + } + }, + "/users/{username}/settings/billing/usage": { + "get": { + "summary": "Get billing usage report for a user", + "description": "Gets a report of the total usage for a user.\n\n**Note:** This endpoint is only available to users with access to the enhanced billing platform.", + "tags": [ + "billing" + ], + "operationId": "billing/get-github-billing-usage-report-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-usage-report-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/billing-usage-report-year" }, - "event": { - "type": "string" + { + "$ref": "#/components/parameters/billing-usage-report-month" }, - "commit_id": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/billing-usage-report-day" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/billing_usage_report_user" }, - "commit_url": { - "type": "string", - "nullable": true + "400": { + "$ref": "#/components/responses/bad_request" }, - "created_at": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + "500": { + "$ref": "#/components/responses/internal_error" }, - "rename": { - "type": "object", - "properties": { - "from": { - "type": "string" - }, - "to": { - "type": "string" - } - }, - "required": [ - "from", - "to" - ] + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "rename", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "review-requested-issue-event": { - "title": "Review Requested Issue Event", - "description": "Review Requested Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "event": { - "type": "string" - }, - "commit_id": { - "type": "string", - "nullable": true - }, - "commit_url": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string" - }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" - }, - "review_requester": { - "$ref": "#/components/schemas/simple-user" - }, - "requested_team": { - "$ref": "#/components/schemas/team" - }, - "requested_reviewer": { - "$ref": "#/components/schemas/simple-user" - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" + } + } + }, + "/users/{username}/settings/billing/usage/summary": { + "get": { + "summary": "Get billing usage summary for a user", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets a summary report of usage for a user.\n\n**Note:** Only data from the past 24 months is accessible via this endpoint.", + "tags": [ + "billing" + ], + "operationId": "billing/get-github-billing-usage-summary-report-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-usage-summary-for-a-user" }, - "required": [ - "review_requester", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "review-request-removed-issue-event": { - "title": "Review Request Removed Issue Event", - "description": "Review Request Removed Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/parameters/billing-usage-report-year" }, - "url": { - "type": "string" + { + "$ref": "#/components/parameters/billing-usage-report-month-default" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/parameters/billing-usage-report-day" }, - "event": { - "type": "string" + { + "$ref": "#/components/parameters/billing-usage-report-repository" }, - "commit_id": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/billing-usage-report-product" }, - "commit_url": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/billing-usage-report-sku" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/billing_usage_summary_report_user" }, - "created_at": { - "type": "string" + "400": { + "$ref": "#/components/responses/bad_request" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + "403": { + "$ref": "#/components/responses/forbidden" }, - "review_requester": { - "$ref": "#/components/schemas/simple-user" + "404": { + "$ref": "#/components/responses/not_found" }, - "requested_team": { - "$ref": "#/components/schemas/team" + "500": { + "$ref": "#/components/responses/internal_error" }, - "requested_reviewer": { - "$ref": "#/components/schemas/simple-user" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, - "required": [ - "review_requester", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "review-dismissed-issue-event": { - "title": "Review Dismissed Issue Event", - "description": "Review Dismissed Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "event": { - "type": "string" - }, - "commit_id": { - "type": "string", - "nullable": true - }, - "commit_url": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" + } + } + }, + "/users/{username}/social_accounts": { + "get": { + "summary": "List social accounts for a user", + "description": "Lists social media accounts for a user. This endpoint is accessible by anyone.", + "tags": [ + "users" + ], + "operationId": "users/list-social-accounts-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "$ref": "#/components/parameters/per-page" }, - "dismissed_review": { - "type": "object", - "properties": { - "state": { - "type": "string" - }, - "review_id": { - "type": "integer" - }, - "dismissal_message": { - "nullable": true, - "type": "string" - }, - "dismissal_commit_id": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/social-account" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/social-account-items" + } + } } }, - "required": [ - "state", - "review_id", - "dismissal_message" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "dismissed_review", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "locked-issue-event": { - "title": "Locked Issue Event", - "description": "Locked Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "event": { - "type": "string" - }, - "commit_id": { - "type": "string", - "nullable": true - }, - "commit_url": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "social-accounts" + } + } + }, + "/users/{username}/ssh_signing_keys": { + "get": { + "summary": "List SSH signing keys for a user", + "description": "Lists the SSH signing keys for a user. This operation is accessible by anyone.", + "tags": [ + "users" + ], + "operationId": "users/list-ssh-signing-keys-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "$ref": "#/components/parameters/per-page" }, - "lock_reason": { - "type": "string", - "example": "\"off-topic\"", - "nullable": true + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ssh-signing-key" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/ssh-signing-key-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "lock_reason", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "added-to-project-issue-event": { - "title": "Added to Project Issue Event", - "description": "Added to Project Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "event": { - "type": "string" - }, - "commit_id": { - "type": "string", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "ssh-signing-keys" + } + } + }, + "/users/{username}/starred": { + "get": { + "summary": "List repositories starred by a user", + "description": "Lists repositories a user has starred.\n\nThis endpoint supports the following custom media types. For more information, see \"[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).\"\n\n- **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created.", + "tags": [ + "activity" + ], + "operationId": "activity/list-repos-starred-by-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "commit_url": { - "type": "string", - "nullable": true + { + "$ref": "#/components/parameters/sort-starred" }, - "created_at": { - "type": "string" + { + "$ref": "#/components/parameters/direction" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "$ref": "#/components/parameters/per-page" }, - "project_card": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "url": { - "type": "string", - "format": "uri" - }, - "project_id": { - "type": "integer" - }, - "project_url": { - "type": "string", - "format": "uri" - }, - "column_name": { - "type": "string" - }, - "previous_column_name": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/starred-repository" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository" + } + } + ] + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/repository-items-default-response" + } + } } }, - "required": [ - "id", - "url", - "project_id", - "project_url", - "column_name" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "moved-column-in-project-issue-event": { - "title": "Moved Column in Project Issue Event", - "description": "Moved Column in Project Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "event": { - "type": "string" - }, - "commit_id": { - "type": "string", - "nullable": true - }, - "commit_url": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "starring" + } + } + }, + "/users/{username}/subscriptions": { + "get": { + "summary": "List repositories watched by a user", + "description": "Lists repositories a user is watching.", + "tags": [ + "activity" + ], + "operationId": "activity/list-repos-watched-by-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "$ref": "#/components/parameters/per-page" }, - "project_card": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "url": { - "type": "string", - "format": "uri" - }, - "project_id": { - "type": "integer" - }, - "project_url": { - "type": "string", - "format": "uri" - }, - "column_name": { - "type": "string" - }, - "previous_column_name": { - "type": "string" + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } } }, - "required": [ - "id", - "url", - "project_id", - "project_url", - "column_name" - ] + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "removed-from-project-issue-event": { - "title": "Removed from Project Issue Event", - "description": "Removed from Project Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "watching" + } + } + }, + "/versions": { + "get": { + "summary": "Get all API versions", + "description": "Get all supported GitHub API versions.", + "tags": [ + "meta" + ], + "operationId": "meta/get-all-versions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/meta/meta#get-all-api-versions" + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "date", + "example": "2021-01-01" + } + }, + "examples": { + "default": { + "value": [ + "2021-01-01", + "2021-06-01", + "2022-01-01" + ] + } + } + } + } }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "meta", + "subcategory": "meta" + } + } + }, + "/zen": { + "get": { + "summary": "Get the Zen of GitHub", + "description": "Get a random sentence from the Zen of GitHub", + "tags": [ + "meta" + ], + "operationId": "meta/get-zen", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/meta/meta#get-the-zen-of-github" + }, + "responses": { + "200": { + "description": "Response", + "content": { + "text/plain": { + "schema": { + "type": "string" + }, + "examples": { + "default": { + "summary": "Example response", + "value": "Responsive is better than fast" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "meta", + "subcategory": "meta" + } + } + } + }, + "x-webhooks": { + "branch-protection-configuration-disabled": { + "post": { + "summary": "This event occurs when there is a change to branch protection configurations for a repository.\nFor more information, see \"[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches).\"\nFor information about using the APIs to manage branch protection rules, see \"[Branch protection rule](https://docs.github.com/graphql/reference/objects#branchprotectionrule)\" in the GraphQL documentation or \"[Branch protection](https://docs.github.com/rest/branches/branch-protection)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository permission.", + "description": "All branch protections were disabled for a repository.", + "operationId": "branch-protection-configuration/disabled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_configuration" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "event": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_id": { - "type": "string", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "commit_url": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "project_card": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "url": { - "type": "string", - "format": "uri" - }, - "project_id": { - "type": "integer" - }, - "project_url": { - "type": "string", - "format": "uri" - }, - "column_name": { - "type": "string" - }, - "previous_column_name": { - "type": "string" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-branch-protection-configuration-disabled" } - }, - "required": [ - "id", - "url", - "project_id", - "project_url", - "column_name" - ] + } } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "converted-note-to-issue-issue-event": { - "title": "Converted Note to Issue Issue Event", - "description": "Converted Note to Issue Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "branch_protection_configuration", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "branch-protection-configuration-enabled": { + "post": { + "summary": "This event occurs when there is a change to branch protection configurations for a repository.\nFor more information, see \"[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches).\"\nFor information about using the APIs to manage branch protection rules, see \"[Branch protection rule](https://docs.github.com/graphql/reference/objects#branchprotectionrule)\" in the GraphQL documentation or \"[Branch protection](https://docs.github.com/rest/branches/branch-protection)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository permission.", + "description": "All branch protections were enabled for a repository.", + "operationId": "branch-protection-configuration/enabled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_configuration" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "event": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_id": { - "type": "string", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "commit_url": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "project_card": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "url": { - "type": "string", - "format": "uri" - }, - "project_id": { - "type": "integer" - }, - "project_url": { - "type": "string", - "format": "uri" - }, - "column_name": { - "type": "string" - }, - "previous_column_name": { - "type": "string" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-branch-protection-configuration-enabled" } - }, - "required": [ - "id", - "url", - "project_id", - "project_url", - "column_name" - ] + } } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] - }, - "issue-event-for-issue": { - "title": "Issue Event for Issue", - "description": "Issue Event for Issue", - "anyOf": [ - { - "$ref": "#/components/schemas/labeled-issue-event" - }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "branch_protection_configuration", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "branch-protection-rule-created": { + "post": { + "summary": "This event occurs when there is activity relating to branch protection rules. For more information, see \"[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches).\" For information about the APIs to manage branch protection rules, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#branchprotectionrule) or \"[Branch protection](https://docs.github.com/rest/branches/branch-protection)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository permission.", + "description": "A branch protection rule was created.", + "operationId": "branch-protection-rule/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" + }, + "parameters": [ { - "$ref": "#/components/schemas/unlabeled-issue-event" + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/assigned-issue-event" + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/unassigned-issue-event" + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/milestoned-issue-event" + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/demilestoned-issue-event" + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/renamed-issue-event" + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/review-requested-issue-event" - }, + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-branch-protection-rule-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "branch_protection_rule", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "branch-protection-rule-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to branch protection rules. For more information, see \"[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches).\" For information about the APIs to manage branch protection rules, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#branchprotectionrule) or \"[Branch protection](https://docs.github.com/rest/branches/branch-protection)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository permission.", + "description": "A branch protection rule was deleted.", + "operationId": "branch-protection-rule/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" + }, + "parameters": [ { - "$ref": "#/components/schemas/review-request-removed-issue-event" + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/review-dismissed-issue-event" + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/locked-issue-event" + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/added-to-project-issue-event" + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/moved-column-in-project-issue-event" + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/removed-from-project-issue-event" + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/converted-note-to-issue-issue-event" + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - ] - }, - "timeline-comment-event": { - "title": "Timeline Comment Event", - "description": "Timeline Comment Event", - "type": "object", - "properties": { - "event": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "id": { - "description": "Unique identifier of the issue comment", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-branch-protection-rule-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "branch_protection_rule", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "branch-protection-rule-edited": { + "post": { + "summary": "This event occurs when there is activity relating to branch protection rules. For more information, see \"[About protected branches](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches).\" For information about the APIs to manage branch protection rules, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#branchprotectionrule) or \"[Branch protection](https://docs.github.com/rest/branches/branch-protection)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository permission.", + "description": "A branch protection rule was edited.", + "operationId": "branch-protection-rule/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "url": { - "description": "URL for the issue comment", - "example": "https://api.github.com/repositories/42/issues/comments/1", - "type": "string", - "format": "uri" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "body": { - "description": "Contents of the issue comment", - "example": "What version of Safari were you using when you observed this bug?", - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "body_text": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "body_html": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "user": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-branch-protection-rule-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "branch_protection_rule", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "check-run-completed": { + "post": { + "summary": "This event occurs when there is activity relating to a check run. For information about check runs, see \"[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api).\" For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or \"[Check Runs](https://docs.github.com/rest/checks/runs)\" in the REST API documentation.\n\nFor activity relating to check suites, use the `check-suite` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Checks\" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the \"Checks\" permission. GitHub Apps with write-level access for the \"Checks\" permission are automatically subscribed to this webhook event.\n\nRepository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories.\n\n> [!NOTE]\n> The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.", + "description": "A check run was completed, and a conclusion is available.", + "operationId": "check-run/completed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "issue_url": { - "type": "string", - "format": "uri" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "author_association": { - "$ref": "#/components/schemas/author_association" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - }, - "required": [ - "event", - "actor", - "id", - "node_id", - "html_url", - "issue_url", - "author_association", - "user", - "url", - "created_at", - "updated_at" - ] - }, - "timeline-cross-referenced-event": { - "title": "Timeline Cross Referenced Event", - "description": "Timeline Cross Referenced Event", - "type": "object", - "properties": { - "event": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "source": { - "type": "object", - "properties": { - "type": { - "type": "string" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-completed" }, - "issue": { - "$ref": "#/components/schemas/issue-simple" + "examples": { + "default": { + "$ref": "#/components/examples/check-run-completed" + } + } + }, + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-completed-form-encoded" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-completed-form-encoded" + } } } } }, - "required": [ - "event", - "created_at", - "updated_at", - "source" - ] - }, - "timeline-committed-event": { - "title": "Timeline Committed Event", - "description": "Timeline Committed Event", - "type": "object", - "properties": { - "event": { - "type": "string" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "check_run", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "check-run-created": { + "post": { + "summary": "This event occurs when there is activity relating to a check run. For information about check runs, see \"[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api).\" For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or \"[Check Runs](https://docs.github.com/rest/checks/runs)\" in the REST API documentation.\n\nFor activity relating to check suites, use the `check-suite` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Checks\" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the \"Checks\" permission. GitHub Apps with write-level access for the \"Checks\" permission are automatically subscribed to this webhook event.\n\nRepository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories.\n\n> [!NOTE]\n> The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.", + "description": "A new check run was created.", + "operationId": "check-run/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "format": "uri" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "author": { - "description": "Identifying information for the git-user", - "type": "object", - "properties": { - "date": { - "description": "Timestamp of the commit", - "example": "2014-08-09T08:02:04+12:00", - "format": "date-time", - "type": "string" - }, - "email": { - "type": "string", - "description": "Git email address of the user", - "example": "monalisa.octocat@example.com" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-created" }, - "name": { - "description": "Name of the git user", - "example": "Monalisa Octocat", - "type": "string" + "examples": { + "default": { + "$ref": "#/components/examples/check-run-created" + } } }, - "required": [ - "email", - "name", - "date" - ] - }, - "committer": { - "description": "Identifying information for the git-user", - "type": "object", - "properties": { - "date": { - "description": "Timestamp of the commit", - "example": "2014-08-09T08:02:04+12:00", - "format": "date-time", - "type": "string" - }, - "email": { - "type": "string", - "description": "Git email address of the user", - "example": "monalisa.octocat@example.com" + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-created-form-encoded" }, - "name": { - "description": "Name of the git user", - "example": "Monalisa Octocat", - "type": "string" + "examples": { + "default": { + "$ref": "#/components/examples/check-run-created-form-encoded" + } } - }, - "required": [ - "email", - "name", - "date" - ] + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "check_run", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "check-run-requested-action": { + "post": { + "summary": "This event occurs when there is activity relating to a check run. For information about check runs, see \"[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api).\" For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or \"[Check Runs](https://docs.github.com/rest/checks/runs)\" in the REST API documentation.\n\nFor activity relating to check suites, use the `check-suite` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Checks\" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the \"Checks\" permission. GitHub Apps with write-level access for the \"Checks\" permission are automatically subscribed to this webhook event.\n\nRepository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories.\n\n> [!NOTE]\n> The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.", + "description": "A check run completed, and someone requested a followup action that your app provides. Only the GitHub App someone requests to perform an action will receive the `requested_action` payload. For more information, see \"[Creating CI tests with the Checks API](https://docs.github.com/developers/apps/guides/creating-ci-tests-with-the-checks-api).\"", + "operationId": "check-run/requested-action", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "message": { - "description": "Message describing the purpose of the commit", - "example": "Fix #42", - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "tree": { - "type": "object", - "properties": { - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "sha", - "url" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "parents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "sha", - "url", - "html_url" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" } }, - "verification": { - "type": "object", - "properties": { - "verified": { - "type": "boolean" - }, - "reason": { - "type": "string" - }, - "signature": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-requested-action" }, - "payload": { - "type": "string", - "nullable": true + "examples": { + "default": { + "$ref": "#/components/examples/check-run-requested-action" + } } }, - "required": [ - "verified", - "reason", - "signature", - "payload" - ] - }, - "html_url": { - "type": "string", - "format": "uri" + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-requested-action-form-encoded" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-requested-action-form-encoded" + } + } + } } }, - "required": [ - "sha", - "node_id", - "url", - "html_url", - "author", - "committer", - "tree", - "message", - "parents", - "verification" - ] - }, - "timeline-reviewed-event": { - "title": "Timeline Reviewed Event", - "description": "Timeline Reviewed Event", - "type": "object", - "properties": { - "event": { - "type": "string" - }, - "id": { - "description": "Unique identifier of the review", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "check_run", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "check-run-rerequested": { + "post": { + "summary": "This event occurs when there is activity relating to a check run. For information about check runs, see \"[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api).\" For information about the APIs to manage check runs, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checkrun) or \"[Check Runs](https://docs.github.com/rest/checks/runs)\" in the REST API documentation.\n\nFor activity relating to check suites, use the `check-suite` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Checks\" repository permission. To receive the `rerequested` and `requested_action` event types, the app must have at least write-level access for the \"Checks\" permission. GitHub Apps with write-level access for the \"Checks\" permission are automatically subscribed to this webhook event.\n\nRepository and organization webhooks only receive payloads for the `created` and `completed` event types in repositories.\n\n> [!NOTE]\n> The API only looks for pushes in the repository where the check run was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.", + "description": "Someone requested to re-run a check run. Only the GitHub App that someone requests to re-run the check will receive the `rerequested` payload.", + "operationId": "check-run/rerequested", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "user": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "body": { - "nullable": true, - "description": "The text of the review.", - "example": "This looks great.", - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "state": { - "type": "string", - "example": "CHANGES_REQUESTED" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "pull_request_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "_links": { - "type": "object", - "properties": { - "html": { - "type": "object", - "properties": { - "href": { - "type": "string" - } - }, - "required": [ - "href" - ] + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-rerequested" }, - "pull_request": { - "type": "object", - "properties": { - "href": { - "type": "string" - } - }, - "required": [ - "href" - ] + "examples": { + "default": { + "$ref": "#/components/examples/check-run-rerequested" + } } }, - "required": [ - "html", - "pull_request" - ] + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-rerequested-form-encoded" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-rerequested-form-encoded" + } + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "check_run", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "check-suite-completed": { + "post": { + "summary": "This event occurs when there is activity relating to a check suite. For information about check suites, see \"[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api).\" For information about the APIs to manage check suites, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checksuite) or \"[Check Suites](https://docs.github.com/rest/checks/suites)\" in the REST API documentation.\n\nFor activity relating to check runs, use the `check_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Checks\" permission. To receive the `requested` and `rerequested` event types, the app must have at least write-level access for the \"Checks\" permission. GitHub Apps with write-level access for the \"Checks\" permission are automatically subscribed to this webhook event.\n\nRepository and organization webhooks only receive payloads for the `completed` event types in repositories.\n\n> [!NOTE]\n> The API only looks for pushes in the repository where the check suite was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.", + "description": "All check runs in a check suite have completed, and a conclusion is available.", + "operationId": "check-suite/completed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "submitted_at": { - "type": "string", - "format": "date-time" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_id": { - "description": "A commit SHA for the review.", - "example": "54bb654c9e6025347f57900a4a5c2313a96b8035", - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "body_html": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "body_text": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "author_association": { - "$ref": "#/components/schemas/author_association" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-check-suite-completed" + } + } } }, - "required": [ - "event", - "id", - "node_id", - "user", - "body", - "state", - "commit_id", - "html_url", - "pull_request_url", - "_links", - "author_association" - ] - }, - "pull-request-review-comment": { - "title": "Pull Request Review Comment", - "description": "Pull Request Review Comments are comments on a portion of the Pull Request's diff.", - "type": "object", - "properties": { - "url": { - "description": "URL for the pull request review comment", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", - "type": "string" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "check_suite", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "check-suite-requested": { + "post": { + "summary": "This event occurs when there is activity relating to a check suite. For information about check suites, see \"[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api).\" For information about the APIs to manage check suites, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checksuite) or \"[Check Suites](https://docs.github.com/rest/checks/suites)\" in the REST API documentation.\n\nFor activity relating to check runs, use the `check_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Checks\" permission. To receive the `requested` and `rerequested` event types, the app must have at least write-level access for the \"Checks\" permission. GitHub Apps with write-level access for the \"Checks\" permission are automatically subscribed to this webhook event.\n\nRepository and organization webhooks only receive payloads for the `completed` event types in repositories.\n\n> [!NOTE]\n> The API only looks for pushes in the repository where the check suite was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.", + "description": "Someone requested to run a check suite. By default, check suites are automatically created when you create a check run. For more information, see [the GraphQL API documentation for creating a check run](https://docs.github.com/graphql/reference/mutations#createcheckrun) or \"[Create a check run](https://docs.github.com/rest/checks/runs#create-a-check-run)\" in the REST API documentation.", + "operationId": "check-suite/requested", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "pull_request_review_id": { - "description": "The ID of the pull request review to which the comment belongs.", - "example": 42, - "type": "integer", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "id": { - "description": "The ID of the pull request review comment.", - "example": 1, - "type": "integer" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "node_id": { - "description": "The node ID of the pull request review comment.", - "type": "string", - "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "diff_hunk": { - "description": "The diff of the line that the comment refers to.", - "type": "string", - "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "path": { - "description": "The relative path of the file to which the comment applies.", - "example": "config/database.yaml", - "type": "string" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "position": { - "description": "The line index in the diff to which the comment applies.", - "example": 1, - "type": "integer" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-check-suite-requested" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "check_suite", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "check-suite-rerequested": { + "post": { + "summary": "This event occurs when there is activity relating to a check suite. For information about check suites, see \"[Getting started with the Checks API](https://docs.github.com/rest/guides/getting-started-with-the-checks-api).\" For information about the APIs to manage check suites, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#checksuite) or \"[Check Suites](https://docs.github.com/rest/checks/suites)\" in the REST API documentation.\n\nFor activity relating to check runs, use the `check_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Checks\" permission. To receive the `requested` and `rerequested` event types, the app must have at least write-level access for the \"Checks\" permission. GitHub Apps with write-level access for the \"Checks\" permission are automatically subscribed to this webhook event.\n\nRepository and organization webhooks only receive payloads for the `completed` event types in repositories.\n\n> [!NOTE]\n> The API only looks for pushes in the repository where the check suite was created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.", + "description": "Someone requested to re-run the check runs in a check suite. For more information, see [the GraphQL API documentation for creating a check suite](https://docs.github.com/graphql/reference/mutations#createchecksuite) or \"[Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite)\" in the REST API documentation.", + "operationId": "check-suite/rerequested", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "original_position": { - "description": "The index of the original line in the diff to which the comment applies.", - "example": 4, - "type": "integer" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_id": { - "description": "The SHA of the commit to which the comment applies.", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "original_commit_id": { - "description": "The SHA of the original commit to which the comment applies.", - "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "in_reply_to_id": { - "description": "The comment ID to reply to.", - "example": 8, - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "user": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "body": { - "description": "The text of the comment.", - "example": "We should probably include a check for null values here.", - "type": "string" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-check-suite-rerequested" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "check_suite", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "code-scanning-alert-appeared-in-branch": { + "post": { + "summary": "This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see \"[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)\" and \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts).\" For information about the API to manage code scanning, see \"[Code scanning](https://docs.github.com/rest/code-scanning)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Code scanning alerts\" repository permission.", + "description": "A previously created code scanning alert appeared in another branch. This can happen when a branch is merged into or created from a branch with a pre-existing code scanning alert.", + "operationId": "code-scanning-alert/appeared-in-branch", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "html_url": { - "description": "HTML URL for the pull request review comment.", - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "pull_request_url": { - "description": "URL for the pull request that the review comment belongs to.", - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "author_association": { - "$ref": "#/components/schemas/author_association" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" - } - }, - "required": [ - "href" - ] - }, - "html": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" - } - }, - "required": [ - "href" - ] - }, - "pull_request": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" - } - }, - "required": [ - "href" - ] + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-code-scanning-alert-appeared-in-branch" } - }, - "required": [ - "self", - "html", - "pull_request" - ] + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "code_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "code-scanning-alert-closed-by-user": { + "post": { + "summary": "This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see \"[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)\" and \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts).\" For information about the API to manage code scanning, see \"[Code scanning](https://docs.github.com/rest/code-scanning)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Code scanning alerts\" repository permission.", + "description": "Someone closed a code scanning alert.", + "operationId": "code-scanning-alert/closed-by-user", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "start_line": { - "type": "integer", - "description": "The first line of the range for a multi-line comment.", - "example": 2, - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "original_start_line": { - "type": "integer", - "description": "The first line of the range for a multi-line comment.", - "example": 2, - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "start_side": { - "type": "string", - "description": "The side of the first line of the range for a multi-line comment.", - "enum": [ - "LEFT", - "RIGHT" - ], - "default": "RIGHT", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "line": { - "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", - "example": 2, - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "original_line": { - "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", - "example": 2, - "type": "integer" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "side": { - "description": "The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment", - "enum": [ - "LEFT", - "RIGHT" - ], - "default": "RIGHT", - "type": "string" - }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" - }, - "body_html": { - "type": "string", - "example": "\"

comment body

\"" - }, - "body_text": { - "type": "string", - "example": "\"comment body\"" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - }, - "required": [ - "url", - "id", - "node_id", - "pull_request_review_id", - "diff_hunk", - "path", - "position", - "original_position", - "commit_id", - "original_commit_id", - "user", - "body", - "created_at", - "updated_at", - "html_url", - "pull_request_url", - "author_association", - "_links" - ] - }, - "timeline-line-commented-event": { - "title": "Timeline Line Commented Event", - "description": "Timeline Line Commented Event", - "type": "object", - "properties": { - "event": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "comments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-review-comment" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-code-scanning-alert-closed-by-user" + } } } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "code_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] } - }, - "timeline-commit-commented-event": { - "title": "Timeline Commit Commented Event", - "description": "Timeline Commit Commented Event", - "type": "object", - "properties": { - "event": { - "type": "string" + } + }, + "code-scanning-alert-created": { + "post": { + "summary": "This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see \"[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)\" and \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts).\" For information about the API to manage code scanning, see \"[Code scanning](https://docs.github.com/rest/code-scanning)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Code scanning alerts\" repository permission.", + "description": "A code scanning alert was created in a repository.", + "operationId": "code-scanning-alert/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_id": { - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "comments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit-comment" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" } - } - } - }, - "timeline-assigned-issue-event": { - "title": "Timeline Assigned Issue Event", - "description": "Timeline Assigned Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" }, - "node_id": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "url": { - "type": "string" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "actor": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-code-scanning-alert-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "code_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "code-scanning-alert-fixed": { + "post": { + "summary": "This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see \"[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)\" and \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts).\" For information about the API to manage code scanning, see \"[Code scanning](https://docs.github.com/rest/code-scanning)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Code scanning alerts\" repository permission.", + "description": "A code scanning alert was fixed in a branch by a commit.", + "operationId": "code-scanning-alert/fixed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "event": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_id": { - "type": "string", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "commit_url": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "assignee": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-code-scanning-alert-fixed" + } + } } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app", - "assignee" - ] - }, - "timeline-unassigned-issue-event": { - "title": "Timeline Unassigned Issue Event", - "description": "Timeline Unassigned Issue Event", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "code_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "code-scanning-alert-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see \"[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)\" and \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts).\" For information about the API to manage code scanning, see \"[Code scanning](https://docs.github.com/rest/code-scanning)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Code scanning alerts\" repository permission.", + "description": "A previously fixed code scanning alert reappeared in a branch.", + "operationId": "code-scanning-alert/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "event": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_id": { - "type": "string", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "commit_url": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "assignee": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened" + } + } } }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app", - "assignee" - ] - }, - "timeline-issue-events": { - "title": "Timeline Event", - "description": "Timeline Event", - "type": "object", - "anyOf": [ + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "code_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "code-scanning-alert-reopened-by-user": { + "post": { + "summary": "This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see \"[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)\" and \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts).\" For information about the API to manage code scanning, see \"[Code scanning](https://docs.github.com/rest/code-scanning)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Code scanning alerts\" repository permission.", + "description": "Someone reopened a code scanning alert.", + "operationId": "code-scanning-alert/reopened-by-user", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + }, + "parameters": [ { - "$ref": "#/components/schemas/labeled-issue-event" + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/unlabeled-issue-event" + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/milestoned-issue-event" + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/demilestoned-issue-event" + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/renamed-issue-event" + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/review-requested-issue-event" + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/review-request-removed-issue-event" - }, + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened-by-user" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "code_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "code-scanning-alert-updated-assignment": { + "post": { + "summary": "This event occurs when there is activity relating to code scanning alerts in a repository. For more information, see \"[About code scanning](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)\" and \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts).\" For information about the API to manage code scanning, see \"[Code scanning](https://docs.github.com/rest/code-scanning)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Code scanning alerts\" repository permission.", + "description": "The assignees list of a code scanning alert has been updated.", + "operationId": "code-scanning-alert/updated-assignment", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + }, + "parameters": [ { - "$ref": "#/components/schemas/review-dismissed-issue-event" + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/locked-issue-event" + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/added-to-project-issue-event" + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/moved-column-in-project-issue-event" + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/removed-from-project-issue-event" + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/converted-note-to-issue-issue-event" + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/timeline-comment-event" - }, + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-code-scanning-alert-updated-assignment" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "code_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "commit-comment-created": { + "post": { + "summary": "This event occurs when there is activity relating to commit comments. For more information about commit comments, see \"[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request).\" For information about the APIs to manage commit comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#commitcomment) or \"[Commit comments](https://docs.github.com/rest/commits/comments)\" in the REST API documentation.\n\nFor activity relating to comments on pull request reviews, use the `pull_request_review_comment` event. For activity relating to issue comments, use the `issue_comment` event. For activity relating to discussion comments, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "Someone commented on a commit.", + "operationId": "commit-comment/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#commit_comment" + }, + "parameters": [ { - "$ref": "#/components/schemas/timeline-cross-referenced-event" + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/timeline-committed-event" + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/timeline-reviewed-event" + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/timeline-line-commented-event" + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/timeline-commit-commented-event" + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/timeline-assigned-issue-event" + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/schemas/timeline-unassigned-issue-event" + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - ] - }, - "deploy-key": { - "title": "Deploy Key", - "description": "An SSH key granting access to a single repository.", - "type": "object", - "properties": { - "id": { - "type": "integer" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-commit-comment-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "commit_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "create": { + "post": { + "summary": "This event occurs when a Git branch or tag is created.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.\n\n**Notes**:\n- This event will not occur when more than three tags are created at once.\n- Payloads are capped at 25 MB. If an event generates a larger payload, GitHub will not deliver a payload for that webhook event. This may happen, for example, if many branches or tags are pushed at once. We suggest monitoring your payload size to ensure delivery.", + "operationId": "create", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#create" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "key": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "url": { - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "title": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "verified": { - "type": "boolean" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "read_only": { - "type": "boolean" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-create" + } + } } }, - "required": [ - "id", - "key", - "url", - "title", - "verified", - "created_at", - "read_only" - ] - }, - "language": { - "title": "Language", - "description": "Language", - "type": "object", - "additionalProperties": { - "type": "integer" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "create", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] } - }, - "license-content": { - "title": "License Content", - "description": "License Content", - "type": "object", - "properties": { - "name": { - "type": "string" + } + }, + "custom-property-created": { + "post": { + "summary": "This event occurs when there is activity relating to a custom property.\n\nFor more information, see \"[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)\". For information about the APIs to manage custom properties, see \"[Custom properties](https://docs.github.com/rest/orgs/custom-properties)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Custom properties\" organization permission.", + "description": "A new custom property was created.", + "operationId": "custom-property/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "path": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "sha": { - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "size": { - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "format": "uri" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-custom-property-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "custom_property", + "supported-webhook-types": [ + "business", + "organization", + "app" + ] + } + } + }, + "custom-property-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a custom property.\n\nFor more information, see \"[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)\". For information about the APIs to manage custom properties, see \"[Custom properties](https://docs.github.com/rest/orgs/custom-properties)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Custom properties\" organization permission.", + "description": "A custom property was deleted.", + "operationId": "custom-property/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "download_url": { - "type": "string", - "format": "uri", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "type": { - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "content": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "encoding": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "_links": { - "type": "object", - "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true - }, - "self": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "git", - "html", - "self" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "license": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/license-simple" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-custom-property-deleted" } - ] + } } }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url", - "content", - "encoding", - "license" - ] - }, - "pages-source-hash": { - "title": "Pages Source Hash", - "type": "object", - "properties": { - "branch": { - "type": "string" - }, - "path": { - "type": "string" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "required": [ - "branch", - "path" - ] - }, - "pages-https-certificate": { - "title": "Pages Https Certificate", - "type": "object", - "properties": { - "state": { - "type": "string", - "enum": [ - "new", - "authorization_created", - "authorization_pending", - "authorized", - "authorization_revoked", - "issued", - "uploaded", - "approved", - "errored", - "bad_authz", - "destroy_pending", - "dns_changed" - ], - "example": "approved" - }, - "description": { - "type": "string", - "example": "Certificate is approved" - }, - "domains": { - "type": "array", - "description": "Array of the domain set and its alternate name (if it is configured)", - "example": [ - "example.com", - "www.example.com" - ] - }, - "expires_at": { - "type": "string", - "format": "date" - } + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "custom_property", + "supported-webhook-types": [ + "business", + "organization", + "app" + ] + } + } + }, + "custom-property-promoted-to-enterprise": { + "post": { + "summary": "This event occurs when there is activity relating to a custom property.\n\nFor more information, see \"[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)\". For information about the APIs to manage custom properties, see \"[Custom properties](https://docs.github.com/rest/orgs/custom-properties)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Custom properties\" organization permission.", + "description": "A custom property was promoted to an enterprise.", + "operationId": "custom-property/promote-to-enterprise", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" }, - "required": [ - "state", - "description", - "domains" - ] - }, - "page": { - "title": "GitHub Pages", - "description": "The configuration for GitHub Pages for a repository.", - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "The API address for accessing this Page resource.", - "format": "uri", - "example": "https://api.github.com/repos/github/hello-world/pages" - }, - "status": { - "type": "string", - "description": "The status of the most recent build of the Page.", - "example": "built", - "enum": [ - "built", - "building", - "errored" - ], - "nullable": true - }, - "cname": { - "description": "The Pages site's custom domain", - "example": "example.com", - "type": "string", - "nullable": true + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "custom_404": { - "type": "boolean", - "description": "Whether the Page has a custom 404 page.", - "example": false, - "default": false + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "description": "The web address the Page can be accessed from.", - "format": "uri", - "example": "https://example.com" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "source": { - "$ref": "#/components/schemas/pages-source-hash" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "public": { - "type": "boolean", - "description": "Whether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site.", - "example": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "https_certificate": { - "$ref": "#/components/schemas/pages-https-certificate" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "https_enforced": { - "type": "boolean", - "description": "Whether https is enabled on the domain", - "example": true + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-custom-property-promoted-to-enterprise" + } + } } }, - "required": [ - "url", - "status", - "cname", - "custom_404", - "public" - ] - }, - "page-build": { - "title": "Page Build", - "description": "Page Build", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "status": { - "type": "string" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "custom_property", + "supported-webhook-types": [ + "business", + "organization", + "app" + ] + } + } + }, + "custom-property-updated": { + "post": { + "summary": "This event occurs when there is activity relating to a custom property.\n\nFor more information, see \"[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)\". For information about the APIs to manage custom properties, see \"[Custom properties](https://docs.github.com/rest/orgs/custom-properties)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Custom properties\" organization permission.", + "description": "A custom property was updated.", + "operationId": "custom-property/updated", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "error": { - "type": "object", - "properties": { - "message": { - "type": "string", - "nullable": true - } - }, - "required": [ - "message" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "pusher": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "commit": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "duration": { - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-custom-property-updated" + } + } } }, - "required": [ - "url", - "status", - "error", - "pusher", - "commit", - "duration", - "created_at", - "updated_at" - ] - }, - "page-build-status": { - "title": "Page Build Status", - "description": "Page Build Status", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/github/hello-world/pages/builds/latest" - }, - "status": { - "type": "string", - "example": "queued" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "required": [ - "url", - "status" - ] - }, - "pages-health-check": { - "title": "Pages Health Check Status", - "description": "Pages Health Check Status", - "type": "object", - "properties": { - "domain": { - "type": "object", - "properties": { - "host": { - "type": "string" - }, - "uri": { - "type": "string" - }, - "nameservers": { - "type": "string" - }, - "dns_resolves": { - "type": "boolean" - }, - "is_proxied": { - "type": "boolean", - "nullable": true - }, - "is_cloudflare_ip": { - "type": "boolean", - "nullable": true - }, - "is_fastly_ip": { - "type": "boolean", - "nullable": true - }, - "is_old_ip_address": { - "type": "boolean", - "nullable": true - }, - "is_a_record": { - "type": "boolean", - "nullable": true - }, - "has_cname_record": { - "type": "boolean", - "nullable": true - }, - "has_mx_records_present": { - "type": "boolean", - "nullable": true - }, - "is_valid_domain": { - "type": "boolean" - }, - "is_apex_domain": { - "type": "boolean" - }, - "should_be_a_record": { - "type": "boolean", - "nullable": true - }, - "is_cname_to_github_user_domain": { - "type": "boolean", - "nullable": true - }, - "is_cname_to_pages_dot_github_dot_com": { - "type": "boolean", - "nullable": true - }, - "is_cname_to_fastly": { - "type": "boolean", - "nullable": true - }, - "is_pointed_to_github_pages_ip": { - "type": "boolean", - "nullable": true - }, - "is_non_github_pages_ip_present": { - "type": "boolean", - "nullable": true - }, - "is_pages_domain": { - "type": "boolean" - }, - "is_served_by_pages": { - "type": "boolean", - "nullable": true - }, - "is_valid": { - "type": "boolean" - }, - "reason": { - "type": "string", - "nullable": true - }, - "responds_to_https": { - "type": "boolean" - }, - "enforces_https": { - "type": "boolean" - }, - "https_error": { - "type": "string", - "nullable": true - }, - "is_https_eligible": { - "type": "boolean", - "nullable": true - }, - "caa_error": { - "type": "string", - "nullable": true + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "custom_property", + "supported-webhook-types": [ + "business", + "organization", + "app" + ] + } + } + }, + "custom-property-values-updated": { + "post": { + "summary": "This event occurs when there is activity relating to custom property values for a repository.\n\nFor more information, see \"[Managing custom properties for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)\". For information about the APIs to manage custom properties for a repository, see \"[Custom properties](https://docs.github.com/rest/repos/custom-properties)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Custom properties\" organization permission.", + "description": "The custom property values of a repository were updated.", + "operationId": "custom-property-values/updated", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom-property-values" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-custom-property-values-updated" } } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "custom-property-values", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "delete": { + "post": { + "summary": "This event occurs when a Git branch or tag is deleted. To subscribe to all pushes to a repository, including\nbranch and tag deletions, use the [`push`](#push) webhook event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.\n\n> [!NOTE]\n> This event will not occur when more than three tags are deleted at once.", + "operationId": "delete", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#delete" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "alt_domain": { - "type": "object", - "nullable": true, - "properties": { - "host": { - "type": "string" - }, - "uri": { - "type": "string" - }, - "nameservers": { - "type": "string" - }, - "dns_resolves": { - "type": "boolean" - }, - "is_proxied": { - "type": "boolean", - "nullable": true - }, - "is_cloudflare_ip": { - "type": "boolean", - "nullable": true - }, - "is_fastly_ip": { - "type": "boolean", - "nullable": true - }, - "is_old_ip_address": { - "type": "boolean", - "nullable": true - }, - "is_a_record": { - "type": "boolean", - "nullable": true - }, - "has_cname_record": { - "type": "boolean", - "nullable": true - }, - "has_mx_records_present": { - "type": "boolean", - "nullable": true - }, - "is_valid_domain": { - "type": "boolean" - }, - "is_apex_domain": { - "type": "boolean" - }, - "should_be_a_record": { - "type": "boolean", - "nullable": true - }, - "is_cname_to_github_user_domain": { - "type": "boolean", - "nullable": true - }, - "is_cname_to_pages_dot_github_dot_com": { - "type": "boolean", - "nullable": true - }, - "is_cname_to_fastly": { - "type": "boolean", - "nullable": true - }, - "is_pointed_to_github_pages_ip": { - "type": "boolean", - "nullable": true - }, - "is_non_github_pages_ip_present": { - "type": "boolean", - "nullable": true - }, - "is_pages_domain": { - "type": "boolean" - }, - "is_served_by_pages": { - "type": "boolean", - "nullable": true - }, - "is_valid": { - "type": "boolean" - }, - "reason": { - "type": "string", - "nullable": true - }, - "responds_to_https": { - "type": "boolean" - }, - "enforces_https": { - "type": "boolean" - }, - "https_error": { - "type": "string", - "nullable": true - }, - "is_https_eligible": { - "type": "boolean", - "nullable": true - }, - "caa_error": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-delete" } } } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "delete", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] } - }, - "pull-request": { - "type": "object", - "title": "Pull Request", - "description": "Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary.", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + } + }, + "dependabot-alert-auto-dismissed": { + "post": { + "summary": "This event occurs when there is activity relating to Dependabot alerts.\n\nFor more information about Dependabot alerts, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\" For information about the API to manage Dependabot alerts, see \"[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.\n\n> [!NOTE]\n> Webhook events for Dependabot alerts are currently in public preview and subject to change.", + "description": "A Dependabot alert was automatically closed by a Dependabot auto-triage rule.", + "operationId": "dependabot-alert/auto-dismissed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "id": { - "type": "integer", - "example": 1 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string", - "example": "MDExOlB1bGxSZXF1ZXN0MQ==" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "diff_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347.diff" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "patch_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347.patch" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "issue_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-dependabot-alert-auto-dismissed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "dependabot_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "dependabot-alert-auto-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to Dependabot alerts.\n\nFor more information about Dependabot alerts, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\" For information about the API to manage Dependabot alerts, see \"[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.\n\n> [!NOTE]\n> Webhook events for Dependabot alerts are currently in public preview and subject to change.", + "description": "A Dependabot alert, that had been automatically closed by a Dependabot auto-triage rule, was automatically reopened because the alert metadata or rule changed.", + "operationId": "dependabot-alert/auto-reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "commits_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "review_comments_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "review_comment_url": { - "type": "string", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "comments_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "statuses_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "number": { - "description": "Number uniquely identifying the pull request within its repository.", - "example": 42, - "type": "integer" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-dependabot-alert-auto-reopened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "dependabot_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "dependabot-alert-created": { + "post": { + "summary": "This event occurs when there is activity relating to Dependabot alerts.\n\nFor more information about Dependabot alerts, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\" For information about the API to manage Dependabot alerts, see \"[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.\n\n> [!NOTE]\n> Webhook events for Dependabot alerts are currently in public preview and subject to change.", + "description": "A manifest file change introduced a vulnerable dependency, or a GitHub Security Advisory was published and an existing dependency was found to be vulnerable.", + "operationId": "dependabot-alert/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "state": { - "description": "State of this Pull Request. Either `open` or `closed`.", - "enum": [ - "open", - "closed" - ], - "example": "open", - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "locked": { - "type": "boolean", - "example": true + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "title": { - "description": "The title of the pull request.", - "example": "Amazing new feature", - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-dependabot-alert-created" } - ] + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "dependabot_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "dependabot-alert-dismissed": { + "post": { + "summary": "This event occurs when there is activity relating to Dependabot alerts.\n\nFor more information about Dependabot alerts, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\" For information about the API to manage Dependabot alerts, see \"[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.\n\n> [!NOTE]\n> Webhook events for Dependabot alerts are currently in public preview and subject to change.", + "description": "A Dependabot alert was manually closed.", + "operationId": "dependabot-alert/dismissed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "body": { - "type": "string", - "example": "Please pull these awesome changes", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "labels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "color": { - "type": "string" - }, - "default": { - "type": "boolean" - } + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-dependabot-alert-dismissed" } } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "dependabot_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "dependabot-alert-fixed": { + "post": { + "summary": "This event occurs when there is activity relating to Dependabot alerts.\n\nFor more information about Dependabot alerts, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\" For information about the API to manage Dependabot alerts, see \"[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.\n\n> [!NOTE]\n> Webhook events for Dependabot alerts are currently in public preview and subject to change.", + "description": "A manifest file change removed a vulnerability.", + "operationId": "dependabot-alert/fixed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "milestone": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/milestone" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-dependabot-alert-fixed" } - ] + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "dependabot_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "dependabot-alert-reintroduced": { + "post": { + "summary": "This event occurs when there is activity relating to Dependabot alerts.\n\nFor more information about Dependabot alerts, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\" For information about the API to manage Dependabot alerts, see \"[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.\n\n> [!NOTE]\n> Webhook events for Dependabot alerts are currently in public preview and subject to change.", + "description": "A manifest file change introduced a vulnerable dependency that had previously been fixed.", + "operationId": "dependabot-alert/reintroduced", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "active_lock_reason": { - "type": "string", - "example": "too heated", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "closed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "merged_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "merge_commit_sha": { - "type": "string", - "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", - "nullable": true + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-dependabot-alert-reintroduced" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "dependabot_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "dependabot-alert-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to Dependabot alerts.\n\nFor more information about Dependabot alerts, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\" For information about the API to manage Dependabot alerts, see \"[Dependabot alerts](https://docs.github.com/rest/dependabot/alerts)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.\n\n> [!NOTE]\n> Webhook events for Dependabot alerts are currently in public preview and subject to change.", + "description": "A Dependabot alert was manually reopened.", + "operationId": "dependabot-alert/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "assignee": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-dependabot-alert-reopened" } - ] + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "dependabot_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "deploy-key-created": { + "post": { + "summary": "This event occurs when there is activity relating to deploy keys. For more information, see \"[Managing deploy keys](https://docs.github.com/developers/overview/managing-deploy-keys).\" For information about the APIs to manage deploy keys, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deploykey) or \"[Deploy keys](https://docs.github.com/rest/deploy-keys)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.", + "description": "A deploy key was created.", + "operationId": "deploy-key/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "requested_reviewers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } }, - "requested_teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-simple" - }, - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "head": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "ref": { - "type": "string" - }, - "repo": { - "type": "object", - "nullable": true, - "properties": { - "archive_url": { - "type": "string" - }, - "assignees_url": { - "type": "string" - }, - "blobs_url": { - "type": "string" - }, - "branches_url": { - "type": "string" - }, - "collaborators_url": { - "type": "string" - }, - "comments_url": { - "type": "string" - }, - "commits_url": { - "type": "string" - }, - "compare_url": { - "type": "string" - }, - "contents_url": { - "type": "string" - }, - "contributors_url": { - "type": "string", - "format": "uri" - }, - "deployments_url": { - "type": "string", - "format": "uri" - }, - "description": { - "type": "string", - "nullable": true - }, - "downloads_url": { - "type": "string", - "format": "uri" - }, - "events_url": { - "type": "string", - "format": "uri" - }, - "fork": { - "type": "boolean" - }, - "forks_url": { - "type": "string", - "format": "uri" - }, - "full_name": { - "type": "string" - }, - "git_commits_url": { - "type": "string" - }, - "git_refs_url": { - "type": "string" - }, - "git_tags_url": { - "type": "string" - }, - "hooks_url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "issue_comment_url": { - "type": "string" - }, - "issue_events_url": { - "type": "string" - }, - "issues_url": { - "type": "string" - }, - "keys_url": { - "type": "string" - }, - "labels_url": { - "type": "string" - }, - "languages_url": { - "type": "string", - "format": "uri" - }, - "merges_url": { - "type": "string", - "format": "uri" - }, - "milestones_url": { - "type": "string" - }, - "name": { - "type": "string" - }, - "notifications_url": { - "type": "string" - }, - "owner": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "events_url": { + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deploy-key-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deploy_key", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "deploy-key-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to deploy keys. For more information, see \"[Managing deploy keys](https://docs.github.com/developers/overview/managing-deploy-keys).\" For information about the APIs to manage deploy keys, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deploykey) or \"[Deploy keys](https://docs.github.com/rest/deploy-keys)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.", + "description": "A deploy key was deleted.", + "operationId": "deploy-key/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deploy-key-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deploy_key", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "deployment-created": { + "post": { + "summary": "This event occurs when there is activity relating to deployments. For more information, see \"[About deployments](https://docs.github.com/actions/deployment/about-deployments).\" For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or \"[Deployments](https://docs.github.com/rest/deployments/deployments)\" in the REST API documentation.\n\nFor activity relating to deployment status, use the `deployment_status` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.", + "description": "A deployment was created.", + "operationId": "deployment/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deployment-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deployment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "deployment-protection-rule-requested": { + "post": { + "summary": "This event occurs when there is activity relating to deployment protection rules. For more information, see \"[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment#environment-protection-rules).\" For information about the API to manage deployment protection rules, see [the REST API documentation](https://docs.github.com/rest/deployments/environments).\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.", + "description": "A deployment protection rule was requested for an environment.", + "operationId": "deployment-protection-rule/requested", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_protection_rule" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deployment-protection-rule-requested" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deployment_protection_rule", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "deployment-review-approved": { + "post": { + "summary": "This event occurs when there is activity relating to deployment reviews. For more information, see \"[About deployments](https://docs.github.com/actions/deployment/about-deployments).\" For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or \"[Deployments](https://docs.github.com/rest/deployments/deployments)\" in the REST API documentation.\n\nFor activity relating to deployment creation or deployment status, use the `deployment` or `deployment_status` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.", + "description": "A deployment review was approved.", + "operationId": "deployment-review/approved", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deployment-review-approved" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deployment_review", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "deployment-review-rejected": { + "post": { + "summary": "This event occurs when there is activity relating to deployment reviews. For more information, see \"[About deployments](https://docs.github.com/actions/deployment/about-deployments).\" For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or \"[Deployments](https://docs.github.com/rest/deployments/deployments)\" in the REST API documentation.\n\nFor activity relating to deployment creation or deployment status, use the `deployment` or `deployment_status` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.", + "description": "A deployment review was rejected.", + "operationId": "deployment-review/rejected", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deployment-review-rejected" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deployment_review", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "deployment-review-requested": { + "post": { + "summary": "This event occurs when there is activity relating to deployment reviews. For more information, see \"[About deployments](https://docs.github.com/actions/deployment/about-deployments).\" For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or \"[Deployments](https://docs.github.com/rest/deployments/deployments)\" in the REST API documentation.\n\nFor activity relating to deployment creation or deployment status, use the `deployment` or `deployment_status` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.", + "description": "A deployment review was requested.", + "operationId": "deployment-review/requested", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deployment-review-requested" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deployment_review", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "deployment-status-created": { + "post": { + "summary": "This event occurs when there is activity relating to deployment statuses. For more information, see \"[About deployments](https://docs.github.com/actions/deployment/about-deployments).\" For information about the APIs to manage deployments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#deployment) or \"[Deployments](https://docs.github.com/rest/deployments/deployments)\" in the REST API documentation.\n\nFor activity relating to deployment creation, use the `deployment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Deployments\" repository permission.\n\n> [!NOTE]\n> A webhook event is not fired for deployment statuses with an `inactive` state.", + "description": "A new deployment status was created.", + "operationId": "deployment-status/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_status" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-deployment-status-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "deployment_status", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-answered": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A comment on the discussion was marked as the answer.", + "operationId": "discussion/answered", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-answered" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-category-changed": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "The category of a discussion was changed.", + "operationId": "discussion/category-changed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-category-changed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-closed": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was closed.", + "operationId": "discussion/closed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "discussions", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-closed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-comment-created": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a discussion as opposed to comments on a discussion, use the `discussion` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A comment on a discussion was created.", + "operationId": "discussion-comment/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-comment-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-comment-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a discussion as opposed to comments on a discussion, use the `discussion` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A comment on a discussion was deleted.", + "operationId": "discussion-comment/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-comment-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-comment-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a discussion as opposed to comments on a discussion, use the `discussion` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A comment on a discussion was edited.", + "operationId": "discussion-comment/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-comment-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-created": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was created.", + "operationId": "discussion/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was deleted.", + "operationId": "discussion/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "The title or body on a discussion was edited, or the category of the discussion was changed.", + "operationId": "discussion/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-labeled": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A label was added to a discussion.", + "operationId": "discussion/labeled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-labeled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-locked": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was locked.", + "operationId": "discussion/locked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-locked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-pinned": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was pinned.", + "operationId": "discussion/pinned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-pinned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was reopened.", + "operationId": "discussion/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "discussions", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-reopened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-transferred": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was transferred to another repository.", + "operationId": "discussion/transferred", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-transferred" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-unanswered": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A comment on the discussion was unmarked as the answer.", + "operationId": "discussion/unanswered", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-unanswered" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-unlabeled": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A label was removed from a discussion.", + "operationId": "discussion/unlabeled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-unlabeled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-unlocked": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was unlocked.", + "operationId": "discussion/unlocked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-unlocked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "discussion-unpinned": { + "post": { + "summary": "This event occurs when there is activity relating to a discussion. For more information about discussions, see \"[GitHub Discussions](https://docs.github.com/discussions).\" For information about the API to manage discussions, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#discussion).\n\nFor activity relating to a comment on a discussion, use the `discussion_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Discussions\" repository permission.\n\n> [!NOTE]\n> Webhook events for GitHub Discussions are currently in public preview and subject to change.", + "description": "A discussion was unpinned.", + "operationId": "discussion/unpinned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-discussion-unpinned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "discussion", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "fork": { + "post": { + "summary": "This event occurs when someone forks a repository. For more information, see \"[Fork a repo](https://docs.github.com/get-started/quickstart/fork-a-repo).\" For information about the API to manage forks, see \"[Forks](https://docs.github.com/rest/repos/forks)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "operationId": "fork", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#fork" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-fork" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "fork", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "github-app-authorization-revoked": { + "post": { + "summary": "This event occurs when a user revokes their authorization of a GitHub App. For more information, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the API to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.\n\nA GitHub App receives this webhook by default and cannot unsubscribe from this event.\n\nAnyone can revoke their authorization of a GitHub App from their [GitHub account settings page](https://github.com/settings/apps/authorizations). Revoking the authorization of a GitHub App does not uninstall the GitHub App. You should program your GitHub App so that when it receives this webhook, it stops calling the API on behalf of the person who revoked the token. If your GitHub App continues to use a revoked access token, it will receive the `401 Bad Credentials` error. For details about requests with a user access token, which require GitHub App authorization, see \"[Authenticating with a GitHub App on behalf of a user](https://docs.github.com/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user).\"", + "description": "Someone revoked their authorization of a GitHub App.", + "operationId": "github-app-authorization/revoked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#github_app_authorization" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-github-app-authorization-revoked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "github_app_authorization", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "gollum": { + "post": { + "summary": "This event occurs when someone creates or updates a wiki page. For more information, see \"[About wikis](https://docs.github.com/communities/documenting-your-project-with-wikis/about-wikis).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "operationId": "gollum", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#gollum" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-gollum" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "gollum", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "installation-created": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event.\n\nFor more information about GitHub Apps, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "Someone installed a GitHub App on a user or organization account.", + "operationId": "installation/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "installation-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event.\n\nFor more information about GitHub Apps, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "Someone uninstalled a GitHub App from their user or organization account.", + "operationId": "installation/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "installation-new-permissions-accepted": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event.\n\nFor more information about GitHub Apps, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "Someone granted new permissions to a GitHub App.", + "operationId": "installation/new-permissions-accepted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-new-permissions-accepted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "installation-repositories-added": { + "post": { + "summary": "This event occurs when there is activity relating to which repositories a GitHub App installation can access. All GitHub Apps receive this event by default. You cannot manually subscribe to this event.\n\nFor more information about GitHub Apps, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "A GitHub App installation was granted access to one or more repositories.", + "operationId": "installation-repositories/added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-repositories-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation_repositories", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "installation-repositories-removed": { + "post": { + "summary": "This event occurs when there is activity relating to which repositories a GitHub App installation can access. All GitHub Apps receive this event by default. You cannot manually subscribe to this event.\n\nFor more information about GitHub Apps, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "Access to one or more repositories was revoked for a GitHub App installation.", + "operationId": "installation-repositories/removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-repositories-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation_repositories", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "installation-suspend": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event.\n\nFor more information about GitHub Apps, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "Someone blocked access by a GitHub App to their user or organization account.", + "operationId": "installation/suspend", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-suspend" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "installation-target-renamed": { + "post": { + "summary": "This event occurs when there is activity relating to the user or organization account that a GitHub App is installed on. For more information, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "Somebody renamed the user or organization account that a GitHub App is installed on.", + "operationId": "installation-target/renamed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_target" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-target-renamed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation_target", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "installation-unsuspend": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub App installation. All GitHub Apps receive this event by default. You cannot manually subscribe to this event.\n\nFor more information about GitHub Apps, see \"[About apps](https://docs.github.com/developers/apps/getting-started-with-apps/about-apps#about-github-apps).\" For information about the APIs to manage GitHub Apps, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#app) or \"[Apps](https://docs.github.com/rest/apps)\" in the REST API documentation.", + "description": "A GitHub App that was blocked from accessing a user or organization account was given access the account again.", + "operationId": "installation/unsuspend", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-installation-unsuspend" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "installation", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "issue-comment-created": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)\" and \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or \"[Issue comments](https://docs.github.com/rest/issues/comments)\" in the REST API documentation.\n\nFor activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see \"[Working with comments](https://docs.github.com/rest/guides/working-with-comments).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A comment on an issue or pull request was created.", + "operationId": "issue-comment/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-comment-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-comment-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)\" and \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or \"[Issue comments](https://docs.github.com/rest/issues/comments)\" in the REST API documentation.\n\nFor activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see \"[Working with comments](https://docs.github.com/rest/guides/working-with-comments).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A comment on an issue or pull request was deleted.", + "operationId": "issue-comment/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-comment-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-comment-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)\" and \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or \"[Issue comments](https://docs.github.com/rest/issues/comments)\" in the REST API documentation.\n\nFor activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see \"[Working with comments](https://docs.github.com/rest/guides/working-with-comments).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A comment on an issue or pull request was edited.", + "operationId": "issue-comment/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-comment-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-comment-pinned": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)\" and \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or \"[Issue comments](https://docs.github.com/rest/issues/comments)\" in the REST API documentation.\n\nFor activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see \"[Working with comments](https://docs.github.com/rest/guides/working-with-comments).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A comment on an issue was pinned.", + "operationId": "issue-comment/pinned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-comment-pinned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-comment-unpinned": { + "post": { + "summary": "This event occurs when there is activity relating to a comment on an issue or pull request. For more information about issues and pull requests, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues)\" and \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage issue comments, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issuecomment) or \"[Issue comments](https://docs.github.com/rest/issues/comments)\" in the REST API documentation.\n\nFor activity relating to an issue as opposed to comments on an issue, use the `issue` event. For activity related to pull request reviews or pull request review comments, use the `pull_request_review` or `pull_request_review_comment` events. For more information about the different types of pull request comments, see \"[Working with comments](https://docs.github.com/rest/guides/working-with-comments).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A comment on an issue was unpinned.", + "operationId": "issue-comment/unpinned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-comment-unpinned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-dependencies-blocked-by-added": { + "post": { + "summary": "This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "An issue was marked as blocked by another issue.", + "operationId": "issue-dependencies/blocked-by-added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-dependencies-blocked-by-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue-dependencies", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-dependencies-blocked-by-removed": { + "post": { + "summary": "This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "The blocked by relationship between an issue and another issue was removed.", + "operationId": "issue-dependencies/blocked-by-removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-dependencies-blocked-by-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue-dependencies", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-dependencies-blocking-added": { + "post": { + "summary": "This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "An issue was marked as blocking another issue.", + "operationId": "issue-dependencies/blocking-added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-dependencies-blocking-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue-dependencies", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issue-dependencies-blocking-removed": { + "post": { + "summary": "This event occurs when there is activity relating to issue dependencies, such as blocking or blocked-by relationships.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "The blocking relationship between an issue and another issue was removed.", + "operationId": "issue-dependencies/blocking-removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issue-dependencies-blocking-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issue-dependencies", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-assigned": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was assigned to a user.", + "operationId": "issues/assigned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-assigned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-closed": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was closed.", + "operationId": "issues/closed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-closed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was deleted.", + "operationId": "issues/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-demilestoned": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was removed from a milestone.", + "operationId": "issues/demilestoned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-demilestoned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-edited": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "The title or body on an issue was edited.", + "operationId": "issues/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-labeled": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A label was added to an issue.", + "operationId": "issues/labeled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-labeled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-locked": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "Conversation on an issue was locked. For more information, see \"[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations).\"", + "operationId": "issues/locked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-locked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-milestoned": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was added to a milestone.", + "operationId": "issues/milestoned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-milestoned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-opened": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was created. When a closed issue is reopened, the action will be `reopened` instead.", + "operationId": "issues/opened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-opened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-pinned": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was pinned to a repository. For more information, see \"[Pinning an issue to your repository](https://docs.github.com/issues/tracking-your-work-with-issues/pinning-an-issue-to-your-repository).\"", + "operationId": "issues/pinned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-pinned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A closed issue was reopened.", + "operationId": "issues/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-reopened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-transferred": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was transferred to another repository. For more information, see \"[Transferring an issue to another repository](https://docs.github.com/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository).\"", + "operationId": "issues/transferred", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-transferred" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-typed": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue type was added to an issue.", + "operationId": "issues/typed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-typed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-unassigned": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A user was unassigned from an issue.", + "operationId": "issues/unassigned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-unassigned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-unlabeled": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "A label was removed from an issue.", + "operationId": "issues/unlabeled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-unlabeled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-unlocked": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "Conversation on an issue was locked. For more information, see \"[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations).\"", + "operationId": "issues/unlocked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-unlocked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-unpinned": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue was unpinned from a repository. For more information, see \"[Pinning an issue to your repository](https://docs.github.com/issues/tracking-your-work-with-issues/pinning-an-issue-to-your-repository).\"", + "operationId": "issues/unpinned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-unpinned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "issues-untyped": { + "post": { + "summary": "This event occurs when there is activity relating to an issue. For more information about issues, see \"[About issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues).\" For information about the APIs to manage issues, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#issue) or \"[Issues](https://docs.github.com/rest/issues)\" in the REST API documentation.\n\nFor activity relating to a comment on an issue, use the `issue_comment` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permission.", + "description": "An issue type was removed from an issue.", + "operationId": "issues/untyped", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-issues-untyped" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "label-created": { + "post": { + "summary": "This event occurs when there is activity relating to labels. For more information, see \"[Managing labels](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/managing-labels).\" For information about the APIs to manage labels, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#label) or \"[Labels](https://docs.github.com/rest/issues/labels)\" in the REST API documentation.\n\nIf you want to receive an event when a label is added to or removed from an issue, pull request, or discussion, use the `labeled` or `unlabeled` action type for the `issues`, `pull_request`, or `discussion` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "A label was created.", + "operationId": "label/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#label" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-label-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "label", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "label-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to labels. For more information, see \"[Managing labels](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/managing-labels).\" For information about the APIs to manage labels, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#label) or \"[Labels](https://docs.github.com/rest/issues/labels)\" in the REST API documentation.\n\nIf you want to receive an event when a label is added to or removed from an issue, pull request, or discussion, use the `labeled` or `unlabeled` action type for the `issues`, `pull_request`, or `discussion` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "A label was deleted.", + "operationId": "label/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#label" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-label-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "label", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "label-edited": { + "post": { + "summary": "This event occurs when there is activity relating to labels. For more information, see \"[Managing labels](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/managing-labels).\" For information about the APIs to manage labels, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#label) or \"[Labels](https://docs.github.com/rest/issues/labels)\" in the REST API documentation.\n\nIf you want to receive an event when a label is added to or removed from an issue, pull request, or discussion, use the `labeled` or `unlabeled` action type for the `issues`, `pull_request`, or `discussion` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "A label's name, description, or color was changed.", + "operationId": "label/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#label" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-label-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "label", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "marketplace-purchase-cancelled": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub Marketplace purchase. For more information, see \"[GitHub Marketplace](https://docs.github.com/marketplace).\" For information about the APIs to manage GitHub Marketplace listings, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) or \"[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)\" in the REST API documentation.", + "description": "Someone cancelled a GitHub Marketplace plan, and the last billing cycle has ended. The change will take effect on the account immediately.", + "operationId": "marketplace-purchase/cancelled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-marketplace-purchase-cancelled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "marketplace_purchase", + "supported-webhook-types": [ + "marketplace" + ] + } + } + }, + "marketplace-purchase-changed": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub Marketplace purchase. For more information, see \"[GitHub Marketplace](https://docs.github.com/marketplace).\" For information about the APIs to manage GitHub Marketplace listings, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) or \"[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)\" in the REST API documentation.", + "description": "Someone upgraded or downgraded a GitHub Marketplace plan, and the last billing cycle has ended. The change will take effect on the account immediately.", + "operationId": "marketplace-purchase/changed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-marketplace-purchase-changed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "marketplace_purchase", + "supported-webhook-types": [ + "marketplace" + ] + } + } + }, + "marketplace-purchase-pending-change": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub Marketplace purchase. For more information, see \"[GitHub Marketplace](https://docs.github.com/marketplace).\" For information about the APIs to manage GitHub Marketplace listings, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) or \"[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)\" in the REST API documentation.", + "description": "Someone downgraded or cancelled a GitHub Marketplace plan. The new plan or cancellation will take effect at the end of the current billing cycle. When the change takes effect, the `changed` or `cancelled` event will be sent.", + "operationId": "marketplace-purchase/pending-change", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "marketplace_purchase", + "supported-webhook-types": [ + "marketplace" + ] + } + } + }, + "marketplace-purchase-pending-change-cancelled": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub Marketplace purchase. For more information, see \"[GitHub Marketplace](https://docs.github.com/marketplace).\" For information about the APIs to manage GitHub Marketplace listings, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) or \"[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)\" in the REST API documentation.", + "description": "Someone cancelled a pending change to a GitHub Marketplace plan. Pending changes include plan cancellations and downgrades that will take effect at the end of a billing cycle.", + "operationId": "marketplace-purchase/pending-change-cancelled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change-cancelled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "marketplace_purchase", + "supported-webhook-types": [ + "marketplace" + ] + } + } + }, + "marketplace-purchase-purchased": { + "post": { + "summary": "This event occurs when there is activity relating to a GitHub Marketplace purchase. For more information, see \"[GitHub Marketplace](https://docs.github.com/marketplace).\" For information about the APIs to manage GitHub Marketplace listings, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#marketplacelisting) or \"[GitHub Marketplace](https://docs.github.com/rest/apps/marketplace)\" in the REST API documentation.", + "description": "Someone purchased a GitHub Marketplace plan. The change will take effect on the account immediately.", + "operationId": "marketplace-purchase/purchased", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-marketplace-purchase-purchased" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "marketplace_purchase", + "supported-webhook-types": [ + "marketplace" + ] + } + } + }, + "member-added": { + "post": { + "summary": "This event occurs when there is activity relating to collaborators in a repository. For more information, see \"[Adding outside collaborators to repositories in your organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization).\" For more information about the API to manage repository collaborators, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#repositorycollaboratorconnection) or \"[Collaborators](https://docs.github.com/rest/collaborators/collaborators)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A GitHub user accepted an invitation to a repository.", + "operationId": "member/added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#member" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-member-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "member", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "member-edited": { + "post": { + "summary": "This event occurs when there is activity relating to collaborators in a repository. For more information, see \"[Adding outside collaborators to repositories in your organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization).\" For more information about the API to manage repository collaborators, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#repositorycollaboratorconnection) or \"[Collaborators](https://docs.github.com/rest/collaborators/collaborators)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "Permissions were changed for a collaborator on a repository.", + "operationId": "member/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#member" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-member-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "member", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "member-removed": { + "post": { + "summary": "This event occurs when there is activity relating to collaborators in a repository. For more information, see \"[Adding outside collaborators to repositories in your organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization).\" For more information about the API to manage repository collaborators, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#repositorycollaboratorconnection) or \"[Collaborators](https://docs.github.com/rest/collaborators/collaborators)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A collaborator was removed from a repository.", + "operationId": "member/removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#member" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-member-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "member", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "membership-added": { + "post": { + "summary": "This event occurs when there is activity relating to team membership. For more information, see \"[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams).\" For more information about the APIs to manage team memberships, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#team) or \"[Team members](https://docs.github.com/rest/teams/members)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "An organization member was added to a team.", + "operationId": "membership/added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#membership" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-membership-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "membership", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "membership-removed": { + "post": { + "summary": "This event occurs when there is activity relating to team membership. For more information, see \"[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams).\" For more information about the APIs to manage team memberships, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#team) or \"[Team members](https://docs.github.com/rest/teams/members)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "An organization member was removed from a team.", + "operationId": "membership/removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#membership" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-membership-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "membership", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "merge-group-checks-requested": { + "post": { + "summary": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"[Managing a merge queue](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.", + "description": "Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.\n\nWhen you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.", + "operationId": "merge-group/checks-requested", + "tags": [ + "merge-queue" + ], + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#merge_group" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-merge-group-checks-requested" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "merge_group", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "merge-group-destroyed": { + "post": { + "summary": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"[Managing a merge queue](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.", + "description": "The merge queue groups pull requests together to be merged. This event indicates that one of those merge groups was destroyed. This happens when a pull request is removed from the queue: any group containing that pull request is also destroyed.\n\nWhen you receive this event, you may want to cancel any checks that are running on the head SHA to avoid wasting computing resources on a merge group that will not be used.", + "operationId": "merge-group/destroyed", + "tags": [ + "merge-queue" + ], + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#merge_group" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-merge-group-destroyed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "merge_group", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "meta-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a webhook itself.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Meta\" app permission.", + "description": "The webhook was deleted.", + "operationId": "meta/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#meta" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-meta-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "meta", + "supported-webhook-types": [ + "marketplace", + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "milestone-closed": { + "post": { + "summary": "This event occurs when there is activity relating to milestones. For more information, see \"[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones).\" For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or \"[Milestones](https://docs.github.com/rest/issues/milestones)\" in the REST API documentation.\n\nIf you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" or \"Pull requests\" repository permissions.", + "description": "A milestone was closed.", + "operationId": "milestone/closed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-milestone-closed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "milestone", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "milestone-created": { + "post": { + "summary": "This event occurs when there is activity relating to milestones. For more information, see \"[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones).\" For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or \"[Milestones](https://docs.github.com/rest/issues/milestones)\" in the REST API documentation.\n\nIf you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" or \"Pull requests\" repository permissions.", + "description": "A milestone was created.", + "operationId": "milestone/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-milestone-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "milestone", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "milestone-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to milestones. For more information, see \"[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones).\" For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or \"[Milestones](https://docs.github.com/rest/issues/milestones)\" in the REST API documentation.\n\nIf you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" or \"Pull requests\" repository permissions.", + "description": "A milestone was deleted.", + "operationId": "milestone/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-milestone-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "milestone", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "milestone-edited": { + "post": { + "summary": "This event occurs when there is activity relating to milestones. For more information, see \"[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones).\" For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or \"[Milestones](https://docs.github.com/rest/issues/milestones)\" in the REST API documentation.\n\nIf you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" or \"Pull requests\" repository permissions.", + "description": "A milestone was edited.", + "operationId": "milestone/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-milestone-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "milestone", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "milestone-opened": { + "post": { + "summary": "This event occurs when there is activity relating to milestones. For more information, see \"[About milestones](https://docs.github.com/issues/using-labels-and-milestones-to-track-work/about-milestones).\" For information about the APIs to manage milestones, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#milestone) or \"[Milestones](https://docs.github.com/rest/issues/milestones)\" in the REST API documentation.\n\nIf you want to receive an event when an issue or pull request is added to or removed from a milestone, use the `milestoned` or `demilestoned` action type for the `issues` or `pull_request` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" or \"Pull requests\" repository permissions.", + "description": "A milestone was opened.", + "operationId": "milestone/opened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-milestone-opened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "milestone", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "org-block-blocked": { + "post": { + "summary": "This event occurs when organization owners or moderators block or unblock a non-member from collaborating on the organization's repositories. For more information, see \"[Blocking a user from your organization](https://docs.github.com/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization).\" For information about the APIs to manage blocked users, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#userblockedevent) or \"[Blocking users](https://docs.github.com/rest/orgs/blocking)\" in the REST API documentation.\n\nIf you want to receive an event when members are added or removed from an organization, use the `organization` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" organization permission.", + "description": "A user was blocked from the organization.", + "operationId": "org-block/blocked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#org_block" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-org-block-blocked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "org_block", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "org-block-unblocked": { + "post": { + "summary": "This event occurs when organization owners or moderators block or unblock a non-member from collaborating on the organization's repositories. For more information, see \"[Blocking a user from your organization](https://docs.github.com/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization).\" For information about the APIs to manage blocked users, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#userblockedevent) or \"[Blocking users](https://docs.github.com/rest/orgs/blocking)\" in the REST API documentation.\n\nIf you want to receive an event when members are added or removed from an organization, use the `organization` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" organization permission.", + "description": "A previously blocked user was unblocked from the organization.", + "operationId": "org-block/unblocked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#org_block" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-org-block-unblocked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "org_block", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "organization-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to an organization and its members. For more information, see \"[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations).\" For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or \"[Organizations](https://docs.github.com/rest/orgs)\" in the REST API documentation.\n\nIf you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "An organization was deleted.", + "operationId": "organization/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-organization-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "organization", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "organization-member-added": { + "post": { + "summary": "This event occurs when there is activity relating to an organization and its members. For more information, see \"[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations).\" For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or \"[Organizations](https://docs.github.com/rest/orgs)\" in the REST API documentation.\n\nIf you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A member accepted an invitation to join an organization.", + "operationId": "organization/member-added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-organization-member-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "organization", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "organization-member-invited": { + "post": { + "summary": "This event occurs when there is activity relating to an organization and its members. For more information, see \"[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations).\" For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or \"[Organizations](https://docs.github.com/rest/orgs)\" in the REST API documentation.\n\nIf you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A member was invited to join the organization.", + "operationId": "organization/member-invited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-organization-member-invited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "organization", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "organization-member-removed": { + "post": { + "summary": "This event occurs when there is activity relating to an organization and its members. For more information, see \"[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations).\" For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or \"[Organizations](https://docs.github.com/rest/orgs)\" in the REST API documentation.\n\nIf you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A member was removed from the organization.", + "operationId": "organization/member-removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-organization-member-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "organization", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "organization-renamed": { + "post": { + "summary": "This event occurs when there is activity relating to an organization and its members. For more information, see \"[About organizations](https://docs.github.com/organizations/collaborating-with-groups-in-organizations/about-organizations).\" For information about the APIs to manage organizations, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#organization) or \"[Organizations](https://docs.github.com/rest/orgs)\" in the REST API documentation.\n\nIf you want to receive an event when a non-member is blocked or unblocked from an organization, use the `org_block` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "The name of an organization was changed.", + "operationId": "organization/renamed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-organization-renamed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "organization", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "package-published": { + "post": { + "summary": "This event occurs when there is activity relating to GitHub Packages. For more information, see \"[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages).\" For information about the APIs to manage GitHub Packages, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#package) or \"[Packages](https://docs.github.com/rest/packages)\" in the REST API documentation.", + "description": "A package was published to a registry.", + "operationId": "package/published", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#package" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-package-published" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "package", + "supported-webhook-types": [ + "repository", + "organization" + ] + } + } + }, + "package-updated": { + "post": { + "summary": "This event occurs when there is activity relating to GitHub Packages. For more information, see \"[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages).\" For information about the APIs to manage GitHub Packages, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#package) or \"[Packages](https://docs.github.com/rest/packages)\" in the REST API documentation.", + "description": "A previously published package was updated.", + "operationId": "package/updated", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#package" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-package-updated" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "package", + "supported-webhook-types": [ + "repository", + "organization" + ] + } + } + }, + "page-build": { + "post": { + "summary": "This event occurs when there is an attempted build of a GitHub Pages site. This event occurs regardless of whether the build is successful. For more information, see \"[Configuring a publishing source for your GitHub Pages site](https://docs.github.com/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site).\" For information about the API to manage GitHub Pages, see \"[Pages](https://docs.github.com/rest/pages)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pages\" repository permission.", + "operationId": "page-build", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#page_build" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-page-build" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "page_build", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "personal-access-token-request-approved": { + "post": { + "summary": "This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see \"[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Personal access token requests\" organization permission.", + "description": "A fine-grained personal access token request was approved.", + "operationId": "personal-access-token-request/approved", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "personal_access_token_request", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "integration", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-personal-access-token-request-approved" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "personal_access_token_request", + "supported-webhook-types": [ + "app", + "organization" + ] + } + } + }, + "personal-access-token-request-cancelled": { + "post": { + "summary": "This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see \"[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Personal access token requests\" organization permission.", + "description": "A fine-grained personal access token request was cancelled by the requester.", + "operationId": "personal-access-token-request/cancelled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "personal_access_token_request", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "integration", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-personal-access-token-request-cancelled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "personal_access_token_request", + "supported-webhook-types": [ + "app", + "organization" + ] + } + } + }, + "personal-access-token-request-created": { + "post": { + "summary": "This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see \"[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Personal access token requests\" organization permission.", + "description": "A fine-grained personal access token request was created.", + "operationId": "personal-access-token-request/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "personal_access_token_request", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "integration", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-personal-access-token-request-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "personal_access_token_request", + "supported-webhook-types": [ + "app", + "organization" + ] + } + } + }, + "personal-access-token-request-denied": { + "post": { + "summary": "This event occurs when there is activity relating to a request for a fine-grained personal access token to access resources that belong to a resource owner that requires approval for token access. For more information, see \"[Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Personal access token requests\" organization permission.", + "description": "A fine-grained personal access token request was denied.", + "operationId": "personal-access-token-request/denied", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "personal_access_token_request", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "integration", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-personal-access-token-request-denied" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "personal_access_token_request", + "supported-webhook-types": [ + "app", + "organization" + ] + } + } + }, + "ping": { + "post": { + "summary": "This event occurs when you create a new webhook. The ping event is a confirmation from GitHub that you configured the webhook correctly.", + "operationId": "ping", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#ping" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-ping" + }, + "examples": { + "default": { + "$ref": "#/components/examples/ping" + } + } + }, + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/webhook-ping-form-encoded" + }, + "examples": { + "default": { + "$ref": "#/components/examples/ping-form-encoded" + } + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "ping", + "supported-webhook-types": [ + "repository", + "organization", + "app", + "business", + "marketplace" + ] + } + } + }, + "project-card-converted": { + "post": { + "summary": "This event occurs when there is activity relating to a card on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A note in a project (classic) was converted to an issue.", + "operationId": "project-card/converted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-card-converted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_card", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-card-created": { + "post": { + "summary": "This event occurs when there is activity relating to a card on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A card was added to a project (classic).", + "operationId": "project-card/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-card-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_card", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-card-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a card on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A card on a project (classic) was deleted.", + "operationId": "project-card/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-card-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_card", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-card-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a card on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A note on a project (classic) was edited.", + "operationId": "project-card/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-card-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_card", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-card-moved": { + "post": { + "summary": "This event occurs when there is activity relating to a card on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a column on a project (classic), use the `project` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A card on a project (classic) was moved to another column or to another position in its column.", + "operationId": "project-card/moved", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-card-moved" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_card", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-closed": { + "post": { + "summary": "This event occurs when there is activity relating to a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A project (classic) was closed.", + "operationId": "project/closed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-closed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-column-created": { + "post": { + "summary": "This event occurs when there is activity relating to a column on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A column was added to a project (classic).", + "operationId": "project-column/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-column-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_column", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-column-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a column on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A column was deleted from a project (classic).", + "operationId": "project-column/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-column-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_column", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-column-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a column on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "The name of a column on a project (classic) was changed.", + "operationId": "project-column/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-column-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_column", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-column-moved": { + "post": { + "summary": "This event occurs when there is activity relating to a column on a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a project (classic) or a card on a project (classic), use the `project` and `project_card` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A column was moved to a new position on a project (classic).", + "operationId": "project-column/moved", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-column-moved" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project_column", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-created": { + "post": { + "summary": "This event occurs when there is activity relating to a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A project (classic) was created.", + "operationId": "project/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A project (classic) was deleted.", + "operationId": "project/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "The name or description of a project (classic) was changed.", + "operationId": "project/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "project-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to a project (classic). For more information, see \"[About projects (classic)](https://docs.github.com/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards).\" For information about the API to manage classic projects, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#project) or \"[Projects (classic)](https://docs.github.com/rest/projects)\" in the REST API documentation.\n\nFor activity relating to a card or column on a project (classic), use the `project_card` and `project_column` event.\n\nThis event relates to projects (classic) only. For activity relating to the new Projects experience, use the `projects_v2` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.", + "description": "A project (classic) was closed.", + "operationId": "project/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-project-reopened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "project", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "projects-v2-closed": { + "post": { + "summary": "This event occurs when there is activity relating to an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2).\n\nFor activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A project in the organization was closed.", + "operationId": "projects-v2/closed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-project-closed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-created": { + "post": { + "summary": "This event occurs when there is activity relating to an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2).\n\nFor activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A project in the organization was created.", + "operationId": "projects-v2/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-project-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2).\n\nFor activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A project in the organization was deleted.", + "operationId": "projects-v2/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-project-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-edited": { + "post": { + "summary": "This event occurs when there is activity relating to an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2).\n\nFor activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "The title, description, or README of a project in the organization was changed.", + "operationId": "projects-v2/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-project-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-item-archived": { + "post": { + "summary": "This event occurs when there is activity relating to an item on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item).\n\nFor activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "An item on an organization project was archived. For more information, see \"[Archiving items from your project](https://docs.github.com/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project).\"", + "operationId": "projects-v2-item/archived", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-item", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-item-archived" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_item", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-item-converted": { + "post": { + "summary": "This event occurs when there is activity relating to an item on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item).\n\nFor activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A draft issue in an organization project was converted to an issue.", + "operationId": "projects-v2-item/converted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-item", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-item-converted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_item", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-item-created": { + "post": { + "summary": "This event occurs when there is activity relating to an item on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item).\n\nFor activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "An item was added to a project in the organization.", + "operationId": "projects-v2-item/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-item", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-item-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_item", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-item-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to an item on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item).\n\nFor activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "An item was deleted from a project in the organization.", + "operationId": "projects-v2-item/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-item", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-item-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_item", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-item-edited": { + "post": { + "summary": "This event occurs when there is activity relating to an item on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item).\n\nFor activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "The values or state of an item in an organization project were changed. For example, the value of a field was updated, the body of a draft issue was changed, or a draft issue was converted to an issue.", + "operationId": "projects-v2-item/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-item", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-item-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_item", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-item-reordered": { + "post": { + "summary": "This event occurs when there is activity relating to an item on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item).\n\nFor activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "The position of an item in an organization project was changed. For example, an item was moved above or below another item in the table or board layout.", + "operationId": "projects-v2-item/reordered", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-item", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-item-reordered" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_item", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-item-restored": { + "post": { + "summary": "This event occurs when there is activity relating to an item on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2item).\n\nFor activity relating to a project (instead of an item on a project), use the `projects_v2` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "An archived item on an organization project was restored from the archive. For more information, see \"[Archiving items from your project](https://docs.github.com/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project).\"", + "operationId": "projects-v2-item/restored", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-item", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-item-restored" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_item", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\" For information about the Projects API, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#projectv2).\n\nFor activity relating to a item on a project, use the `projects_v2_item` event. For activity relating to Projects (classic), use the `project`, `project_card`, and `project_column` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> Webhook events for projects are currently in public preview and subject to change. To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A project in the organization was reopened.", + "operationId": "projects-v2/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-project-reopened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-status-update-created": { + "post": { + "summary": "This event occurs when there is activity relating to a status update on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\"\n\nFor activity relating to a project, use the `projects_v2` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A status update was added to a project in the organization.", + "operationId": "projects-v2-status-update/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-status-update", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-status-update-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_status_update", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-status-update-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a status update on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\"\n\nFor activity relating to a project, use the `projects_v2` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A status update was removed from a project in the organization.", + "operationId": "projects-v2-status-update/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-status-update", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-status-update-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_status_update", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "projects-v2-status-update-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a status update on an organization-level project. For more information, see \"[About Projects](https://docs.github.com/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects).\"\n\nFor activity relating to a project, use the `projects_v2` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" organization permission.\n\n> [!NOTE]\n> To share feedback about projects webhooks with GitHub, see the [Projects webhook feedback discussion](https://github.com/orgs/community/discussions/17405).", + "description": "A status update was edited on a project in the organization.", + "operationId": "projects-v2-status-update/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "project-v2-status-update", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-projects-v2-status-update-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "projects_v2_status_update", + "supported-webhook-types": [ + "organization" + ] + } + } + }, + "public": { + "post": { + "summary": "This event occurs when repository visibility changes from private to public. For more information, see \"[Setting repository visibility](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "operationId": "public", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#public" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-public" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "public", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-assigned": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was assigned to a user.", + "operationId": "pull-request/assigned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-assigned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-auto-merge-disabled": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "Auto merge was disabled for a pull request. For more information, see \"[Automatically merging a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request).\"", + "operationId": "pull-request/auto-merge-disabled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-auto-merge-disabled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-auto-merge-enabled": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "Auto merge was enabled for a pull request. For more information, see \"[Automatically merging a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request).\"", + "operationId": "pull-request/auto-merge-enabled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-auto-merge-enabled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-closed": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was closed. If `merged` is false in the webhook payload, the pull request was closed with unmerged commits. If `merged` is true in the webhook payload, the pull request was merged.", + "operationId": "pull-request/closed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-closed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-converted-to-draft": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was converted to a draft. For more information, see \"[Changing the stage of a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request).\"", + "operationId": "pull-request/converted-to-draft", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-converted-to-draft" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-demilestoned": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was removed from a milestone.", + "operationId": "pull-request/demilestoned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-demilestoned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-dequeued": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was removed from the merge queue.", + "operationId": "pull-request/dequeued", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-dequeued" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-edited": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "The title or body of a pull request was edited, or the base branch of a pull request was changed.", + "operationId": "pull-request/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-enqueued": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was added to the merge queue.", + "operationId": "pull-request/enqueued", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-enqueued" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-labeled": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A label was added to a pull request.", + "operationId": "pull-request/labeled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-labeled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-locked": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "Conversation on a pull request was locked. For more information, see \"[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations).\"", + "operationId": "pull-request/locked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-locked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-milestoned": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was added to a milestone.", + "operationId": "pull-request/milestoned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-milestoned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-opened": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request was created", + "operationId": "pull-request/opened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-opened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-ready-for-review": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A draft pull request was marked as ready for review. For more information, see \"[Changing the stage of a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request).\"", + "operationId": "pull-request/ready-for-review", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-ready-for-review" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-reopened": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A previously closed pull request was reopened.", + "operationId": "pull-request/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-reopened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-comment-created": { + "post": { + "summary": "This event occurs when there is activity relating to a pull request review comment. A pull request review comment is a comment on a pull request's diff. For more information, see \"[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request).\" For information about the APIs to manage pull request review comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewcomment) or \"[Pull request review comments](https://docs.github.com/rest/pulls/comments)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request comments, or pull request review threads, use the `pull_request_review`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A comment on a pull request diff was created.", + "operationId": "pull-request-review-comment/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-comment-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-comment-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to a pull request review comment. A pull request review comment is a comment on a pull request's diff. For more information, see \"[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request).\" For information about the APIs to manage pull request review comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewcomment) or \"[Pull request review comments](https://docs.github.com/rest/pulls/comments)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request comments, or pull request review threads, use the `pull_request_review`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A comment on a pull request diff was deleted.", + "operationId": "pull-request-review-comment/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-comment-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-comment-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a pull request review comment. A pull request review comment is a comment on a pull request's diff. For more information, see \"[Commenting on a pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request).\" For information about the APIs to manage pull request review comments, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewcomment) or \"[Pull request review comments](https://docs.github.com/rest/pulls/comments)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request comments, or pull request review threads, use the `pull_request_review`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "The content of a comment on a pull request diff was changed.", + "operationId": "pull-request-review-comment/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_comment" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-comment-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review_comment", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-dismissed": { + "post": { + "summary": "This event occurs when there is activity relating to a pull request review. A pull request review is a group of pull request review comments in addition to a body comment and a state. For more information, see \"[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews).\" For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreview) or \"[Pull request reviews](https://docs.github.com/rest/pulls/reviews)\" in the REST API documentation.\n\nFor activity related to pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A review on a pull request was dismissed.", + "operationId": "pull-request-review/dismissed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-dismissed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a pull request review. A pull request review is a group of pull request review comments in addition to a body comment and a state. For more information, see \"[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews).\" For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreview) or \"[Pull request reviews](https://docs.github.com/rest/pulls/reviews)\" in the REST API documentation.\n\nFor activity related to pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "The body comment on a pull request review was edited.", + "operationId": "pull-request-review/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-request-removed": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A request for review by a person or team was removed from a pull request.", + "operationId": "pull-request/review-request-removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-request-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-requested": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "Review by a person or team was requested for a pull request. For more information, see \"[Requesting a pull request review](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review).\"", + "operationId": "pull-request/review-requested", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-requested" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-submitted": { + "post": { + "summary": "This event occurs when there is activity relating to a pull request review. A pull request review is a group of pull request review comments in addition to a body comment and a state. For more information, see \"[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews).\" For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreview) or \"[Pull request reviews](https://docs.github.com/rest/pulls/reviews)\" in the REST API documentation.\n\nFor activity related to pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A review on a pull request was submitted.", + "operationId": "pull-request-review/submitted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-submitted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-thread-resolved": { + "post": { + "summary": "This event occurs when there is activity relating to a comment thread on a pull request. For more information, see \"[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews).\" For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewthread) or \"[Pull request review comments](https://docs.github.com/rest/pulls/comments)\" in the REST API documentation.\n\nFor activity related to pull request review comments, pull request comments, or pull request reviews, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A comment thread on a pull request was marked as resolved.", + "operationId": "pull-request-review-thread/resolved", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_thread" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-thread-resolved" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review_thread", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-review-thread-unresolved": { + "post": { + "summary": "This event occurs when there is activity relating to a comment thread on a pull request. For more information, see \"[About pull request reviews](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews).\" For information about the APIs to manage pull request reviews, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequestreviewthread) or \"[Pull request review comments](https://docs.github.com/rest/pulls/comments)\" in the REST API documentation.\n\nFor activity related to pull request review comments, pull request comments, or pull request reviews, use the `pull_request_review_comment`, `issue_comment`, or `pull_request_review` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A previously resolved comment thread on a pull request was marked as unresolved.", + "operationId": "pull-request-review-thread/unresolved", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review_thread" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-review-thread-unresolved" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request_review_thread", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-synchronize": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A pull request's head branch was updated. For example, the head branch was updated from the base branch or new commits were pushed to the head branch.", + "operationId": "pull-request/synchronize", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-synchronize" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-unassigned": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A user was unassigned from a pull request.", + "operationId": "pull-request/unassigned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-unassigned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-unlabeled": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "A label was removed from a pull request.", + "operationId": "pull-request/unlabeled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-unlabeled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "pull-request-unlocked": { + "post": { + "summary": "This event occurs when there is activity on a pull request. For more information, see \"[About pull requests](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).\" For information about the APIs to manage pull requests, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#pullrequest) or \"[Pulls](https://docs.github.com/rest/pulls/pulls)\" in the REST API documentation.\n\nFor activity related to pull request reviews, pull request review comments, pull request comments, or pull request review threads, use the `pull_request_review`, `pull_request_review_comment`, `issue_comment`, or `pull_request_review_thread` events instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Pull requests\" repository permission.", + "description": "Conversation on a pull request was unlocked. For more information, see \"[Locking conversations](https://docs.github.com/communities/moderating-comments-and-conversations/locking-conversations).\"", + "operationId": "pull-request/unlocked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-unlocked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "push": { + "post": { + "summary": "This event occurs when there is a push to a repository branch. This includes when a commit is pushed, when a commit tag is pushed,\nwhen a branch is deleted, when a tag is deleted, or when a repository is created from a template. To subscribe to only branch\nand tag deletions, use the [`delete`](#delete) webhook event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.\n\n> [!NOTE]\n> Events will not be created if more than 5000 branches are pushed at once. Events will not be created for tags when more than three tags are pushed at once.", + "operationId": "push", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#push" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-push" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "push", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "registry-package-published": { + "post": { + "summary": "This event occurs when there is activity relating to GitHub Packages. For more information, see \"[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages).\" For information about the APIs to manage GitHub Packages, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#package) or \"[Packages](https://docs.github.com/rest/packages)\" in the REST API documentation.\n\nTo install this event on a GitHub App, the app must have at least read-level access for the \"Packages\" repository permission.\n\n> [!NOTE]\n> GitHub recommends that you use the newer `package` event instead.", + "description": "A package was published to a registry.", + "operationId": "registry-package/published", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#registry_package" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-registry-package-published" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "registry_package", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "registry-package-updated": { + "post": { + "summary": "This event occurs when there is activity relating to GitHub Packages. For more information, see \"[Introduction to GitHub Packages](https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages).\" For information about the APIs to manage GitHub Packages, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#package) or \"[Packages](https://docs.github.com/rest/packages)\" in the REST API documentation.\n\nTo install this event on a GitHub App, the app must have at least read-level access for the \"Packages\" repository permission.\n\n> [!NOTE]\n> GitHub recommends that you use the newer `package` event instead.", + "description": "A package that was previously published to a registry was updated.", + "operationId": "registry-package/updated", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#registry_package" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-registry-package-updated" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "registry_package", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "release-created": { + "post": { + "summary": "This event occurs when there is activity relating to releases. For more information, see \"[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases).\" For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or \"[Releases](https://docs.github.com/rest/releases)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "A draft was saved, or a release or pre-release was published without previously being saved as a draft.", + "operationId": "release/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#release" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "release", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "release-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to releases. For more information, see \"[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases).\" For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or \"[Releases](https://docs.github.com/rest/releases)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "A release, pre-release, or draft release was deleted.", + "operationId": "release/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#release" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "release", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "release-edited": { + "post": { + "summary": "This event occurs when there is activity relating to releases. For more information, see \"[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases).\" For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or \"[Releases](https://docs.github.com/rest/releases)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "The details of a release, pre-release, or draft release were edited. For more information, see \"[Managing releases in a repository](https://docs.github.com/repositories/releasing-projects-on-github/managing-releases-in-a-repository#editing-a-release).\"", + "operationId": "release/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#release" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "release", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "release-prereleased": { + "post": { + "summary": "This event occurs when there is activity relating to releases. For more information, see \"[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases).\" For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or \"[Releases](https://docs.github.com/rest/releases)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "A release was created and identified as a pre-release. A pre-release is a release that is not ready for production and may be unstable.", + "operationId": "release/prereleased", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#release" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-prereleased" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "release", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "release-published": { + "post": { + "summary": "This event occurs when there is activity relating to releases. For more information, see \"[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases).\" For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or \"[Releases](https://docs.github.com/rest/releases)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "A release, pre-release, or draft of a release was published.", + "operationId": "release/published", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#release" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-published" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "release", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "release-released": { + "post": { + "summary": "This event occurs when there is activity relating to releases. For more information, see \"[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases).\" For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or \"[Releases](https://docs.github.com/rest/releases)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "A release was published, or a pre-release was changed to a release.", + "operationId": "release/released", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#release" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-released" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "release", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "release-unpublished": { + "post": { + "summary": "This event occurs when there is activity relating to releases. For more information, see \"[About releases](https://docs.github.com/repositories/releasing-projects-on-github/about-releases).\" For information about the APIs to manage releases, see [the GraphQL API documentation](https://docs.github.com/graphql/reference/objects#release) or \"[Releases](https://docs.github.com/rest/releases)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "description": "A release or pre-release was unpublished.", + "operationId": "release/unpublished", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#release" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-unpublished" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "release", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "repository-advisory-published": { + "post": { + "summary": "This event occurs when there is activity relating to a repository security advisory. For more information about repository security advisories, see \"[About GitHub Security Advisories for repositories](https://docs.github.com/code-security/repository-security-advisories/about-github-security-advisories-for-repositories).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Repository security advisories\" permission.", + "description": "A repository security advisory was published.", + "operationId": "repository-advisory/published", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_advisory" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-advisory-published" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_advisory", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "repository-advisory-reported": { + "post": { + "summary": "This event occurs when there is activity relating to a repository security advisory. For more information about repository security advisories, see \"[About GitHub Security Advisories for repositories](https://docs.github.com/code-security/repository-security-advisories/about-github-security-advisories-for-repositories).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Repository security advisories\" permission.", + "description": "A private vulnerability report was submitted.", + "operationId": "repository-advisory/reported", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_advisory" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-advisory-reported" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_advisory", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "repository-archived": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "A repository was archived.", + "operationId": "repository/archived", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-archived" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-created": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "A repository was created.", + "operationId": "repository/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "A repository was deleted. GitHub Apps and repository webhooks will not receive this event.", + "operationId": "repository/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-dispatch-sample.collected": { + "post": { + "summary": "This event occurs when a GitHub App sends a `POST` request to `/repos/{owner}/{repo}/dispatches`. For more information, see [the REST API documentation for creating a repository dispatch event](https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event). In the payload, the `action` will be the `event_type` that was specified in the `POST /repos/{owner}/{repo}/dispatches` request body.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "operationId": "repository-dispatch/sample.collected", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_dispatch" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-dispatch-sample" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_dispatch", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "repository-edited": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "The topics, default branch, description, or homepage of a repository was changed.", + "operationId": "repository/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-import": { + "post": { + "summary": "This event occurs when a repository is imported to GitHub. For more information, see \"[Importing a repository with GitHub Importer](https://docs.github.com/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer).\" For more information about the API to manage imports, see [the REST API documentation](https://docs.github.com/rest/migrations/source-imports).", + "operationId": "repository-import", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_import" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-import" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_import", + "supported-webhook-types": [ + "repository", + "organization" + ] + } + } + }, + "repository-privatized": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "The visibility of a repository was changed to `private`.", + "operationId": "repository/privatized", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-privatized" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-publicized": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "The visibility of a repository was changed to `public`.", + "operationId": "repository/publicized", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-publicized" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-renamed": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "The name of a repository was changed.", + "operationId": "repository/renamed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-renamed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-ruleset-created": { + "post": { + "summary": "This event occurs when there is activity relating to repository rulesets.\nFor more information about repository rulesets, see \"[Managing rulesets](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets).\"\nFor more information on managing rulesets via the APIs, see [Repository ruleset](https://docs.github.com/graphql/reference/objects#repositoryruleset) in the GraphQL documentation or \"[Repository rules](https://docs.github.com/rest/repos/rules)\" and \"[Organization rules](https://docs.github.com/rest/orgs/rules) in the REST API documentation.\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository or organization permission.", + "description": "A repository ruleset was created.", + "operationId": "repository-ruleset/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_ruleset" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-ruleset-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_ruleset", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "repository-ruleset-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to repository rulesets.\nFor more information about repository rulesets, see \"[Managing rulesets](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets).\"\nFor more information on managing rulesets via the APIs, see [Repository ruleset](https://docs.github.com/graphql/reference/objects#repositoryruleset) in the GraphQL documentation or \"[Repository rules](https://docs.github.com/rest/repos/rules)\" and \"[Organization rules](https://docs.github.com/rest/orgs/rules) in the REST API documentation.\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository or organization permission.", + "description": "A repository ruleset was deleted.", + "operationId": "repository-ruleset/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_ruleset" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-ruleset-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_ruleset", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "repository-ruleset-edited": { + "post": { + "summary": "This event occurs when there is activity relating to repository rulesets.\nFor more information about repository rulesets, see \"[Managing rulesets](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets).\"\nFor more information on managing rulesets via the APIs, see [Repository ruleset](https://docs.github.com/graphql/reference/objects#repositoryruleset) in the GraphQL documentation or \"[Repository rules](https://docs.github.com/rest/repos/rules)\" and \"[Organization rules](https://docs.github.com/rest/orgs/rules) in the REST API documentation.\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository or organization permission.", + "description": "A repository ruleset was edited.", + "operationId": "repository-ruleset/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_ruleset" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-ruleset-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_ruleset", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "repository-transferred": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "Ownership of the repository was transferred to a user or organization account. This event is only sent to the account where the ownership is transferred. To receive the `repository.transferred` event, the new owner account must have the GitHub App installed, and the App must be subscribed to \"Repository\" events.", + "operationId": "repository/transferred", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-transferred" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-unarchived": { + "post": { + "summary": "This event occurs when there is activity relating to repositories. For more information, see \"[About repositories](https://docs.github.com/repositories/creating-and-managing-repositories/about-repositories).\" For information about the APIs to manage repositories, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#repository) or \"[Repositories](https://docs.github.com/rest/repos)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "A previously archived repository was unarchived.", + "operationId": "repository/unarchived", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-unarchived" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "repository-vulnerability-alert-create": { + "post": { + "summary": "This event occurs when there is activity relating to a security vulnerability alert in a repository.\n\n> [!WARNING]\n> **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead.", + "description": "A repository vulnerability alert was created.", + "operationId": "repository-vulnerability-alert/create", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-create" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_vulnerability_alert", + "supported-webhook-types": [ + "repository", + "organization" + ] + } + } + }, + "repository-vulnerability-alert-dismiss": { + "post": { + "summary": "This event occurs when there is activity relating to a security vulnerability alert in a repository.\n\n> [!WARNING]\n> **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead.", + "description": "A repository vulnerability alert was dismissed.", + "operationId": "repository-vulnerability-alert/dismiss", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-dismiss" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_vulnerability_alert", + "supported-webhook-types": [ + "repository", + "organization" + ] + } + } + }, + "repository-vulnerability-alert-reopen": { + "post": { + "summary": "This event occurs when there is activity relating to a security vulnerability alert in a repository.\n\n> [!WARNING]\n> **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead.", + "description": "A previously dismissed or resolved repository vulnerability alert was reopened.", + "operationId": "repository-vulnerability-alert/reopen", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-reopen" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_vulnerability_alert", + "supported-webhook-types": [ + "repository", + "organization" + ] + } + } + }, + "repository-vulnerability-alert-resolve": { + "post": { + "summary": "This event occurs when there is activity relating to a security vulnerability alert in a repository.\n\n> [!WARNING]\n> **Closing down notice:** This event is closing down. Use the `dependabot_alert` event instead.", + "description": "A repository vulnerability alert was marked as resolved.", + "operationId": "repository-vulnerability-alert/resolve", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#repository_vulnerability_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-resolve" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "repository_vulnerability_alert", + "supported-webhook-types": [ + "repository", + "organization" + ] + } + } + }, + "secret-scanning-alert-assigned": { + "post": { + "summary": "This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A secret scanning alert was assigned.", + "operationId": "secret-scanning-alert/assigned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-assigned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-created": { + "post": { + "summary": "This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A secret scanning alert was created.", + "operationId": "secret-scanning-alert/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-location-created": { + "post": { + "summary": "This event occurs when there is activity relating to the locations of a secret in a secret scanning alert.\n\nFor more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alerts, use the `secret_scanning_alert` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A new instance of a previously detected secret was detected in a repository, and the location of the secret was added to the existing alert.", + "operationId": "secret-scanning-alert-location/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert_location" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-location-created" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-location-created" + } + } + }, + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-location-created-form-encoded" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-location-created-form-encoded" + } + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "webhooks", + "subcategory": "secret_scanning_alert_location", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-publicly-leaked": { + "post": { + "summary": "This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A secret scanning alert was detected in a public repo.", + "operationId": "secret-scanning-alert/publicly-leaked", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-publicly-leaked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-reopened": { + "post": { + "summary": "This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A previously closed secret scanning alert was reopened.", + "operationId": "secret-scanning-alert/reopened", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-reopened" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-resolved": { + "post": { + "summary": "This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A secret scanning alert was closed.", + "operationId": "secret-scanning-alert/resolved", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-resolved" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-unassigned": { + "post": { + "summary": "This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A secret scanning alert was unassigned.", + "operationId": "secret-scanning-alert/unassigned", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-unassigned" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-validated": { + "post": { + "summary": "This event occurs when there is activity relating to a secret scanning alert. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\" For information about the API to manage secret scanning alerts, see \"[Secret scanning](https://docs.github.com/rest/secret-scanning)\" in the REST API documentation.\n\nFor activity relating to secret scanning alert locations, use the `secret_scanning_alert_location` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A secret scanning alert was validated.", + "operationId": "secret-scanning-alert/validated", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_alert" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-validated" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-scan-completed": { + "post": { + "summary": "This event occurs when secret scanning completes certain scans on a repository. For more information about secret scanning, see \"[About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning).\"\n\nScans can originate from multiple events such as updates to a custom pattern, a push to a repository, or updates\nto patterns from partners. For more information on custom patterns, see \"[About custom patterns](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Secret scanning alerts\" repository permission.", + "description": "A secret scanning scan was completed.", + "operationId": "secret-scanning-scan/completed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#secret_scanning_scan" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-scan-completed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "secret_scanning_scan", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "security-advisory-published": { + "post": { + "summary": "This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"[About global security advisories](https://docs.github.com/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-global-security-advisories).\" For information about the API to manage security advisories, see [the REST API documentation](https://docs.github.com/rest/security-advisories/global-advisories) or [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#securityadvisory).\n\nGitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\"", + "description": "A security advisory was published to the GitHub community.", + "operationId": "security-advisory/published", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#security_advisory" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-security-advisory-published" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "security_advisory", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "security-advisory-updated": { + "post": { + "summary": "This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"[About global security advisories](https://docs.github.com/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-global-security-advisories).\" For information about the API to manage security advisories, see [the REST API documentation](https://docs.github.com/rest/security-advisories/global-advisories) or [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#securityadvisory).\n\nGitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\"", + "description": "The metadata or description of a security advisory was changed.", + "operationId": "security-advisory/updated", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#security_advisory" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-security-advisory-updated" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "security_advisory", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "security-advisory-withdrawn": { + "post": { + "summary": "This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"[About global security advisories](https://docs.github.com/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-global-security-advisories).\" For information about the API to manage security advisories, see [the REST API documentation](https://docs.github.com/rest/security-advisories/global-advisories) or [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#securityadvisory).\n\nGitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"[About Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).\"", + "description": "A previously published security advisory was withdrawn.", + "operationId": "security-advisory/withdrawn", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#security_advisory" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-security-advisory-withdrawn" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "security_advisory", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "security-and-analysis": { + "post": { + "summary": "This event occurs when code security and analysis features are enabled or disabled for a repository. For more information, see \"[GitHub security features](https://docs.github.com/code-security/getting-started/github-security-features).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Administration\" repository permission.", + "operationId": "security-and-analysis", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#security_and_analysis" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-security-and-analysis" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "security_and_analysis", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "sponsorship-cancelled": { + "post": { + "summary": "This event occurs when there is activity relating to a sponsorship listing. For more information, see \"[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors).\" For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship).\n\nYou can only create a sponsorship webhook on GitHub.com. For more information, see \"[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account).\"", + "description": "A sponsorship was cancelled and the last billing cycle has ended.\n\nThis event is only sent when a recurring (monthly) sponsorship is cancelled; it is not sent for one-time sponsorships.", + "operationId": "sponsorship/cancelled", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-cancelled" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sponsorship", + "supported-webhook-types": [ + "sponsors_listing" + ] + } + } + }, + "sponsorship-created": { + "post": { + "summary": "This event occurs when there is activity relating to a sponsorship listing. For more information, see \"[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors).\" For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship).\n\nYou can only create a sponsorship webhook on GitHub.com. For more information, see \"[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account).\"", + "description": "A sponsor created a sponsorship for a sponsored account. This event occurs once the payment is successfully processed.", + "operationId": "sponsorship/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sponsorship", + "supported-webhook-types": [ + "sponsors_listing" + ] + } + } + }, + "sponsorship-edited": { + "post": { + "summary": "This event occurs when there is activity relating to a sponsorship listing. For more information, see \"[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors).\" For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship).\n\nYou can only create a sponsorship webhook on GitHub.com. For more information, see \"[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account).\"", + "description": "A monthly sponsor changed who can see their sponsorship. If you recognize your sponsors publicly, you may want to update your sponsor recognition to reflect the change when this event occurs.", + "operationId": "sponsorship/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sponsorship", + "supported-webhook-types": [ + "sponsors_listing" + ] + } + } + }, + "sponsorship-pending-cancellation": { + "post": { + "summary": "This event occurs when there is activity relating to a sponsorship listing. For more information, see \"[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors).\" For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship).\n\nYou can only create a sponsorship webhook on GitHub.com. For more information, see \"[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account).\"", + "description": "A sponsor scheduled a cancellation for their sponsorship. The cancellation will become effective on their next billing date.\n\nThis event is only sent when a recurring (monthly) sponsorship is cancelled; it is not sent for one-time sponsorships.", + "operationId": "sponsorship/pending-cancellation", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-pending-cancellation" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sponsorship", + "supported-webhook-types": [ + "sponsors_listing" + ] + } + } + }, + "sponsorship-pending-tier-change": { + "post": { + "summary": "This event occurs when there is activity relating to a sponsorship listing. For more information, see \"[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors).\" For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship).\n\nYou can only create a sponsorship webhook on GitHub.com. For more information, see \"[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account).\"", + "description": "A sponsor scheduled a downgrade to a lower sponsorship tier. The new tier will become effective on their next billing date.", + "operationId": "sponsorship/pending-tier-change", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-pending-tier-change" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sponsorship", + "supported-webhook-types": [ + "sponsors_listing" + ] + } + } + }, + "sponsorship-tier-changed": { + "post": { + "summary": "This event occurs when there is activity relating to a sponsorship listing. For more information, see \"[About GitHub Sponsors](https://docs.github.com/sponsors/getting-started-with-github-sponsors/about-github-sponsors).\" For information about the API to manage sponsors, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#sponsorship).\n\nYou can only create a sponsorship webhook on GitHub.com. For more information, see \"[Configuring webhooks for events in your sponsored account](https://docs.github.com/sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account).\"", + "description": "A sponsor changed the tier of their sponsorship and the change has taken effect. If a sponsor upgraded their tier, the change took effect immediately. If a sponsor downgraded their tier, the change took effect at the beginning of the sponsor's next billing cycle.", + "operationId": "sponsorship/tier-changed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sponsorship" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-tier-changed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sponsorship", + "supported-webhook-types": [ + "sponsors_listing" + ] + } + } + }, + "star-created": { + "post": { + "summary": "This event occurs when there is activity relating to repository stars. For more information about stars, see \"[Saving repositories with stars](https://docs.github.com/get-started/exploring-projects-on-github/saving-repositories-with-stars).\" For information about the APIs to manage stars, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#starredrepositoryconnection) or \"[Starring](https://docs.github.com/rest/activity/starring)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "Someone starred a repository.", + "operationId": "star/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#star" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-star-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "star", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "star-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to repository stars. For more information about stars, see \"[Saving repositories with stars](https://docs.github.com/get-started/exploring-projects-on-github/saving-repositories-with-stars).\" For information about the APIs to manage stars, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#starredrepositoryconnection) or \"[Starring](https://docs.github.com/rest/activity/starring)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "Someone unstarred the repository.", + "operationId": "star/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#star" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-star-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "star", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "status": { + "post": { + "summary": "This event occurs when the status of a Git commit changes. For example, commits can be marked as `error`, `failure`, `pending`, or `success`. For more information, see \"[About status checks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks).\" For information about the APIs to manage commit statuses, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#status) or \"[Commit statuses](https://docs.github.com/rest/commits/statuses)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Commit statuses\" repository permission.", + "operationId": "status", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#status" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-status" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "status", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "sub-issues-parent-issue-added": { + "post": { + "summary": "This event occurs when there is activity relating to sub-issues.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "A parent issue was added to an issue.", + "operationId": "sub-issues/parent-issue-added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sub-issues-parent-issue-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sub-issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "sub-issues-parent-issue-removed": { + "post": { + "summary": "This event occurs when there is activity relating to sub-issues.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "A parent issue was removed from an issue.", + "operationId": "sub-issues/parent-issue-removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sub-issues-parent-issue-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sub-issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "sub-issues-sub-issue-added": { + "post": { + "summary": "This event occurs when there is activity relating to sub-issues.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "A sub-issue was added to an issue.", + "operationId": "sub-issues/sub-issue-added", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sub-issues-sub-issue-added" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sub-issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "sub-issues-sub-issue-removed": { + "post": { + "summary": "This event occurs when there is activity relating to sub-issues.\n\nFor activity relating to issues more generally, use the `issues` event instead.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Issues\" repository permissions.", + "description": "A sub-issue was removed from an issue.", + "operationId": "sub-issues/sub-issue-removed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#sub-issues" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sub-issues-sub-issue-removed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "sub-issues", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "team-add": { + "post": { + "summary": "This event occurs when a team is added to a repository.\nFor more information, see \"[Managing teams and people with access to your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository).\"\n\nFor activity relating to teams, see the `teams` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "operationId": "team-add", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#team_add" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-team-add" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "team_add", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "team-added-to-repository": { + "post": { + "summary": "This event occurs when there is activity relating to teams in an organization.\nFor more information, see \"[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A team was granted access to a repository.", + "operationId": "team/added-to-repository", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#team" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-team-added-to-repository" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "team", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "team-created": { + "post": { + "summary": "This event occurs when there is activity relating to teams in an organization.\nFor more information, see \"[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A team was created.", + "operationId": "team/created", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#team" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-team-created" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "team", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "team-deleted": { + "post": { + "summary": "This event occurs when there is activity relating to teams in an organization.\nFor more information, see \"[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A team was deleted.", + "operationId": "team/deleted", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#team" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-team-deleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "team", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "team-edited": { + "post": { + "summary": "This event occurs when there is activity relating to teams in an organization.\nFor more information, see \"[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "The name, description, or visibility of a team was changed.", + "operationId": "team/edited", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#team" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-team-edited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "team", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "team-removed-from-repository": { + "post": { + "summary": "This event occurs when there is activity relating to teams in an organization.\nFor more information, see \"[About teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams).\"\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Members\" organization permission.", + "description": "A team's access to a repository was removed.", + "operationId": "team/removed-from-repository", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#team" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-team-removed-from-repository" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "team", + "supported-webhook-types": [ + "organization", + "business", + "app" + ] + } + } + }, + "watch-started": { + "post": { + "summary": "This event occurs when there is activity relating to watching, or subscribing to, a repository. For more information about watching, see \"[Managing your subscriptions](https://docs.github.com/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/managing-your-subscriptions).\" For information about the APIs to manage watching, see \"[Watching](https://docs.github.com/rest/activity/watching)\" in the REST API documentation.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Metadata\" repository permission.", + "description": "Someone started watching the repository.", + "operationId": "watch/started", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#watch" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-watch-started" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "watch", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "workflow-dispatch": { + "post": { + "summary": "This event occurs when a GitHub Actions workflow is manually triggered. For more information, see \"[Manually running a workflow](https://docs.github.com/actions/managing-workflow-runs/manually-running-a-workflow).\"\n\nFor activity relating to workflow runs, use the `workflow_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Contents\" repository permission.", + "operationId": "workflow-dispatch", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_dispatch" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-dispatch" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_dispatch", + "supported-webhook-types": [ + "app" + ] + } + } + }, + "workflow-job-completed": { + "post": { + "summary": "This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see \"[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow).\" For information about the API to manage workflow jobs, see \"[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)\" in the REST API documentation.\n\nFor activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Actions\" repository permission.", + "description": "A job in a workflow run finished. This event occurs when a job in a workflow is completed, regardless of whether the job was successful or unsuccessful.", + "operationId": "workflow-job/completed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-job-completed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_job", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "workflow-job-in-progress": { + "post": { + "summary": "This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see \"[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow).\" For information about the API to manage workflow jobs, see \"[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)\" in the REST API documentation.\n\nFor activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Actions\" repository permission.", + "description": "A job in a workflow run started processing on a runner.", + "operationId": "workflow-job/in-progress", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-job-in-progress" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_job", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "workflow-job-queued": { + "post": { + "summary": "This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see \"[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow).\" For information about the API to manage workflow jobs, see \"[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)\" in the REST API documentation.\n\nFor activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Actions\" repository permission.", + "description": "A job in a workflow run was created.", + "operationId": "workflow-job/queued", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-job-queued" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_job", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "workflow-job-waiting": { + "post": { + "summary": "This event occurs when there is activity relating to a job in a GitHub Actions workflow. For more information, see \"[Using jobs in a workflow](https://docs.github.com/actions/using-jobs/using-jobs-in-a-workflow).\" For information about the API to manage workflow jobs, see \"[Workflow jobs](https://docs.github.com/rest/actions/workflow-jobs)\" in the REST API documentation.\n\nFor activity relating to a workflow run instead of a job in a workflow run, use the `workflow_run` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Actions\" repository permission.", + "description": "A job in a workflow run was created and is waiting for approvals.", + "operationId": "workflow-job/waiting", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_job" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-job-waiting" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_job", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "workflow-run-completed": { + "post": { + "summary": "This event occurs when there is activity relating to a run of a GitHub Actions workflow. For more information, see \"[About workflows](https://docs.github.com/actions/using-workflows/about-workflows).\" For information about the APIs to manage workflow runs, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#workflowrun) or \"[Workflow runs](https://docs.github.com/rest/actions/workflow-runs)\" in the REST API documentation.\n\nFor activity relating to a job in a workflow run, use the `workflow_job` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Actions\" repository permission.", + "description": "A workflow run finished. This event occurs when a workflow run is completed, regardless of whether the workflow was successful or unsuccessful.", + "operationId": "workflow-run/completed", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_run" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-run-completed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_run", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "workflow-run-in-progress": { + "post": { + "summary": "This event occurs when there is activity relating to a run of a GitHub Actions workflow. For more information, see \"[About workflows](https://docs.github.com/actions/using-workflows/about-workflows).\" For information about the APIs to manage workflow runs, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#workflowrun) or \"[Workflow runs](https://docs.github.com/rest/actions/workflow-runs)\" in the REST API documentation.\n\nFor activity relating to a job in a workflow run, use the `workflow_job` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Actions\" repository permission.", + "description": "A workflow run started processing on a runner.", + "operationId": "workflow-run/in-progress", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_run" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-run-in-progress" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_run", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + }, + "workflow-run-requested": { + "post": { + "summary": "This event occurs when there is activity relating to a run of a GitHub Actions workflow. For more information, see \"[About workflows](https://docs.github.com/actions/using-workflows/about-workflows).\" For information about the APIs to manage workflow runs, see [the GraphQL documentation](https://docs.github.com/graphql/reference/objects#workflowrun) or \"[Workflow runs](https://docs.github.com/rest/actions/workflow-runs)\" in the REST API documentation.\n\nFor activity relating to a job in a workflow run, use the `workflow_job` event.\n\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Actions\" repository permission.", + "description": "A workflow run was triggered.", + "operationId": "workflow-run/requested", + "externalDocs": { + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#workflow_run" + }, + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Event", + "in": "header", + "example": "issues", + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } + }, + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } + }, + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } + }, + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-workflow-run-requested" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "githubCloudOnly": false, + "category": "webhooks", + "subcategory": "workflow_run", + "supported-webhook-types": [ + "business", + "repository", + "organization", + "app" + ] + } + } + } + }, + "components": { + "schemas": { + "root": { + "type": "object", + "properties": { + "current_user_url": { + "type": "string", + "format": "uri-template" + }, + "current_user_authorizations_html_url": { + "type": "string", + "format": "uri-template" + }, + "authorizations_url": { + "type": "string", + "format": "uri-template" + }, + "code_search_url": { + "type": "string", + "format": "uri-template" + }, + "commit_search_url": { + "type": "string", + "format": "uri-template" + }, + "emails_url": { + "type": "string", + "format": "uri-template" + }, + "emojis_url": { + "type": "string", + "format": "uri-template" + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "feeds_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri-template" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "hub_url": { + "type": "string", + "format": "uri-template", + "deprecated": true + }, + "issue_search_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "label_search_url": { + "type": "string", + "format": "uri-template" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "organization_url": { + "type": "string", + "format": "uri-template" + }, + "organization_repositories_url": { + "type": "string", + "format": "uri-template" + }, + "organization_teams_url": { + "type": "string", + "format": "uri-template" + }, + "public_gists_url": { + "type": "string", + "format": "uri-template" + }, + "rate_limit_url": { + "type": "string", + "format": "uri-template" + }, + "repository_url": { + "type": "string", + "format": "uri-template" + }, + "repository_search_url": { + "type": "string", + "format": "uri-template" + }, + "current_user_repositories_url": { + "type": "string", + "format": "uri-template" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "starred_gists_url": { + "type": "string", + "format": "uri-template" + }, + "topic_search_url": { + "type": "string", + "format": "uri-template" + }, + "user_url": { + "type": "string", + "format": "uri-template" + }, + "user_organizations_url": { + "type": "string", + "format": "uri-template" + }, + "user_repositories_url": { + "type": "string", + "format": "uri-template" + }, + "user_search_url": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "current_user_url", + "current_user_authorizations_html_url", + "authorizations_url", + "code_search_url", + "commit_search_url", + "emails_url", + "emojis_url", + "events_url", + "feeds_url", + "followers_url", + "following_url", + "gists_url", + "issue_search_url", + "issues_url", + "keys_url", + "label_search_url", + "notifications_url", + "organization_url", + "organization_repositories_url", + "organization_teams_url", + "public_gists_url", + "rate_limit_url", + "repository_url", + "repository_search_url", + "current_user_repositories_url", + "starred_url", + "starred_gists_url", + "user_url", + "user_organizations_url", + "user_repositories_url", + "user_search_url" + ] + }, + "security-advisory-ecosystems": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "enum": [ + "rubygems", + "npm", + "pip", + "maven", + "nuget", + "composer", + "go", + "rust", + "erlang", + "actions", + "pub", + "other", + "swift" + ] + }, + "vulnerability": { + "description": "A vulnerability describing the product and its affected versions within a GitHub Security Advisory.", + "type": "object", + "properties": { + "package": { + "description": "The name of the package affected by the vulnerability.", + "type": "object", + "nullable": true, + "properties": { + "ecosystem": { + "$ref": "#/components/schemas/security-advisory-ecosystems" + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "nullable": true + } + }, + "required": [ + "ecosystem", + "name" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "The range of the package versions affected by the vulnerability.", + "nullable": true + }, + "first_patched_version": { + "type": "string", + "description": "The package version that resolves the vulnerability.", + "nullable": true + }, + "vulnerable_functions": { + "type": "array", + "description": "The functions in the package that are affected by the vulnerability.", + "nullable": true, + "readOnly": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "package", + "vulnerable_version_range", + "first_patched_version", + "vulnerable_functions" + ] + }, + "cvss-severities": { + "type": "object", + "nullable": true, + "properties": { + "cvss_v3": { + "type": "object", + "nullable": true, + "properties": { + "vector_string": { + "type": "string", + "description": "The CVSS 3 vector string.", + "nullable": true + }, + "score": { + "type": "number", + "description": "The CVSS 3 score.", + "minimum": 0, + "maximum": 10, + "nullable": true, + "readOnly": true + } + }, + "required": [ + "vector_string", + "score" + ] + }, + "cvss_v4": { + "type": "object", + "nullable": true, + "properties": { + "vector_string": { + "type": "string", + "description": "The CVSS 4 vector string.", + "nullable": true + }, + "score": { + "type": "number", + "description": "The CVSS 4 score.", + "minimum": 0, + "maximum": 10, + "nullable": true, + "readOnly": true + } + }, + "required": [ + "vector_string", + "score" + ] + } + } + }, + "security-advisory-epss": { + "type": "object", + "nullable": true, + "readOnly": true, + "description": "The EPSS scores as calculated by the [Exploit Prediction Scoring System](https://www.first.org/epss).", + "properties": { + "percentage": { + "type": "number", + "minimum": 0, + "maximum": 100 + }, + "percentile": { + "type": "number", + "minimum": 0, + "maximum": 100 + } + } + }, + "simple-user": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + }, + "user_view_type": { + "type": "string", + "example": "public" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "security-advisory-credit-types": { + "type": "string", + "description": "The type of credit the user is receiving.", + "enum": [ + "analyst", + "finder", + "reporter", + "coordinator", + "remediation_developer", + "remediation_reviewer", + "remediation_verifier", + "tool", + "sponsor", + "other" + ] + }, + "global-advisory": { + "description": "A GitHub Security Advisory.", + "type": "object", + "properties": { + "ghsa_id": { + "type": "string", + "description": "The GitHub Security Advisory ID.", + "readOnly": true + }, + "cve_id": { + "type": "string", + "description": "The Common Vulnerabilities and Exposures (CVE) ID.", + "nullable": true, + "readOnly": true + }, + "url": { + "type": "string", + "description": "The API URL for the advisory.", + "readOnly": true + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL for the advisory.", + "readOnly": true + }, + "repository_advisory_url": { + "type": "string", + "format": "uri", + "description": "The API URL for the repository advisory.", + "readOnly": true, + "nullable": true + }, + "summary": { + "type": "string", + "description": "A short summary of the advisory.", + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A detailed description of what the advisory entails.", + "maxLength": 65535, + "nullable": true + }, + "type": { + "type": "string", + "description": "The type of advisory.", + "readOnly": true, + "enum": [ + "reviewed", + "unreviewed", + "malware" + ] + }, + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "enum": [ + "critical", + "high", + "medium", + "low", + "unknown" + ] + }, + "source_code_location": { + "type": "string", + "format": "uri", + "description": "The URL of the advisory's source code.", + "nullable": true + }, + "identifiers": { + "type": "array", + "nullable": true, + "readOnly": true, + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of identifier.", + "enum": [ + "CVE", + "GHSA" + ] + }, + "value": { + "type": "string", + "description": "The identifier value." + } + }, + "required": [ + "type", + "value" + ] + } + }, + "references": { + "type": "array", + "nullable": true, + "items": { + "type": "string", + "description": "URLs with more information regarding the advisory." + } + }, + "published_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was published, in ISO 8601 format.", + "readOnly": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was last updated, in ISO 8601 format.", + "readOnly": true + }, + "github_reviewed_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was reviewed by GitHub, in ISO 8601 format.", + "readOnly": true, + "nullable": true + }, + "nvd_published_at": { + "type": "string", + "format": "date-time", + "description": "The date and time when the advisory was published in the National Vulnerability Database, in ISO 8601 format.\nThis field is only populated when the advisory is imported from the National Vulnerability Database.", + "readOnly": true, + "nullable": true + }, + "withdrawn_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was withdrawn, in ISO 8601 format.", + "readOnly": true, + "nullable": true + }, + "vulnerabilities": { + "type": "array", + "description": "The products and respective version ranges affected by the advisory.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/vulnerability" + } + }, + "cvss": { + "type": "object", + "nullable": true, + "properties": { + "vector_string": { + "type": "string", + "description": "The CVSS vector.", + "nullable": true + }, + "score": { + "type": "number", + "description": "The CVSS score.", + "minimum": 0, + "maximum": 10, + "nullable": true, + "readOnly": true + } + }, + "required": [ + "vector_string", + "score" + ] + }, + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" + }, + "epss": { + "$ref": "#/components/schemas/security-advisory-epss" + }, + "cwes": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "cwe_id": { + "type": "string", + "description": "The Common Weakness Enumeration (CWE) identifier." + }, + "name": { + "type": "string", + "description": "The name of the CWE.", + "readOnly": true + } + }, + "required": [ + "cwe_id", + "name" + ] + } + }, + "credits": { + "type": "array", + "description": "The users who contributed to the advisory.", + "nullable": true, + "readOnly": true, + "items": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/simple-user" + }, + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" + } + }, + "required": [ + "user", + "type" + ] + } + } + }, + "required": [ + "ghsa_id", + "cve_id", + "url", + "html_url", + "repository_advisory_url", + "summary", + "description", + "type", + "severity", + "source_code_location", + "identifiers", + "references", + "published_at", + "updated_at", + "github_reviewed_at", + "nvd_published_at", + "withdrawn_at", + "vulnerabilities", + "cvss", + "cwes", + "credits" + ], + "additionalProperties": false + }, + "basic-error": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + }, + "validation-error-simple": { + "title": "Validation Error Simple", + "description": "Validation Error Simple", + "type": "object", + "required": [ + "message", + "documentation_url" + ], + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "enterprise": { + "title": "Enterprise", + "description": "An enterprise on GitHub.", + "type": "object", + "properties": { + "description": { + "description": "A short description of the enterprise.", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/enterprises/octo-business" + }, + "website_url": { + "description": "The enterprise's website URL.", + "type": "string", + "nullable": true, + "format": "uri" + }, + "id": { + "description": "Unique identifier of the enterprise", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the enterprise.", + "type": "string", + "example": "Octo Business" + }, + "slug": { + "description": "The slug url identifier for the enterprise.", + "type": "string", + "example": "octo-business" + }, + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:14:43Z" + }, + "avatar_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "name", + "slug", + "html_url", + "created_at", + "updated_at", + "avatar_url" + ] + }, + "integration": { + "title": "GitHub app", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "id": { + "description": "Unique identifier of the GitHub app", + "example": 37, + "type": "integer" + }, + "slug": { + "description": "The slug name of the GitHub app", + "example": "probot-owners", + "type": "string" + }, + "node_id": { + "type": "string", + "example": "MDExOkludGVncmF0aW9uMQ==" + }, + "client_id": { + "type": "string", + "example": "\"Iv1.25b5d1e65ffc4022\"" + }, + "owner": { + "oneOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/enterprise" + } + ] + }, + "name": { + "description": "The name of the GitHub app", + "example": "Probot Owners", + "type": "string" + }, + "description": { + "type": "string", + "example": "The description of the app.", + "nullable": true + }, + "external_url": { + "type": "string", + "format": "uri", + "example": "https://example.com" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/apps/super-ci" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "issues": { + "type": "string" + }, + "checks": { + "type": "string" + }, + "metadata": { + "type": "string" + }, + "contents": { + "type": "string" + }, + "deployments": { + "type": "string" + } + }, + "additionalProperties": { + "type": "string" + }, + "example": { + "issues": "read", + "deployments": "write" + } + }, + "events": { + "description": "The list of events for the GitHub app. Note that the `installation_target`, `security_advisory`, and `meta` events are not included because they are global events and not specific to an installation.", + "example": [ + "label", + "deployment" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "installations_count": { + "description": "The number of installations associated with the GitHub app. Only returned when the integration is requesting details about itself.", + "example": 5, + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at", + "permissions", + "events" + ] + }, + "webhook-config-url": { + "type": "string", + "description": "The URL to which the payloads will be delivered.", + "example": "https://example.com/webhook", + "format": "uri" + }, + "webhook-config-content-type": { + "type": "string", + "description": "The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`.", + "example": "\"json\"" + }, + "webhook-config-secret": { + "type": "string", + "description": "If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers).", + "example": "\"********\"" + }, + "webhook-config-insecure-ssl": { + "oneOf": [ + { + "type": "string", + "description": "Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.**", + "example": "\"0\"" + }, + { + "type": "number" + } + ] + }, + "webhook-config": { + "title": "Webhook Configuration", + "description": "Configuration object of the webhook", + "type": "object", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + } + }, + "hook-delivery-item": { + "title": "Simple webhook delivery", + "description": "Delivery made by a webhook, without request and response information.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the webhook delivery.", + "type": "integer", + "format": "int64", + "example": 42 + }, + "guid": { + "description": "Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event).", + "type": "string", + "example": "58474f00-b361-11eb-836d-0e4f3503ccbe" + }, + "delivered_at": { + "description": "Time when the webhook delivery occurred.", + "type": "string", + "format": "date-time", + "example": "2021-05-12T20:33:44Z" + }, + "redelivery": { + "description": "Whether the webhook delivery is a redelivery.", + "type": "boolean", + "example": false + }, + "duration": { + "description": "Time spent delivering.", + "type": "number", + "example": 0.03 + }, + "status": { + "description": "Describes the response returned after attempting the delivery.", + "type": "string", + "example": "failed to connect" + }, + "status_code": { + "description": "Status code received when delivery was made.", + "type": "integer", + "example": 502 + }, + "event": { + "description": "The event that triggered the delivery.", + "type": "string", + "example": "issues" + }, + "action": { + "description": "The type of activity for the event that triggered the delivery.", + "type": "string", + "example": "opened", + "nullable": true + }, + "installation_id": { + "description": "The id of the GitHub App installation associated with this event.", + "type": "integer", + "format": "int64", + "example": 123, + "nullable": true + }, + "repository_id": { + "description": "The id of the repository associated with this event.", + "type": "integer", + "format": "int64", + "example": 123, + "nullable": true + }, + "throttled_at": { + "description": "Time when the webhook delivery was throttled.", + "type": "string", + "format": "date-time", + "example": "2021-05-12T20:33:44Z", + "nullable": true + } + }, + "required": [ + "id", + "guid", + "delivered_at", + "redelivery", + "duration", + "status", + "status_code", + "event", + "action", + "installation_id", + "repository_id" + ] + }, + "scim-error": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": "string", + "nullable": true + }, + "documentation_url": { + "type": "string", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": "string", + "nullable": true + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "validation-error": { + "title": "Validation Error", + "description": "Validation Error", + "type": "object", + "required": [ + "message", + "documentation_url" + ], + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "resource": { + "type": "string" + }, + "field": { + "type": "string" + }, + "message": { + "type": "string" + }, + "code": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "value": { + "oneOf": [ + { + "type": "string", + "nullable": true + }, + { + "type": "integer", + "nullable": true + }, + { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + ] + } + } + } + } + } + }, + "hook-delivery": { + "title": "Webhook delivery", + "description": "Delivery made by a webhook.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the delivery.", + "type": "integer", + "example": 42 + }, + "guid": { + "description": "Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event).", + "type": "string", + "example": "58474f00-b361-11eb-836d-0e4f3503ccbe" + }, + "delivered_at": { + "description": "Time when the delivery was delivered.", + "type": "string", + "format": "date-time", + "example": "2021-05-12T20:33:44Z" + }, + "redelivery": { + "description": "Whether the delivery is a redelivery.", + "type": "boolean", + "example": false + }, + "duration": { + "description": "Time spent delivering.", + "type": "number", + "example": 0.03 + }, + "status": { + "description": "Description of the status of the attempted delivery", + "type": "string", + "example": "failed to connect" + }, + "status_code": { + "description": "Status code received when delivery was made.", + "type": "integer", + "example": 502 + }, + "event": { + "description": "The event that triggered the delivery.", + "type": "string", + "example": "issues" + }, + "action": { + "description": "The type of activity for the event that triggered the delivery.", + "type": "string", + "example": "opened", + "nullable": true + }, + "installation_id": { + "description": "The id of the GitHub App installation associated with this event.", + "type": "integer", + "example": 123, + "nullable": true + }, + "repository_id": { + "description": "The id of the repository associated with this event.", + "type": "integer", + "example": 123, + "nullable": true + }, + "throttled_at": { + "description": "Time when the webhook delivery was throttled.", + "type": "string", + "format": "date-time", + "example": "2021-05-12T20:33:44Z", + "nullable": true + }, + "url": { + "description": "The URL target of the delivery.", + "type": "string", + "example": "https://www.example.com" + }, + "request": { + "type": "object", + "properties": { + "headers": { + "description": "The request headers sent with the webhook delivery.", + "type": "object", + "nullable": true, + "additionalProperties": true + }, + "payload": { + "description": "The webhook payload.", + "type": "object", + "nullable": true, + "additionalProperties": true + } + }, + "required": [ + "headers", + "payload" + ] + }, + "response": { + "type": "object", + "properties": { + "headers": { + "description": "The response headers received when the delivery was made.", + "type": "object", + "nullable": true, + "additionalProperties": true + }, + "payload": { + "description": "The response payload received.", + "type": "string", + "nullable": true, + "additionalProperties": true + } + }, + "required": [ + "headers", + "payload" + ] + } + }, + "required": [ + "id", + "guid", + "delivered_at", + "redelivery", + "duration", + "status", + "status_code", + "event", + "action", + "installation_id", + "repository_id", + "request", + "response" + ] + }, + "integration-installation-request": { + "title": "Integration Installation Request", + "description": "Request to install an integration on a target", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the request installation.", + "type": "integer", + "example": 42 + }, + "node_id": { + "type": "string", + "example": "MDExOkludGVncmF0aW9uMQ==" + }, + "account": { + "anyOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/enterprise" + } + ] + }, + "requester": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-07-08T16:18:44-04:00" + } + }, + "required": [ + "id", + "account", + "requester", + "created_at" + ] + }, + "app-permissions": { + "title": "App Permissions", + "type": "object", + "description": "The permissions granted to the user access token.", + "properties": { + "actions": { + "type": "string", + "description": "The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts.", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "description": "The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation.", + "enum": [ + "read", + "write" + ] + }, + "artifact_metadata": { + "type": "string", + "description": "The level of permission to grant the access token to create and retrieve build artifact metadata records.", + "enum": [ + "read", + "write" + ] + }, + "attestations": { + "type": "string", + "description": "The level of permission to create and retrieve the access token for repository attestations.", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "description": "The level of permission to grant the access token for checks on code.", + "enum": [ + "read", + "write" + ] + }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", + "enum": [ + "read", + "write" + ] + }, + "dependabot_secrets": { + "type": "string", + "description": "The level of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "description": "The level of permission to grant the access token for deployments and deployment statuses.", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "description": "The level of permission to grant the access token for discussions and related comments and labels.", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "description": "The level of permission to grant the access token for managing repository environments.", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "description": "The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones.", + "enum": [ + "read", + "write" + ] + }, + "merge_queues": { + "type": "string", + "description": "The level of permission to grant the access token to manage the merge queues for a repository.", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "description": "The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata.", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "description": "The level of permission to grant the access token for packages published to GitHub Packages.", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "description": "The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds.", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "description": "The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges.", + "enum": [ + "read", + "write" + ] + }, + "repository_custom_properties": { + "type": "string", + "description": "The level of permission to grant the access token to view and edit custom properties for a repository, when allowed by the property.", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "description": "The level of permission to grant the access token to manage the post-receive hooks for a repository.", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "description": "The level of permission to grant the access token to manage repository projects, columns, and cards.", + "enum": [ + "read", + "write", + "admin" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage secret scanning alerts.", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "description": "The level of permission to grant the access token to manage repository secrets.", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage security events like code scanning alerts.", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "description": "The level of permission to grant the access token to manage just a single file.", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "description": "The level of permission to grant the access token for commit statuses.", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "description": "The level of permission to grant the access token to manage Dependabot alerts.", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "description": "The level of permission to grant the access token to update GitHub Actions workflow files.", + "enum": [ + "write" + ] + }, + "custom_properties_for_organizations": { + "type": "string", + "description": "The level of permission to grant the access token to view and edit custom properties for an organization, when allowed by the property.", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "description": "The level of permission to grant the access token for organization teams and members.", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "description": "The level of permission to grant the access token to manage access to an organization.", + "enum": [ + "read", + "write" + ] + }, + "organization_custom_roles": { + "type": "string", + "description": "The level of permission to grant the access token for custom repository roles management.", + "enum": [ + "read", + "write" + ] + }, + "organization_custom_org_roles": { + "type": "string", + "description": "The level of permission to grant the access token for custom organization roles management.", + "enum": [ + "read", + "write" + ] + }, + "organization_custom_properties": { + "type": "string", + "description": "The level of permission to grant the access token for repository custom properties management at the organization level.", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_copilot_seat_management": { + "type": "string", + "description": "The level of permission to grant the access token for managing access to GitHub Copilot for members of an organization with a Copilot Business subscription. This property is in public preview and is subject to change.", + "enum": [ + "write" + ] + }, + "organization_announcement_banners": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage announcement banners for an organization.", + "enum": [ + "read", + "write" + ] + }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, + "organization_hooks": { + "type": "string", + "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", + "enum": [ + "read", + "write" + ] + }, + "organization_personal_access_tokens": { + "type": "string", + "description": "The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization.", + "enum": [ + "read", + "write" + ] + }, + "organization_personal_access_token_requests": { + "type": "string", + "description": "The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization.", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "description": "The level of permission to grant the access token for viewing an organization's plan.", + "enum": [ + "read" + ] + }, + "organization_projects": { + "type": "string", + "description": "The level of permission to grant the access token to manage organization projects and projects public preview (where available).", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_packages": { + "type": "string", + "description": "The level of permission to grant the access token for organization packages published to GitHub Packages.", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "description": "The level of permission to grant the access token to manage organization secrets.", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization.", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage users blocked by the organization.", + "enum": [ + "read", + "write" + ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] + }, + "enterprise_custom_properties_for_organizations": { + "type": "string", + "description": "The level of permission to grant the access token for organization custom properties management at the enterprise level.", + "enum": [ + "read", + "write", + "admin" + ] + } + }, + "example": { + "contents": "read", + "issues": "read", + "deployments": "write", + "single_file": "read" + } + }, + "nullable-simple-user": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + }, + "user_view_type": { + "type": "string", + "example": "public" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ], + "nullable": true + }, + "installation": { + "title": "Installation", + "description": "Installation", + "type": "object", + "properties": { + "id": { + "description": "The ID of the installation.", + "type": "integer", + "example": 1 + }, + "account": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/enterprise" + } + ] + }, + "repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": [ + "all", + "selected" + ] + }, + "access_tokens_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/app/installations/1/access_tokens" + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/installation/repositories" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/organizations/github/settings/installations/1" + }, + "app_id": { + "type": "integer", + "example": 1 + }, + "client_id": { + "type": "string", + "example": "Iv1.ab1112223334445c" + }, + "target_id": { + "description": "The ID of the user or organization this token is being scoped to.", + "type": "integer" + }, + "target_type": { + "type": "string", + "example": "Organization" + }, + "permissions": { + "$ref": "#/components/schemas/app-permissions" + }, + "events": { + "type": "array", + "items": { + "type": "string" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "single_file_name": { + "type": "string", + "example": "config.yaml", + "nullable": true + }, + "has_multiple_single_files": { + "type": "boolean", + "example": true + }, + "single_file_paths": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "config.yml", + ".github/issue_TEMPLATE.md" + ] + }, + "app_slug": { + "type": "string", + "example": "github-actions" + }, + "suspended_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "suspended_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "contact_email": { + "type": "string", + "example": "\"test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com\"", + "nullable": true + } + }, + "required": [ + "id", + "app_id", + "app_slug", + "target_id", + "target_type", + "single_file_name", + "repository_selection", + "access_tokens_url", + "html_url", + "repositories_url", + "events", + "account", + "permissions", + "created_at", + "updated_at", + "suspended_by", + "suspended_at" + ] + }, + "nullable-license-simple": { + "title": "License Simple", + "description": "License Simple", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "mit" + }, + "name": { + "type": "string", + "example": "MIT License" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://api.github.com/licenses/mit" + }, + "spdx_id": { + "type": "string", + "nullable": true, + "example": "MIT" + }, + "node_id": { + "type": "string", + "example": "MDc6TGljZW5zZW1pdA==" + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "key", + "name", + "url", + "spdx_id", + "node_id" + ], + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "A repository on GitHub.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true, + "deprecated": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "default": false, + "type": "boolean", + "example": true + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_update_branch": { + "description": "Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.", + "default": false, + "type": "boolean", + "example": false + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "default": false, + "deprecated": true + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + }, + "anonymous_access_enabled": { + "type": "boolean", + "description": "Whether anonymous git access is enabled for this repository" + }, + "code_search_index_status": { + "type": "object", + "description": "The status of the code search index for this repository", + "properties": { + "lexical_search_ok": { + "type": "boolean" + }, + "lexical_commit_sha": { + "type": "string" + } + } + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + }, + "installation-token": { + "title": "Installation Token", + "description": "Authentication token for a GitHub App installed on a user or org.", + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "expires_at": { + "type": "string" + }, + "permissions": { + "$ref": "#/components/schemas/app-permissions" + }, + "repository_selection": { + "type": "string", + "enum": [ + "all", + "selected" + ] + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository" + } + }, + "single_file": { + "type": "string", + "example": "README.md" + }, + "has_multiple_single_files": { + "type": "boolean", + "example": true + }, + "single_file_paths": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "config.yml", + ".github/issue_TEMPLATE.md" + ] + } + }, + "required": [ + "token", + "expires_at" + ] + }, + "nullable-scoped-installation": { + "title": "Scoped Installation", + "type": "object", + "properties": { + "permissions": { + "$ref": "#/components/schemas/app-permissions" + }, + "repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": [ + "all", + "selected" + ] + }, + "single_file_name": { + "type": "string", + "example": "config.yaml", + "nullable": true + }, + "has_multiple_single_files": { + "type": "boolean", + "example": true + }, + "single_file_paths": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "config.yml", + ".github/issue_TEMPLATE.md" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "account": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "permissions", + "repository_selection", + "single_file_name", + "repositories_url", + "account" + ], + "nullable": true + }, + "authorization": { + "title": "Authorization", + "description": "The authorization for an OAuth app, GitHub App, or a Personal Access Token.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string", + "format": "uri" + }, + "scopes": { + "description": "A list of scopes that this authorization is in.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "token": { + "type": "string" + }, + "token_last_eight": { + "type": "string", + "nullable": true + }, + "hashed_token": { + "type": "string", + "nullable": true + }, + "app": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "client_id", + "name", + "url" + ] + }, + "note": { + "type": "string", + "nullable": true + }, + "note_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "installation": { + "$ref": "#/components/schemas/nullable-scoped-installation" + }, + "expires_at": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "app", + "id", + "note", + "note_url", + "scopes", + "token", + "hashed_token", + "token_last_eight", + "fingerprint", + "url", + "created_at", + "updated_at", + "expires_at" + ] + }, + "simple-classroom-repository": { + "title": "Simple Classroom Repository", + "description": "A GitHub repository view for Classroom", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269, + "description": "A unique identifier of the repository." + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World", + "description": "The full, globally unique name of the repository." + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World", + "description": "The URL to view the repository on GitHub.com." + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "description": "The GraphQL identifier of the repository." + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "default_branch": { + "type": "string", + "example": "main", + "description": "The default branch for the repository." + } + }, + "required": [ + "id", + "full_name", + "html_url", + "node_id", + "private", + "default_branch" + ] + }, + "simple-classroom-organization": { + "title": "Organization Simple for Classroom", + "description": "A GitHub organization.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1 + }, + "login": { + "type": "string", + "example": "github" + }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/github" + }, + "name": { + "type": "string", + "example": "Github - Code thigns happen here", + "nullable": true + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + } + }, + "required": [ + "id", + "login", + "node_id", + "html_url", + "name", + "avatar_url" + ] + }, + "classroom": { + "title": "Classroom", + "description": "A GitHub Classroom classroom", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the classroom.", + "example": 42, + "type": "integer" + }, + "name": { + "description": "The name of the classroom.", + "type": "string", + "example": "Programming Elixir" + }, + "archived": { + "description": "Whether classroom is archived.", + "type": "boolean", + "example": false + }, + "organization": { + "$ref": "#/components/schemas/simple-classroom-organization" + }, + "url": { + "description": "The URL of the classroom on GitHub Classroom.", + "type": "string", + "example": "https://classroom.github.com/classrooms/1-programming-elixir" + } + }, + "required": [ + "id", + "name", + "archived", + "organization", + "url" + ] + }, + "classroom-assignment": { + "title": "Classroom Assignment", + "description": "A GitHub Classroom assignment", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository.", + "type": "integer", + "example": 42 + }, + "public_repo": { + "description": "Whether an accepted assignment creates a public repository.", + "type": "boolean", + "example": true + }, + "title": { + "description": "Assignment title.", + "type": "string", + "example": "Intro to Binaries" + }, + "type": { + "description": "Whether it's a group assignment or individual assignment.", + "type": "string", + "example": "individual", + "enum": [ + "individual", + "group" + ] + }, + "invite_link": { + "description": "The link that a student can use to accept the assignment.", + "type": "string", + "example": "https://classroom.github.com/a/Lx7jiUgx" + }, + "invitations_enabled": { + "description": "Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment.", + "type": "boolean", + "example": true + }, + "slug": { + "description": "Sluggified name of the assignment.", + "type": "string", + "example": "intro-to-binaries" + }, + "students_are_repo_admins": { + "description": "Whether students are admins on created repository when a student accepts the assignment.", + "type": "boolean", + "example": true + }, + "feedback_pull_requests_enabled": { + "description": "Whether feedback pull request will be created when a student accepts the assignment.", + "type": "boolean", + "example": true + }, + "max_teams": { + "description": "The maximum allowable teams for the assignment.", + "nullable": true, + "type": "integer", + "example": 0 + }, + "max_members": { + "description": "The maximum allowable members per team.", + "nullable": true, + "type": "integer", + "example": 0 + }, + "editor": { + "description": "The selected editor for the assignment.", + "type": "string", + "example": "codespaces" + }, + "accepted": { + "description": "The number of students that have accepted the assignment.", + "type": "integer", + "example": 25 + }, + "submitted": { + "description": "The number of students that have submitted the assignment.", + "type": "integer", + "example": 10 + }, + "passing": { + "description": "The number of students that have passed the assignment.", + "type": "integer", + "example": 10 + }, + "language": { + "description": "The programming language used in the assignment.", + "type": "string", + "example": "elixir" + }, + "deadline": { + "description": "The time at which the assignment is due.", + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "starter_code_repository": { + "$ref": "#/components/schemas/simple-classroom-repository" + }, + "classroom": { + "$ref": "#/components/schemas/classroom" + } + }, + "required": [ + "id", + "public_repo", + "title", + "type", + "invite_link", + "invitations_enabled", + "slug", + "students_are_repo_admins", + "feedback_pull_requests_enabled", + "max_teams", + "max_members", + "editor", + "accepted", + "submitted", + "passing", + "language", + "deadline", + "starter_code_repository", + "classroom" + ] + }, + "simple-classroom-user": { + "title": "Simple Classroom User", + "description": "A GitHub user simplified for Classroom.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1 + }, + "login": { + "type": "string", + "example": "octocat" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + } + }, + "required": [ + "id", + "login", + "avatar_url", + "html_url" + ] + }, + "simple-classroom": { + "title": "Simple Classroom", + "description": "A GitHub Classroom classroom", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the classroom.", + "example": 42, + "type": "integer" + }, + "name": { + "description": "The name of the classroom.", + "type": "string", + "example": "Programming Elixir" + }, + "archived": { + "description": "Returns whether classroom is archived or not.", + "type": "boolean", + "example": false + }, + "url": { + "description": "The url of the classroom on GitHub Classroom.", + "type": "string", + "example": "https://classroom.github.com/classrooms/1-programming-elixir" + } + }, + "required": [ + "id", + "name", + "archived", + "url" + ] + }, + "simple-classroom-assignment": { + "title": "Simple Classroom Assignment", + "description": "A GitHub Classroom assignment", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository.", + "type": "integer", + "example": 42 + }, + "public_repo": { + "description": "Whether an accepted assignment creates a public repository.", + "type": "boolean", + "example": true + }, + "title": { + "description": "Assignment title.", + "type": "string", + "example": "Intro to Binaries" + }, + "type": { + "description": "Whether it's a Group Assignment or Individual Assignment.", + "type": "string", + "example": "individual", + "enum": [ + "individual", + "group" + ] + }, + "invite_link": { + "description": "The link that a student can use to accept the assignment.", + "type": "string", + "example": "https://classroom.github.com/a/Lx7jiUgx" + }, + "invitations_enabled": { + "description": "Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment.", + "type": "boolean", + "example": true + }, + "slug": { + "description": "Sluggified name of the assignment.", + "type": "string", + "example": "intro-to-binaries" + }, + "students_are_repo_admins": { + "description": "Whether students are admins on created repository on accepted assignment.", + "type": "boolean", + "example": true + }, + "feedback_pull_requests_enabled": { + "description": "Whether feedback pull request will be created on assignment acceptance.", + "type": "boolean", + "example": true + }, + "max_teams": { + "description": "The maximum allowable teams for the assignment.", + "nullable": true, + "type": "integer", + "example": 0 + }, + "max_members": { + "description": "The maximum allowable members per team.", + "nullable": true, + "type": "integer", + "example": 0 + }, + "editor": { + "description": "The selected editor for the assignment.", + "type": "string", + "example": "codespaces" + }, + "accepted": { + "description": "The number of students that have accepted the assignment.", + "type": "integer", + "example": 25 + }, + "submitted": { + "description": "The number of students that have submitted the assignment.", + "type": "integer", + "example": 10 + }, + "passing": { + "description": "The number of students that have passed the assignment.", + "type": "integer", + "example": 10 + }, + "language": { + "description": "The programming language used in the assignment.", + "type": "string", + "example": "elixir" + }, + "deadline": { + "description": "The time at which the assignment is due.", + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "classroom": { + "$ref": "#/components/schemas/simple-classroom" + } + }, + "required": [ + "id", + "public_repo", + "title", + "type", + "invite_link", + "invitations_enabled", + "slug", + "students_are_repo_admins", + "feedback_pull_requests_enabled", + "editor", + "accepted", + "submitted", + "passing", + "language", + "deadline", + "classroom" + ] + }, + "classroom-accepted-assignment": { + "title": "Classroom Accepted Assignment", + "description": "A GitHub Classroom accepted assignment", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository.", + "type": "integer", + "example": 42 + }, + "submitted": { + "description": "Whether an accepted assignment has been submitted.", + "type": "boolean", + "example": true + }, + "passing": { + "description": "Whether a submission passed.", + "type": "boolean", + "example": true + }, + "commit_count": { + "description": "Count of student commits.", + "type": "integer", + "example": 5 + }, + "grade": { + "description": "Most recent grade.", + "type": "string", + "example": "10/10" + }, + "students": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-classroom-user" + } + }, + "repository": { + "$ref": "#/components/schemas/simple-classroom-repository" + }, + "assignment": { + "$ref": "#/components/schemas/simple-classroom-assignment" + } + }, + "required": [ + "id", + "submitted", + "passing", + "commit_count", + "grade", + "students", + "repository", + "assignment" + ] + }, + "classroom-assignment-grade": { + "title": "Classroom Assignment Grade", + "description": "Grade for a student or groups GitHub Classroom assignment", + "type": "object", + "properties": { + "assignment_name": { + "description": "Name of the assignment", + "type": "string" + }, + "assignment_url": { + "description": "URL of the assignment", + "type": "string" + }, + "starter_code_url": { + "description": "URL of the starter code for the assignment", + "type": "string" + }, + "github_username": { + "description": "GitHub username of the student", + "type": "string" + }, + "roster_identifier": { + "description": "Roster identifier of the student", + "type": "string" + }, + "student_repository_name": { + "description": "Name of the student's assignment repository", + "type": "string" + }, + "student_repository_url": { + "description": "URL of the student's assignment repository", + "type": "string" + }, + "submission_timestamp": { + "description": "Timestamp of the student's assignment submission", + "type": "string" + }, + "points_awarded": { + "description": "Number of points awarded to the student", + "type": "integer" + }, + "points_available": { + "description": "Number of points available for the assignment", + "type": "integer" + }, + "group_name": { + "description": "If a group assignment, name of the group the student is in", + "type": "string" + } + }, + "required": [ + "assignment_name", + "assignment_url", + "starter_code_url", + "github_username", + "roster_identifier", + "student_repository_name", + "student_repository_url", + "submission_timestamp", + "points_awarded", + "points_available" + ] + }, + "code-of-conduct": { + "title": "Code Of Conduct", + "description": "Code Of Conduct", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "contributor_covenant" + }, + "name": { + "type": "string", + "example": "Contributor Covenant" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/codes_of_conduct/contributor_covenant" + }, + "body": { + "type": "string", + "example": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/).\n" + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "url", + "html_url", + "key", + "name" + ] + }, + "actions-cache-retention-limit-for-enterprise": { + "title": "Actions cache retention limit for an enterprise", + "description": "GitHub Actions cache retention policy for an enterprise.", + "type": "object", + "properties": { + "max_cache_retention_days": { + "description": "For repositories & organizations in an enterprise, the maximum duration, in days, for which caches in a repository may be retained.", + "type": "integer", + "example": 14 + } + } + }, + "actions-cache-storage-limit-for-enterprise": { + "title": "Actions cache storage limit for an enterprise", + "description": "GitHub Actions cache storage policy for an enterprise.", + "type": "object", + "properties": { + "max_cache_size_gb": { + "description": "For repositories & organizations in an enterprise, the maximum size limit for the sum of all caches in a repository, in gigabytes.", + "type": "integer", + "example": 10 + } + } + }, + "code-security-configuration": { + "type": "object", + "description": "A code security configuration", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the code security configuration" + }, + "name": { + "type": "string", + "description": "The name of the code security configuration. Must be unique within the organization." + }, + "target_type": { + "type": "string", + "description": "The type of the code security configuration.", + "enum": [ + "global", + "organization", + "enterprise" + ] + }, + "description": { + "type": "string", + "description": "A description of the code security configuration" + }, + "advanced_security": { + "type": "string", + "description": "The enablement status of GitHub Advanced Security", + "enum": [ + "enabled", + "disabled", + "code_security", + "secret_protection" + ] + }, + "dependency_graph": { + "type": "string", + "description": "The enablement status of Dependency Graph", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph_autosubmit_action": { + "type": "string", + "description": "The enablement status of Automatic dependency submission", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependency_graph_autosubmit_action_options": { + "type": "object", + "description": "Feature options for Automatic dependency submission", + "properties": { + "labeled_runners": { + "type": "boolean", + "description": "Whether to use runners labeled with 'dependency-submission' or standard GitHub runners." + } + } + }, + "dependabot_alerts": { + "type": "string", + "description": "The enablement status of Dependabot alerts", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependabot_security_updates": { + "type": "string", + "description": "The enablement status of Dependabot security updates", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "dependabot_delegated_alert_dismissal": { + "type": "string", + "nullable": true, + "description": "The enablement status of Dependabot delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "code_scanning_options": { + "type": "object", + "description": "Feature options for code scanning", + "nullable": true, + "properties": { + "allow_advanced": { + "nullable": true, + "type": "boolean", + "description": "Whether to allow repos which use advanced setup" + } + } + }, + "code_scanning_default_setup": { + "type": "string", + "description": "The enablement status of code scanning default setup", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "code_scanning_default_setup_options": { + "type": "object", + "description": "Feature options for code scanning default setup", + "nullable": true, + "properties": { + "runner_type": { + "nullable": true, + "type": "string", + "enum": [ + "standard", + "labeled", + "not_set" + ], + "description": "Whether to use labeled runners or standard GitHub runners." + }, + "runner_label": { + "nullable": true, + "type": "string", + "description": "The label of the runner to use for code scanning when runner_type is 'labeled'." + } + } + }, + "code_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of code scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning": { + "type": "string", + "description": "The enablement status of secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_push_protection": { + "type": "string", + "description": "The enablement status of secret scanning push protection", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_delegated_bypass": { + "type": "string", + "description": "The enablement status of secret scanning delegated bypass", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_delegated_bypass_options": { + "type": "object", + "description": "Feature options for secret scanning delegated bypass", + "properties": { + "reviewers": { + "type": "array", + "description": "The bypass reviewers for secret scanning delegated bypass", + "items": { + "type": "object", + "required": [ + "reviewer_id", + "reviewer_type" + ], + "properties": { + "reviewer_id": { + "type": "integer", + "description": "The ID of the team or role selected as a bypass reviewer" + }, + "reviewer_type": { + "type": "string", + "description": "The type of the bypass reviewer", + "enum": [ + "TEAM", + "ROLE" + ] + } + } + } + } + } + }, + "secret_scanning_validity_checks": { + "type": "string", + "description": "The enablement status of secret scanning validity checks", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_non_provider_patterns": { + "type": "string", + "description": "The enablement status of secret scanning non-provider patterns", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_generic_secrets": { + "type": "string", + "description": "The enablement status of Copilot secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "secret_scanning_delegated_alert_dismissal": { + "type": "string", + "description": "The enablement status of secret scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "private_vulnerability_reporting": { + "type": "string", + "description": "The enablement status of private vulnerability reporting", + "enum": [ + "enabled", + "disabled", + "not_set" + ] + }, + "enforcement": { + "type": "string", + "description": "The enforcement status for a security configuration", + "enum": [ + "enforced", + "unenforced" + ] + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL of the configuration" + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL of the configuration" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "code-scanning-options": { + "type": "object", + "description": "Security Configuration feature options for code scanning", + "nullable": true, + "properties": { + "allow_advanced": { + "nullable": true, + "type": "boolean", + "description": "Whether to allow repos which use advanced setup" + } + } + }, + "code-scanning-default-setup-options": { + "type": "object", + "description": "Feature options for code scanning default setup", + "nullable": true, + "properties": { + "runner_type": { + "type": "string", + "enum": [ + "standard", + "labeled", + "not_set" + ], + "description": "Whether to use labeled runners or standard GitHub runners." + }, + "runner_label": { + "nullable": true, + "type": "string", + "description": "The label of the runner to use for code scanning default setup when runner_type is 'labeled'." + } + } + }, + "code-security-default-configurations": { + "type": "array", + "description": "A list of default code security configurations", + "items": { + "type": "object", + "properties": { + "default_for_new_repos": { + "enum": [ + "public", + "private_and_internal", + "all" + ], + "description": "The visibility of newly created repositories for which the code security configuration will be applied to by default" + }, + "configuration": { + "$ref": "#/components/schemas/code-security-configuration" + } + } + } + }, + "simple-repository": { + "title": "Simple Repository", + "description": "A GitHub repository.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1296269, + "description": "A unique identifier of the repository." + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "description": "The GraphQL identifier of the repository." + }, + "name": { + "type": "string", + "example": "Hello-World", + "description": "The name of the repository." + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World", + "description": "The full, globally unique, name of the repository." + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World", + "description": "The URL to view the repository on GitHub.com." + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true, + "description": "The repository description." + }, + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World", + "description": "The URL to get more information about the repository from the GitHub API." + }, + "archive_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "description": "A template for the API URL to download the repository as an archive." + }, + "assignees_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "description": "A template for the API URL to list the available assignees for issues in the repository." + }, + "blobs_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "description": "A template for the API URL to create or retrieve a raw Git blob in the repository." + }, + "branches_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "description": "A template for the API URL to get information about branches in the repository." + }, + "collaborators_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "description": "A template for the API URL to get information about collaborators of the repository." + }, + "comments_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "description": "A template for the API URL to get information about comments on the repository." + }, + "commits_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "description": "A template for the API URL to get information about commits on the repository." + }, + "compare_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "description": "A template for the API URL to compare two commits or refs." + }, + "contents_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "description": "A template for the API URL to get the contents of the repository." + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/contributors", + "description": "A template for the API URL to list the contributors to the repository." + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/deployments", + "description": "The API URL to list the deployments of the repository." + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/downloads", + "description": "The API URL to list the downloads on the repository." + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/events", + "description": "The API URL to list the events of the repository." + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/forks", + "description": "The API URL to list the forks of the repository." + }, + "git_commits_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "description": "A template for the API URL to get information about Git commits of the repository." + }, + "git_refs_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "description": "A template for the API URL to get information about Git refs of the repository." + }, + "git_tags_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "description": "A template for the API URL to get information about Git tags of the repository." + }, + "issue_comment_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "description": "A template for the API URL to get information about issue comments on the repository." + }, + "issue_events_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "description": "A template for the API URL to get information about issue events on the repository." + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "description": "A template for the API URL to get information about issues on the repository." + }, + "keys_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "description": "A template for the API URL to get information about deploy keys on the repository." + }, + "labels_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "description": "A template for the API URL to get information about labels of the repository." + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/languages", + "description": "The API URL to get information about the languages of the repository." + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/merges", + "description": "The API URL to merge branches in the repository." + }, + "milestones_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "description": "A template for the API URL to get information about milestones of the repository." + }, + "notifications_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "description": "A template for the API URL to get information about notifications on the repository." + }, + "pulls_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "description": "A template for the API URL to get information about pull requests on the repository." + }, + "releases_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "description": "A template for the API URL to get information about releases on the repository." + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "description": "The API URL to list the stargazers on the repository." + }, + "statuses_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "description": "A template for the API URL to get information about statuses of a commit." + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "description": "The API URL to list the subscribers on the repository." + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/subscription", + "description": "The API URL to subscribe to notifications for this repository." + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/tags", + "description": "The API URL to get information about tags on the repository." + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/teams", + "description": "The API URL to list the teams on the repository." + }, + "trees_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "description": "A template for the API URL to create or retrieve a raw Git tree of the repository." + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks", + "description": "The API URL to list the hooks on the repository." + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + }, + "code-security-configuration-repositories": { + "type": "object", + "description": "Repositories associated with a code security configuration and attachment status", + "properties": { + "status": { + "type": "string", + "description": "The attachment status of the code security configuration on the repository.", + "enum": [ + "attached", + "attaching", + "detached", + "removed", + "enforced", + "failed", + "updating", + "removed_by_enterprise" + ] + }, + "repository": { + "$ref": "#/components/schemas/simple-repository" + } + } + }, + "alert-number": { + "type": "integer", + "description": "The security alert number.", + "readOnly": true + }, + "dependabot-alert-package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "dependabot-alert-security-vulnerability": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "$ref": "#/components/schemas/dependabot-alert-package" + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": "object", + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "nullable": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + }, + "dependabot-alert-security-advisory": { + "type": "object", + "description": "Details for the GitHub Security Advisory.", + "readOnly": true, + "properties": { + "ghsa_id": { + "type": "string", + "description": "The unique GitHub Security Advisory ID assigned to the advisory.", + "readOnly": true + }, + "cve_id": { + "type": "string", + "description": "The unique CVE ID assigned to the advisory.", + "readOnly": true, + "nullable": true + }, + "summary": { + "type": "string", + "description": "A short, plain text summary of the advisory.", + "readOnly": true, + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A long-form Markdown-supported description of the advisory.", + "readOnly": true + }, + "vulnerabilities": { + "type": "array", + "description": "Vulnerable version range information for the advisory.", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "cvss": { + "type": "object", + "description": "Details for the advisory pertaining to the Common Vulnerability Scoring System.", + "readOnly": true, + "properties": { + "score": { + "type": "number", + "description": "The overall CVSS score of the advisory.", + "minimum": 0, + "maximum": 10, + "readOnly": true + }, + "vector_string": { + "type": "string", + "description": "The full CVSS vector string for the advisory.", + "readOnly": true, + "nullable": true + } + }, + "required": [ + "score", + "vector_string" + ], + "additionalProperties": false + }, + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" + }, + "epss": { + "$ref": "#/components/schemas/security-advisory-epss" + }, + "cwes": { + "type": "array", + "description": "Details for the advisory pertaining to Common Weakness Enumeration.", + "readOnly": true, + "items": { + "type": "object", + "description": "A CWE weakness assigned to the advisory.", + "readOnly": true, + "properties": { + "cwe_id": { + "type": "string", + "description": "The unique CWE ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The short, plain text name of the CWE.", + "readOnly": true + } + }, + "required": [ + "cwe_id", + "name" + ], + "additionalProperties": false + } + }, + "identifiers": { + "type": "array", + "description": "Values that identify this advisory among security information sources.", + "readOnly": true, + "items": { + "type": "object", + "description": "An advisory identifier.", + "readOnly": true, + "properties": { + "type": { + "type": "string", + "description": "The type of advisory identifier.", + "readOnly": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + "value": { + "type": "string", + "description": "The value of the advisory identifer.", + "readOnly": true + } + }, + "required": [ + "value", + "type" + ], + "additionalProperties": false + } + }, + "references": { + "type": "array", + "description": "Links to additional advisory information.", + "readOnly": true, + "items": { + "type": "object", + "description": "A link to additional advisory information.", + "readOnly": true, + "properties": { + "url": { + "type": "string", + "description": "The URL of the reference.", + "format": "uri", + "readOnly": true + } + }, + "required": [ + "url" + ], + "additionalProperties": false + } + }, + "published_at": { + "type": "string", + "description": "The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "withdrawn_at": { + "type": "string", + "description": "The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": true + } + }, + "required": [ + "ghsa_id", + "cve_id", + "summary", + "description", + "vulnerabilities", + "severity", + "cvss", + "cwes", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at" + ], + "additionalProperties": false + }, + "alert-url": { + "type": "string", + "description": "The REST API URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "alert-html-url": { + "type": "string", + "description": "The GitHub URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "alert-created-at": { + "type": "string", + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "alert-updated-at": { + "type": "string", + "description": "The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "alert-dismissed-at": { + "type": "string", + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "alert-fixed-at": { + "type": "string", + "description": "The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "alert-auto-dismissed-at": { + "type": "string", + "description": "The time that the alert was auto-dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "dependabot-alert-dismissal-request-simple": { + "title": "Dependabot alert dismissal request", + "description": "Information about an active dismissal request for this Dependabot alert.", + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the dismissal request." + }, + "status": { + "type": "string", + "description": "The current status of the dismissal request.", + "enum": [ + "pending", + "approved", + "rejected", + "cancelled" + ] + }, + "requester": { + "type": "object", + "description": "The user who requested the dismissal.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the user." + }, + "login": { + "type": "string", + "description": "The login name of the user." + } + } + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time when the dismissal request was created." + }, + "url": { + "type": "string", + "format": "uri", + "description": "The API URL to get more information about this dismissal request." + } + } + }, + "dependabot-alert-with-repository": { + "type": "object", + "description": "A Dependabot alert.", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "state": { + "type": "string", + "description": "The state of the Dependabot alert.", + "readOnly": true, + "enum": [ + "auto_dismissed", + "dismissed", + "fixed", + "open" + ] + }, + "dependency": { + "type": "object", + "description": "Details for the vulnerable dependency.", + "readOnly": true, + "properties": { + "package": { + "$ref": "#/components/schemas/dependabot-alert-package" + }, + "manifest_path": { + "type": "string", + "description": "The full path to the dependency manifest file, relative to the root of the repository.", + "readOnly": true + }, + "scope": { + "type": "string", + "description": "The execution scope of the vulnerable dependency.", + "readOnly": true, + "nullable": true, + "enum": [ + "development", + "runtime" + ] + }, + "relationship": { + "type": "string", + "description": "The vulnerable dependency's relationship to your project.\n\n> [!NOTE]\n> We are rolling out support for dependency relationship across ecosystems. This value will be \"unknown\" for all dependencies in unsupported ecosystems.\n", + "readOnly": true, + "nullable": true, + "enum": [ + "unknown", + "direct", + "transitive" + ] + } + } + }, + "security_advisory": { + "$ref": "#/components/schemas/dependabot-alert-security-advisory" + }, + "security_vulnerability": { + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/alert-updated-at" + }, + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" + }, + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "dismissed_reason": { + "type": "string", + "description": "The reason that the alert was dismissed.", + "nullable": true, + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk" + ] + }, + "dismissed_comment": { + "type": "string", + "description": "An optional comment associated with the alert's dismissal.", + "nullable": true, + "maxLength": 280 + }, + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" + }, + "auto_dismissed_at": { + "$ref": "#/components/schemas/alert-auto-dismissed-at" + }, + "dismissal_request": { + "$ref": "#/components/schemas/dependabot-alert-dismissal-request-simple" + }, + "repository": { + "$ref": "#/components/schemas/simple-repository" + } + }, + "required": [ + "number", + "state", + "dependency", + "security_advisory", + "security_vulnerability", + "url", + "html_url", + "created_at", + "updated_at", + "dismissed_at", + "dismissed_by", + "dismissed_reason", + "dismissed_comment", + "fixed_at", + "repository" + ], + "additionalProperties": false + }, + "enterprise-team": { + "title": "Enterprise Team", + "description": "Group of enterprise owners and/or members", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "sync_to_organizations": { + "type": "string", + "description": "Retired: this field will not be returned with GHEC enterprise teams.", + "example": "disabled | all" + }, + "organization_selection_type": { + "type": "string", + "example": "disabled | selected | all" + }, + "group_id": { + "nullable": true, + "type": "string", + "example": "62ab9291-fae2-468e-974b-7e45096d5021" + }, + "group_name": { + "nullable": true, + "type": "string", + "description": "Retired: this field will not be returned with GHEC enterprise teams.", + "example": "Justice League" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/enterprises/dc/teams/justice-league" + }, + "members_url": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "url", + "members_url", + "name", + "html_url", + "slug", + "created_at", + "updated_at", + "group_id" + ] + }, + "organization-simple": { + "title": "Organization Simple", + "description": "A GitHub organization.", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "github" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" + }, + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/issues" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/members{/member}" + }, + "public_members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/public_members{/member}" + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "description": { + "type": "string", + "example": "A great organization", + "nullable": true + } + }, + "required": [ + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description" + ] + }, + "actor": { + "title": "Actor", + "description": "Actor", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "display_login": { + "type": "string" + }, + "gravatar_id": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri" + }, + "avatar_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "login", + "gravatar_id", + "url", + "avatar_url" + ] + }, + "label": { + "title": "Label", + "description": "Color-coded labels help you categorize and filter your issues (just like labels in Gmail).", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier for the label.", + "type": "integer", + "format": "int64", + "example": 208045946 + }, + "node_id": { + "type": "string", + "example": "MDU6TGFiZWwyMDgwNDU5NDY=" + }, + "url": { + "description": "URL for the label", + "example": "https://api.github.com/repositories/42/labels/bug", + "type": "string", + "format": "uri" + }, + "name": { + "description": "The name of the label.", + "example": "bug", + "type": "string" + }, + "description": { + "description": "Optional description of the label, such as its purpose.", + "type": "string", + "example": "Something isn't working", + "nullable": true + }, + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "example": "FFFFFF", + "type": "string" + }, + "default": { + "description": "Whether this label comes by default in a new repository.", + "type": "boolean", + "example": true + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "description", + "color", + "default" + ] + }, + "discussion": { + "title": "Discussion", + "description": "A Discussion in a repository.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "answer_chosen_at": { + "type": "string", + "nullable": true + }, + "answer_chosen_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "answer_html_url": { + "type": "string", + "nullable": true + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "type": "string" + }, + "category": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" + }, + "emoji": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "is_answerable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "repository_id": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "repository_id", + "emoji", + "name", + "description", + "created_at", + "updated_at", + "slug", + "is_answerable" + ] + }, + "comments": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "locked": { + "type": "boolean" + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string" + }, + "state": { + "type": "string", + "description": "The current state of the discussion.\n`converting` means that the discussion is being converted from an issue.\n`transferring` means that the discussion is being transferred from another repository.", + "enum": [ + "open", + "closed", + "locked", + "converting", + "transferring" + ] + }, + "state_reason": { + "description": "The reason for the current state", + "example": "resolved", + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "outdated", + "duplicate", + "reopened" + ] + }, + "timeline_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } + } + }, + "required": [ + "repository_url", + "category", + "answer_html_url", + "answer_chosen_at", + "answer_chosen_by", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "state", + "state_reason", + "locked", + "comments", + "created_at", + "updated_at", + "active_lock_reason", + "body" + ] + }, + "nullable-milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/milestones/v1.0" + }, + "labels_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels" + }, + "id": { + "type": "integer", + "example": 1002604 + }, + "node_id": { + "type": "string", + "example": "MDk6TWlsZXN0b25lMTAwMjYwNA==" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer", + "example": 42 + }, + "state": { + "description": "The state of the milestone.", + "example": "open", + "type": "string", + "enum": [ + "open", + "closed" + ], + "default": "open" + }, + "title": { + "description": "The title of the milestone.", + "example": "v1.0", + "type": "string" + }, + "description": { + "type": "string", + "example": "Tracking milestone for version 1.0", + "nullable": true + }, + "creator": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "open_issues": { + "type": "integer", + "example": 4 + }, + "closed_issues": { + "type": "integer", + "example": 8 + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2013-02-12T13:22:01Z", + "nullable": true + }, + "due_on": { + "type": "string", + "format": "date-time", + "example": "2012-10-09T23:39:01Z", + "nullable": true + } + }, + "required": [ + "closed_issues", + "creator", + "description", + "due_on", + "closed_at", + "id", + "node_id", + "labels_url", + "html_url", + "number", + "open_issues", + "state", + "title", + "url", + "created_at", + "updated_at" + ], + "nullable": true + }, + "issue-type": { + "title": "Issue Type", + "description": "The type of issue.", + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the issue type." + }, + "node_id": { + "type": "string", + "description": "The node identifier of the issue type." + }, + "name": { + "type": "string", + "description": "The name of the issue type." + }, + "description": { + "type": "string", + "description": "The description of the issue type.", + "nullable": true + }, + "color": { + "type": "string", + "description": "The color of the issue type.", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], + "nullable": true + }, + "created_at": { + "type": "string", + "description": "The time the issue type created.", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "description": "The time the issue type last updated.", + "format": "date-time" + }, + "is_enabled": { + "type": "boolean", + "description": "The enabled state of the issue type." + } + }, + "required": [ + "id", + "node_id", + "name", + "description" + ] + }, + "nullable-integration": { + "title": "GitHub app", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "id": { + "description": "Unique identifier of the GitHub app", + "example": 37, + "type": "integer" + }, + "slug": { + "description": "The slug name of the GitHub app", + "example": "probot-owners", + "type": "string" + }, + "node_id": { + "type": "string", + "example": "MDExOkludGVncmF0aW9uMQ==" + }, + "client_id": { + "type": "string", + "example": "\"Iv1.25b5d1e65ffc4022\"" + }, + "owner": { + "oneOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/enterprise" + } + ] + }, + "name": { + "description": "The name of the GitHub app", + "example": "Probot Owners", + "type": "string" + }, + "description": { + "type": "string", + "example": "The description of the app.", + "nullable": true + }, + "external_url": { + "type": "string", + "format": "uri", + "example": "https://example.com" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/apps/super-ci" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "issues": { + "type": "string" + }, + "checks": { + "type": "string" + }, + "metadata": { + "type": "string" + }, + "contents": { + "type": "string" + }, + "deployments": { + "type": "string" + } + }, + "additionalProperties": { + "type": "string" + }, + "example": { + "issues": "read", + "deployments": "write" + } + }, + "events": { + "description": "The list of events for the GitHub app. Note that the `installation_target`, `security_advisory`, and `meta` events are not included because they are global events and not specific to an installation.", + "example": [ + "label", + "deployment" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "installations_count": { + "description": "The number of installations associated with the GitHub app. Only returned when the integration is requesting details about itself.", + "example": 5, + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at", + "permissions", + "events" + ] + }, + "author-association": { + "title": "author_association", + "type": "string", + "example": "OWNER", + "description": "How the author is associated with the repository.", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "reaction-rollup": { + "title": "Reaction Rollup", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "total_count": { + "type": "integer" + }, + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "rocket": { + "type": "integer" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "sub-issues-summary": { + "title": "Sub-issues Summary", + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "completed": { + "type": "integer" + }, + "percent_completed": { + "type": "integer" + } + }, + "required": [ + "total", + "completed", + "percent_completed" + ] + }, + "issue-dependencies-summary": { + "title": "Issue Dependencies Summary", + "type": "object", + "properties": { + "blocked_by": { + "type": "integer" + }, + "blocking": { + "type": "integer" + }, + "total_blocked_by": { + "type": "integer" + }, + "total_blocking": { + "type": "integer" + } + }, + "required": [ + "blocked_by", + "blocking", + "total_blocked_by", + "total_blocking" + ] + }, + "issue-field-value": { + "title": "Issue Field Value", + "description": "A value assigned to an issue field", + "type": "object", + "properties": { + "issue_field_id": { + "description": "Unique identifier for the issue field.", + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "IFT_GDKND" + }, + "data_type": { + "description": "The data type of the issue field", + "type": "string", + "enum": [ + "text", + "single_select", + "number", + "date" + ], + "example": "text" + }, + "value": { + "description": "The value of the issue field", + "anyOf": [ + { + "type": "string", + "example": "Sample text" + }, + { + "type": "number", + "example": 42.5 + }, + { + "type": "integer", + "example": 1 + } + ], + "nullable": true + }, + "single_select_option": { + "description": "Details about the selected option (only present for single_select fields)", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier for the option.", + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "description": "The name of the option", + "type": "string", + "example": "High" + }, + "color": { + "description": "The color of the option", + "type": "string", + "example": "red" + } + }, + "required": [ + "id", + "name", + "color" + ], + "nullable": true + } + }, + "required": [ + "issue_field_id", + "node_id", + "data_type", + "value" + ] + }, + "issue": { + "title": "Issue", + "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the issue", + "example": "https://api.github.com/repositories/42/issues/1", + "type": "string", + "format": "uri" + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "labels_url": { + "type": "string" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "number": { + "description": "Number uniquely identifying the issue within its repository", + "example": 42, + "type": "integer" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "example": "open", + "type": "string" + }, + "state_reason": { + "description": "The reason for the current state", + "example": "not_planned", + "type": "string", + "nullable": true, + "enum": [ + "completed", + "reopened", + "not_planned", + "duplicate" + ] + }, + "title": { + "description": "Title of the issue", + "example": "Widget creation fails in Safari on OS X 10.8", + "type": "string" + }, + "body": { + "description": "Contents of the issue", + "example": "It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug?", + "type": "string", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "labels": { + "description": "Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository", + "example": [ + "bug", + "registration" + ], + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "color": { + "type": "string", + "nullable": true + }, + "default": { + "type": "boolean" + } + } + } + ] + } + }, + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + }, + "nullable": true + }, + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "locked": { + "type": "boolean" + }, + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "diff_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "patch_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "diff_url", + "html_url", + "patch_url", + "url" + ] + }, + "closed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "closed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body_html": { + "type": "string" + }, + "body_text": { + "type": "string" + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "repository": { + "$ref": "#/components/schemas/repository" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "parent_issue_url": { + "description": "URL to get the parent issue of this issue, if it is a sub-issue", + "type": "string", + "format": "uri", + "nullable": true + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + } + }, + "required": [ + "assignee", + "closed_at", + "comments", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "labels", + "labels_url", + "milestone", + "number", + "repository_url", + "state", + "locked", + "title", + "url", + "user", + "created_at", + "updated_at" + ] + }, + "nullable-pinned-issue-comment": { + "title": "Pinned Issue Comment", + "description": "Context around who pinned an issue comment and when it was pinned.", + "type": "object", + "properties": { + "pinned_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "pinned_by": { + "$ref": "#/components/schemas/nullable-simple-user" + } + }, + "required": [ + "pinned_at", + "pinned_by" + ], + "nullable": true + }, + "issue-comment": { + "title": "Issue Comment", + "description": "Comments provide a way for people to collaborate on an issue.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the issue comment", + "example": 42, + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the issue comment", + "example": "https://api.github.com/repositories/42/issues/comments/1", + "type": "string", + "format": "uri" + }, + "body": { + "description": "Contents of the issue comment", + "example": "What version of Safari were you using when you observed this bug?", + "type": "string" + }, + "body_text": { + "type": "string" + }, + "body_html": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + }, + "pin": { + "$ref": "#/components/schemas/nullable-pinned-issue-comment" + } + }, + "required": [ + "id", + "node_id", + "html_url", + "issue_url", + "user", + "url", + "created_at", + "updated_at" + ] + }, + "pull-request-minimal": { + "title": "Pull Request Minimal", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "repo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "name" + ] + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "repo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "name" + ] + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + } + }, + "required": [ + "id", + "number", + "url", + "head", + "base" + ] + }, + "release-asset": { + "title": "Release Asset", + "description": "Data related to a release.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "browser_download_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "description": "The file name of the asset.", + "type": "string", + "example": "Team Environment" + }, + "label": { + "type": "string", + "nullable": true + }, + "state": { + "description": "State of the release asset.", + "type": "string", + "enum": [ + "uploaded", + "open" + ] + }, + "content_type": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "digest": { + "type": "string", + "nullable": true + }, + "download_count": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "uploader": { + "$ref": "#/components/schemas/nullable-simple-user" + } + }, + "required": [ + "id", + "name", + "content_type", + "size", + "digest", + "state", + "url", + "node_id", + "download_count", + "label", + "uploader", + "browser_download_url", + "created_at", + "updated_at" + ] + }, + "release": { + "title": "Release", + "description": "A release.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "assets_url": { + "type": "string", + "format": "uri" + }, + "upload_url": { + "type": "string" + }, + "tarball_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "zipball_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "tag_name": { + "description": "The name of the tag.", + "example": "v1.0.0", + "type": "string" + }, + "target_commitish": { + "description": "Specifies the commitish value that determines where the Git tag is created from.", + "example": "master", + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "draft": { + "description": "true to create a draft (unpublished) release, false to create a published one.", + "example": false, + "type": "boolean" + }, + "prerelease": { + "description": "Whether to identify the release as a prerelease or a full release.", + "example": false, + "type": "boolean" + }, + "immutable": { + "description": "Whether or not the release is immutable.", + "example": false, + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "published_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "author": { + "$ref": "#/components/schemas/simple-user" + }, + "assets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/release-asset" + } + }, + "body_html": { + "type": "string" + }, + "body_text": { + "type": "string" + }, + "mentions_count": { + "type": "integer" + }, + "discussion_url": { + "description": "The URL of the release discussion.", + "type": "string", + "format": "uri" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + } + }, + "required": [ + "assets_url", + "upload_url", + "tarball_url", + "zipball_url", + "created_at", + "published_at", + "draft", + "id", + "node_id", + "author", + "html_url", + "name", + "prerelease", + "tag_name", + "target_commitish", + "assets", + "url" + ] + }, + "event": { + "title": "Event", + "description": "Event", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "nullable": true + }, + "actor": { + "$ref": "#/components/schemas/actor" + }, + "repo": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "name", + "url" + ] + }, + "org": { + "$ref": "#/components/schemas/actor" + }, + "payload": { + "oneOf": [ + { + "$ref": "#/components/schemas/create-event" + }, + { + "$ref": "#/components/schemas/delete-event" + }, + { + "$ref": "#/components/schemas/discussion-event" + }, + { + "$ref": "#/components/schemas/issues-event" + }, + { + "$ref": "#/components/schemas/issue-comment-event" + }, + { + "$ref": "#/components/schemas/fork-event" + }, + { + "$ref": "#/components/schemas/gollum-event" + }, + { + "$ref": "#/components/schemas/member-event" + }, + { + "$ref": "#/components/schemas/public-event" + }, + { + "$ref": "#/components/schemas/push-event" + }, + { + "$ref": "#/components/schemas/pull-request-event" + }, + { + "$ref": "#/components/schemas/pull-request-review-comment-event" + }, + { + "$ref": "#/components/schemas/pull-request-review-event" + }, + { + "$ref": "#/components/schemas/commit-comment-event" + }, + { + "$ref": "#/components/schemas/release-event" + }, + { + "$ref": "#/components/schemas/watch-event" + } + ] + }, + "public": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "id", + "type", + "actor", + "repo", + "payload", + "public", + "created_at" + ] + }, + "link-with-type": { + "title": "Link With Type", + "description": "Hypermedia Link with Type", + "type": "object", + "properties": { + "href": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "href", + "type" + ] + }, + "feed": { + "title": "Feed", + "description": "Feed", + "type": "object", + "properties": { + "timeline_url": { + "type": "string", + "example": "https://github.com/timeline" + }, + "user_url": { + "type": "string", + "example": "https://github.com/{user}" + }, + "current_user_public_url": { + "type": "string", + "example": "https://github.com/octocat" + }, + "current_user_url": { + "type": "string", + "example": "https://github.com/octocat.private?token=abc123" + }, + "current_user_actor_url": { + "type": "string", + "example": "https://github.com/octocat.private.actor?token=abc123" + }, + "current_user_organization_url": { + "type": "string", + "example": "https://github.com/octocat-org" + }, + "current_user_organization_urls": { + "type": "array", + "example": [ + "https://github.com/organizations/github/octocat.private.atom?token=abc123" + ], + "items": { + "type": "string", + "format": "uri" + } + }, + "security_advisories_url": { + "type": "string", + "example": "https://github.com/security-advisories" + }, + "repository_discussions_url": { + "type": "string", + "example": "https://github.com/{user}/{repo}/discussions", + "description": "A feed of discussions for a given repository." + }, + "repository_discussions_category_url": { + "type": "string", + "example": "https://github.com/{user}/{repo}/discussions/categories/{category}", + "description": "A feed of discussions for a given repository and category." + }, + "_links": { + "type": "object", + "properties": { + "timeline": { + "$ref": "#/components/schemas/link-with-type" + }, + "user": { + "$ref": "#/components/schemas/link-with-type" + }, + "security_advisories": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user_public": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user_actor": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user_organization": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user_organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/link-with-type" + } + }, + "repository_discussions": { + "$ref": "#/components/schemas/link-with-type" + }, + "repository_discussions_category": { + "$ref": "#/components/schemas/link-with-type" + } + }, + "required": [ + "timeline", + "user" + ] + } + }, + "required": [ + "_links", + "timeline_url", + "user_url" + ] + }, + "base-gist": { + "title": "Base Gist", + "description": "Base Gist", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "git_pull_url": { + "type": "string", + "format": "uri" + }, + "git_push_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "files": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "type": { + "type": "string" + }, + "language": { + "type": "string" + }, + "raw_url": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "encoding": { + "type": "string", + "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", + "default": "utf-8" + } + } + } + }, + "public": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_enabled": { + "type": "boolean" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "truncated": { + "type": "boolean" + }, + "forks": { + "type": "array", + "items": {} + }, + "history": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "node_id", + "url", + "forks_url", + "commits_url", + "git_pull_url", + "git_push_url", + "html_url", + "comments_url", + "public", + "description", + "comments", + "user", + "files", + "created_at", + "updated_at" + ] + }, + "public-user": { + "title": "Public User", + "description": "Public User", + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "user_view_type": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string", + "format": "uri" + }, + "gravatar_id": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "company": { + "type": "string", + "nullable": true + }, + "blog": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "notification_email": { + "type": "string", + "format": "email", + "nullable": true + }, + "hireable": { + "type": "boolean", + "nullable": true + }, + "bio": { + "type": "string", + "nullable": true + }, + "twitter_username": { + "type": "string", + "nullable": true + }, + "public_repos": { + "type": "integer" + }, + "public_gists": { + "type": "integer" + }, + "followers": { + "type": "integer" + }, + "following": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "plan": { + "type": "object", + "properties": { + "collaborators": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "space": { + "type": "integer" + }, + "private_repos": { + "type": "integer" + } + }, + "required": [ + "collaborators", + "name", + "space", + "private_repos" + ] + }, + "private_gists": { + "type": "integer", + "example": 1 + }, + "total_private_repos": { + "type": "integer", + "example": 2 + }, + "owned_private_repos": { + "type": "integer", + "example": 2 + }, + "disk_usage": { + "type": "integer", + "example": 1 + }, + "collaborators": { + "type": "integer", + "example": 3 + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "bio", + "blog", + "company", + "email", + "followers", + "following", + "hireable", + "location", + "name", + "public_gists", + "public_repos", + "created_at", + "updated_at" + ], + "additionalProperties": false + }, + "gist-history": { + "title": "Gist History", + "description": "Gist History", + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "version": { + "type": "string" + }, + "committed_at": { + "type": "string", + "format": "date-time" + }, + "change_status": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "additions": { + "type": "integer" + }, + "deletions": { + "type": "integer" + } + } + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "gist-simple": { + "title": "Gist Simple", + "description": "Gist Simple", + "type": "object", + "properties": { + "forks": { + "deprecated": true, + "nullable": true, + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "$ref": "#/components/schemas/public-user" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + } + }, + "history": { + "deprecated": true, + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/gist-history" + } + }, + "fork_of": { + "nullable": true, + "title": "Gist", + "description": "Gist", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "git_pull_url": { + "type": "string", + "format": "uri" + }, + "git_push_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "files": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "type": { + "type": "string" + }, + "language": { + "type": "string" + }, + "raw_url": { + "type": "string" + }, + "size": { + "type": "integer" + } + } + } + }, + "public": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_enabled": { + "type": "boolean" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "truncated": { + "type": "boolean" + }, + "forks": { + "type": "array", + "items": {} + }, + "history": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "node_id", + "url", + "forks_url", + "commits_url", + "git_pull_url", + "git_push_url", + "html_url", + "comments_url", + "public", + "description", + "comments", + "user", + "files", + "created_at", + "updated_at" + ] + }, + "url": { + "type": "string" + }, + "forks_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "id": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "git_pull_url": { + "type": "string" + }, + "git_push_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "files": { + "type": "object", + "additionalProperties": { + "nullable": true, + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "type": { + "type": "string" + }, + "language": { + "type": "string" + }, + "raw_url": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + }, + "content": { + "type": "string" + }, + "encoding": { + "type": "string", + "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", + "default": "utf-8" + } + } + } + }, + "public": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_enabled": { + "type": "boolean" + }, + "user": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "truncated": { + "type": "boolean" + } + } + }, + "gist-comment": { + "title": "Gist Comment", + "description": "A comment made to a gist.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDExOkdpc3RDb21tZW50MQ==" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1" + }, + "body": { + "description": "The comment text.", + "type": "string", + "maxLength": 65535, + "example": "Body of the attachment" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-18T23:23:56Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-18T23:23:56Z" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + } + }, + "required": [ + "url", + "id", + "node_id", + "user", + "body", + "author_association", + "created_at", + "updated_at" + ] + }, + "gist-commit": { + "title": "Gist Commit", + "description": "Gist Commit", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f" + }, + "version": { + "type": "string", + "example": "57a7f021a713b1c5a6a199b54cc514735d2d462f" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "change_status": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "additions": { + "type": "integer" + }, + "deletions": { + "type": "integer" + } + } + }, + "committed_at": { + "type": "string", + "format": "date-time", + "example": "2010-04-14T02:15:15Z" + } + }, + "required": [ + "url", + "user", + "version", + "committed_at", + "change_status" + ] + }, + "gitignore-template": { + "title": "Gitignore Template", + "description": "Gitignore Template", + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "C" + }, + "source": { + "type": "string", + "example": "# Object files\n*.o\n\n# Libraries\n*.lib\n*.a\n\n# Shared objects (inc. Windows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app\n" + } + }, + "required": [ + "name", + "source" + ] + }, + "license-simple": { + "title": "License Simple", + "description": "License Simple", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "mit" + }, + "name": { + "type": "string", + "example": "MIT License" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://api.github.com/licenses/mit" + }, + "spdx_id": { + "type": "string", + "nullable": true, + "example": "MIT" + }, + "node_id": { + "type": "string", + "example": "MDc6TGljZW5zZW1pdA==" + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "key", + "name", + "url", + "spdx_id", + "node_id" + ] + }, + "license": { + "title": "License", + "description": "License", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "mit" + }, + "name": { + "type": "string", + "example": "MIT License" + }, + "spdx_id": { + "type": "string", + "example": "MIT", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/licenses/mit", + "nullable": true + }, + "node_id": { + "type": "string", + "example": "MDc6TGljZW5zZW1pdA==" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "http://choosealicense.com/licenses/mit/" + }, + "description": { + "type": "string", + "example": "A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty." + }, + "implementation": { + "type": "string", + "example": "Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders." + }, + "permissions": { + "type": "array", + "example": [ + "commercial-use", + "modifications", + "distribution", + "sublicense", + "private-use" + ], + "items": { + "type": "string" + } + }, + "conditions": { + "type": "array", + "example": [ + "include-copyright" + ], + "items": { + "type": "string" + } + }, + "limitations": { + "type": "array", + "example": [ + "no-liability" + ], + "items": { + "type": "string" + } + }, + "body": { + "type": "string", + "example": "\n\nThe MIT License (MIT)\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n" + }, + "featured": { + "type": "boolean", + "example": true + } + }, + "required": [ + "key", + "name", + "url", + "spdx_id", + "node_id", + "html_url", + "description", + "implementation", + "permissions", + "conditions", + "limitations", + "body", + "featured" + ] + }, + "marketplace-listing-plan": { + "title": "Marketplace Listing Plan", + "description": "Marketplace Listing Plan", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/marketplace_listing/plans/1313" + }, + "accounts_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/marketplace_listing/plans/1313/accounts" + }, + "id": { + "type": "integer", + "example": 1313 + }, + "number": { + "type": "integer", + "example": 3 + }, + "name": { + "type": "string", + "example": "Pro" + }, + "description": { + "type": "string", + "example": "A professional-grade CI solution" + }, + "monthly_price_in_cents": { + "type": "integer", + "example": 1099 + }, + "yearly_price_in_cents": { + "type": "integer", + "example": 11870 + }, + "price_model": { + "type": "string", + "enum": [ + "FREE", + "FLAT_RATE", + "PER_UNIT" + ], + "example": "FLAT_RATE" + }, + "has_free_trial": { + "type": "boolean", + "example": true + }, + "unit_name": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "example": "published" + }, + "bullets": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "Up to 25 private repositories", + "11 concurrent builds" + ] + } + }, + "required": [ + "url", + "accounts_url", + "id", + "number", + "name", + "description", + "has_free_trial", + "price_model", + "unit_name", + "monthly_price_in_cents", + "state", + "yearly_price_in_cents", + "bullets" + ] + }, + "marketplace-purchase": { + "title": "Marketplace Purchase", + "description": "Marketplace Purchase", + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "organization_billing_email": { + "type": "string" + }, + "email": { + "type": "string", + "nullable": true + }, + "marketplace_pending_change": { + "type": "object", + "properties": { + "is_installed": { + "type": "boolean" + }, + "effective_date": { + "type": "string" + }, + "unit_count": { + "type": "integer", + "nullable": true + }, + "id": { + "type": "integer" + }, + "plan": { + "$ref": "#/components/schemas/marketplace-listing-plan" + } + }, + "nullable": true + }, + "marketplace_purchase": { + "type": "object", + "properties": { + "billing_cycle": { + "type": "string" + }, + "next_billing_date": { + "type": "string", + "nullable": true + }, + "is_installed": { + "type": "boolean" + }, + "unit_count": { + "type": "integer", + "nullable": true + }, + "on_free_trial": { + "type": "boolean" + }, + "free_trial_ends_on": { + "type": "string", + "nullable": true + }, + "updated_at": { + "type": "string" + }, + "plan": { + "$ref": "#/components/schemas/marketplace-listing-plan" + } + } + } + }, + "required": [ + "url", + "id", + "type", + "login", + "marketplace_purchase" + ] + }, + "api-overview": { + "title": "Api Overview", + "description": "Api Overview", + "type": "object", + "properties": { + "verifiable_password_authentication": { + "type": "boolean", + "example": true + }, + "ssh_key_fingerprints": { + "type": "object", + "properties": { + "SHA256_RSA": { + "type": "string" + }, + "SHA256_DSA": { + "type": "string" + }, + "SHA256_ECDSA": { + "type": "string" + }, + "SHA256_ED25519": { + "type": "string" + } + } + }, + "ssh_keys": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ" + ] + }, + "hooks": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "github_enterprise_importer": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "web": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "api": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "git": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "packages": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "pages": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "importer": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "actions": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "actions_macos": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "codespaces": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "dependabot": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "copilot": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "domains": { + "type": "object", + "properties": { + "website": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + }, + "codespaces": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + }, + "copilot": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + }, + "packages": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + }, + "actions": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + }, + "actions_inbound": { + "type": "object", + "properties": { + "full_domains": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + }, + "wildcard_domains": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + } + } + }, + "artifact_attestations": { + "type": "object", + "properties": { + "trust_domain": { + "type": "string", + "example": [ + "example" + ] + }, + "services": { + "type": "array", + "items": { + "type": "string", + "example": [ + "example.com" + ] + } + } + } + } + } + } + }, + "required": [ + "verifiable_password_authentication" + ] + }, + "security-and-analysis": { + "nullable": true, + "type": "object", + "properties": { + "advanced_security": { + "description": "Enable or disable GitHub Advanced Security for the repository.\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.\n", + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "code_security": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "dependabot_security_updates": { + "description": "Enable or disable Dependabot security updates for the repository.", + "type": "object", + "properties": { + "status": { + "description": "The enablement status of Dependabot security updates for the repository.", + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "secret_scanning": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "secret_scanning_push_protection": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "secret_scanning_non_provider_patterns": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "secret_scanning_ai_detection": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "secret_scanning_delegated_alert_dismissal": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + } + } + }, + "minimal-repository": { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "has_discussions": { + "type": "boolean" + }, + "has_pull_requests": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "code_of_conduct": { + "$ref": "#/components/schemas/code-of-conduct" + }, + "license": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + } + }, + "nullable": true + }, + "forks": { + "type": "integer", + "example": 0 + }, + "open_issues": { + "type": "integer", + "example": 0 + }, + "watchers": { + "type": "integer", + "example": 0 + }, + "allow_forking": { + "type": "boolean" + }, + "web_commit_signoff_required": { + "type": "boolean", + "example": false + }, + "security_and_analysis": { + "$ref": "#/components/schemas/security-and-analysis" + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + }, + "thread": { + "title": "Thread", + "description": "Thread", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "subject": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "latest_comment_url": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "title", + "url", + "latest_comment_url", + "type" + ] + }, + "reason": { + "type": "string" + }, + "unread": { + "type": "boolean" + }, + "updated_at": { + "type": "string" + }, + "last_read_at": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string" + }, + "subscription_url": { + "type": "string", + "example": "https://api.github.com/notifications/threads/2/subscription" + } + }, + "required": [ + "id", + "unread", + "reason", + "updated_at", + "last_read_at", + "subject", + "repository", + "url", + "subscription_url" + ] + }, + "thread-subscription": { + "title": "Thread Subscription", + "description": "Thread Subscription", + "type": "object", + "properties": { + "subscribed": { + "type": "boolean", + "example": true + }, + "ignored": { + "type": "boolean" + }, + "reason": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-10-06T21:34:12Z", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/notifications/threads/1/subscription" + }, + "thread_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/notifications/threads/1" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/1" + } + }, + "required": [ + "created_at", + "ignored", + "reason", + "url", + "subscribed" + ] + }, + "actions-cache-retention-limit-for-organization": { + "title": "Actions cache retention limit for an organization", + "description": "GitHub Actions cache retention policy for an organization.", + "type": "object", + "properties": { + "max_cache_retention_days": { + "description": "For repositories in this organization, the maximum duration, in days, for which caches in a repository may be retained.", + "type": "integer", + "example": 14 + } + } + }, + "actions-cache-storage-limit-for-organization": { + "title": "Actions cache storage limit for an organization", + "description": "GitHub Actions cache storage policy for an organization.", + "type": "object", + "properties": { + "max_cache_size_gb": { + "description": "For repositories in the organization, the maximum size limit for the sum of all caches in a repository, in gigabytes.", + "type": "integer", + "example": 10 + } + } + }, + "nullable-simple-repository": { + "title": "Simple Repository", + "description": "A GitHub repository.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1296269, + "description": "A unique identifier of the repository." + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "description": "The GraphQL identifier of the repository." + }, + "name": { + "type": "string", + "example": "Hello-World", + "description": "The name of the repository." + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World", + "description": "The full, globally unique, name of the repository." + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World", + "description": "The URL to view the repository on GitHub.com." + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true, + "description": "The repository description." + }, + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World", + "description": "The URL to get more information about the repository from the GitHub API." + }, + "archive_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "description": "A template for the API URL to download the repository as an archive." + }, + "assignees_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "description": "A template for the API URL to list the available assignees for issues in the repository." + }, + "blobs_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "description": "A template for the API URL to create or retrieve a raw Git blob in the repository." + }, + "branches_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "description": "A template for the API URL to get information about branches in the repository." + }, + "collaborators_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "description": "A template for the API URL to get information about collaborators of the repository." + }, + "comments_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "description": "A template for the API URL to get information about comments on the repository." + }, + "commits_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "description": "A template for the API URL to get information about commits on the repository." + }, + "compare_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "description": "A template for the API URL to compare two commits or refs." + }, + "contents_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "description": "A template for the API URL to get the contents of the repository." + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/contributors", + "description": "A template for the API URL to list the contributors to the repository." + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/deployments", + "description": "The API URL to list the deployments of the repository." + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/downloads", + "description": "The API URL to list the downloads on the repository." + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/events", + "description": "The API URL to list the events of the repository." + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/forks", + "description": "The API URL to list the forks of the repository." + }, + "git_commits_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "description": "A template for the API URL to get information about Git commits of the repository." + }, + "git_refs_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "description": "A template for the API URL to get information about Git refs of the repository." + }, + "git_tags_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "description": "A template for the API URL to get information about Git tags of the repository." + }, + "issue_comment_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "description": "A template for the API URL to get information about issue comments on the repository." + }, + "issue_events_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "description": "A template for the API URL to get information about issue events on the repository." + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "description": "A template for the API URL to get information about issues on the repository." + }, + "keys_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "description": "A template for the API URL to get information about deploy keys on the repository." + }, + "labels_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "description": "A template for the API URL to get information about labels of the repository." + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/languages", + "description": "The API URL to get information about the languages of the repository." + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/merges", + "description": "The API URL to merge branches in the repository." + }, + "milestones_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "description": "A template for the API URL to get information about milestones of the repository." + }, + "notifications_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "description": "A template for the API URL to get information about notifications on the repository." + }, + "pulls_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "description": "A template for the API URL to get information about pull requests on the repository." + }, + "releases_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "description": "A template for the API URL to get information about releases on the repository." + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "description": "The API URL to list the stargazers on the repository." + }, + "statuses_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "description": "A template for the API URL to get information about statuses of a commit." + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "description": "The API URL to list the subscribers on the repository." + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/subscription", + "description": "The API URL to subscribe to notifications for this repository." + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/tags", + "description": "The API URL to get information about tags on the repository." + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/teams", + "description": "The API URL to list the teams on the repository." + }, + "trees_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "description": "A template for the API URL to create or retrieve a raw Git tree of the repository." + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks", + "description": "The API URL to list the hooks on the repository." + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ], + "nullable": true + }, + "dependabot-repository-access-details": { + "title": "Dependabot Repository Access Details", + "description": "Information about repositories that Dependabot is able to access in an organization", + "type": "object", + "properties": { + "default_level": { + "type": "string", + "description": "The default repository access level for Dependabot updates.", + "enum": [ + "public", + "internal" + ], + "example": "internal", + "nullable": true + }, + "accessible_repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/nullable-simple-repository" + } + } + }, + "additionalProperties": false + }, + "budget": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier for the budget", + "example": "2066deda-923f-43f9-88d2-62395a28c0cdd" + }, + "budget_type": { + "type": "string", + "description": "The type of pricing for the budget", + "example": "SkuPricing", + "enum": [ + "SkuPricing", + "ProductPricing" + ] + }, + "budget_amount": { + "type": "integer", + "description": "The budget amount limit in whole dollars. For license-based products, this represents the number of licenses." + }, + "prevent_further_usage": { + "type": "boolean", + "description": "The type of limit enforcement for the budget", + "example": true + }, + "budget_scope": { + "type": "string", + "description": "The scope of the budget (enterprise, organization, repository, cost center)", + "example": "enterprise" + }, + "budget_entity_name": { + "type": "string", + "description": "The name of the entity for the budget (enterprise does not require a name).", + "example": "octocat/hello-world" + }, + "budget_product_sku": { + "type": "string", + "description": "A single product or sku to apply the budget to." + }, + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget", + "example": true + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts", + "example": [ + "mona", + "lisa" + ] + } + }, + "required": [ + "will_alert", + "alert_recipients" + ] + } + }, + "required": [ + "id", + "budget_type", + "budget_product_sku", + "budget_scope", + "budget_amount", + "prevent_further_usage", + "budget_alerting" + ] + }, + "get_all_budgets": { + "type": "object", + "properties": { + "budgets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/budget" + }, + "description": "Array of budget objects for the enterprise" + }, + "has_next_page": { + "type": "boolean", + "description": "Indicates if there are more pages of results available (maps to hasNextPage from billing platform)" + }, + "total_count": { + "type": "integer", + "description": "Total number of budgets matching the query" + } + }, + "required": [ + "budgets" + ] + }, + "get-budget": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the budget." + }, + "budget_scope": { + "type": "string", + "description": "The type of scope for the budget", + "example": "enterprise", + "enum": [ + "enterprise", + "organization", + "repository", + "cost_center" + ] + }, + "budget_entity_name": { + "type": "string", + "description": "The name of the entity to apply the budget to", + "example": "octocat/hello-world" + }, + "budget_amount": { + "type": "integer", + "description": "The budget amount in whole dollars. For license-based products, this represents the number of licenses." + }, + "prevent_further_usage": { + "type": "boolean", + "description": "Whether to prevent additional spending once the budget is exceeded", + "example": true + }, + "budget_product_sku": { + "type": "string", + "description": "A single product or sku to apply the budget to.", + "example": "actions_linux" + }, + "budget_type": { + "type": "string", + "description": "The type of pricing for the budget", + "example": "ProductPricing", + "enum": [ + "ProductPricing", + "SkuPricing" + ] + }, + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget", + "example": true + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts", + "example": [ + "mona", + "lisa" + ] + } + } + } + }, + "required": [ + "id", + "budget_amount", + "prevent_further_usage", + "budget_product_sku", + "budget_type", + "budget_alerting", + "budget_scope", + "budget_entity_name" + ] + }, + "delete-budget": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "A message indicating the result of the deletion operation" + }, + "id": { + "type": "string", + "description": "The ID of the deleted budget" + } + }, + "required": [ + "message", + "id" + ] + }, + "billing-premium-request-usage-report-org": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "organization": { + "type": "string", + "description": "The unique identifier of the organization." + }, + "user": { + "type": "string", + "description": "The name of the user for the usage report." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "model": { + "type": "string", + "description": "The model for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "model": { + "type": "string", + "description": "Model name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "number", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "number", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "number", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "model", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "organization", + "usageItems" + ] + }, + "billing-usage-report": { + "type": "object", + "properties": { + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Date of the usage line item." + }, + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the usage line item." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + }, + "organizationName": { + "type": "string", + "description": "Name of the organization." + }, + "repositoryName": { + "type": "string", + "description": "Name of the repository." + } + }, + "required": [ + "date", + "product", + "sku", + "quantity", + "unitType", + "pricePerUnit", + "grossAmount", + "discountAmount", + "netAmount", + "organizationName" + ] + } + } + } + }, + "billing-usage-summary-report-org": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "organization": { + "type": "string", + "description": "The unique identifier of the organization." + }, + "repository": { + "type": "string", + "description": "The name of the repository for the usage report." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "sku": { + "type": "string", + "description": "The SKU for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "number", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "number", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "number", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "organization", + "usageItems" + ] + }, + "organization-full": { + "title": "Organization Full", + "description": "Organization Full", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "github" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" + }, + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/issues" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/members{/member}" + }, + "public_members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/public_members{/member}" + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "description": { + "type": "string", + "example": "A great organization", + "nullable": true + }, + "name": { + "type": "string", + "example": "github" + }, + "company": { + "type": "string", + "example": "GitHub" + }, + "blog": { + "type": "string", + "format": "uri", + "example": "https://github.com/blog" + }, + "location": { + "type": "string", + "example": "San Francisco" + }, + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com" + }, + "twitter_username": { + "type": "string", + "example": "github", + "nullable": true + }, + "is_verified": { + "type": "boolean", + "example": true + }, + "has_organization_projects": { + "type": "boolean", + "example": true + }, + "has_repository_projects": { + "type": "boolean", + "example": true + }, + "public_repos": { + "type": "integer", + "example": 2 + }, + "public_gists": { + "type": "integer", + "example": 1 + }, + "followers": { + "type": "integer", + "example": 20 + }, + "following": { + "type": "integer", + "example": 0 + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "type": { + "type": "string", + "example": "Organization" + }, + "total_private_repos": { + "type": "integer", + "example": 100 + }, + "owned_private_repos": { + "type": "integer", + "example": 100 + }, + "private_gists": { + "type": "integer", + "example": 81, + "nullable": true + }, + "disk_usage": { + "type": "integer", + "example": 10000, + "nullable": true + }, + "collaborators": { + "type": "integer", + "example": 8, + "nullable": true, + "description": "The number of collaborators on private repositories.\n\nThis field may be null if the number of private repositories is over 50,000." + }, + "billing_email": { + "type": "string", + "format": "email", + "example": "org@example.com", + "nullable": true + }, + "plan": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "space": { + "type": "integer" + }, + "private_repos": { + "type": "integer" + }, + "filled_seats": { + "type": "integer" + }, + "seats": { + "type": "integer" + } + }, + "required": [ + "name", + "space", + "private_repos" + ] + }, + "default_repository_permission": { + "type": "string", + "nullable": true + }, + "default_repository_branch": { + "type": "string", + "example": "main", + "nullable": true, + "description": "The default branch for repositories created in this organization." + }, + "members_can_create_repositories": { + "type": "boolean", + "example": true, + "nullable": true + }, + "two_factor_requirement_enabled": { + "type": "boolean", + "example": true, + "nullable": true + }, + "members_allowed_repository_creation_type": { + "type": "string", + "example": "all" + }, + "members_can_create_public_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_private_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_internal_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_pages": { + "type": "boolean", + "example": true + }, + "members_can_create_public_pages": { + "type": "boolean", + "example": true + }, + "members_can_create_private_pages": { + "type": "boolean", + "example": true + }, + "members_can_delete_repositories": { + "type": "boolean", + "example": true + }, + "members_can_change_repo_visibility": { + "type": "boolean", + "example": true + }, + "members_can_invite_outside_collaborators": { + "type": "boolean", + "example": true + }, + "members_can_delete_issues": { + "type": "boolean", + "example": true + }, + "display_commenter_full_name_setting_enabled": { + "type": "boolean", + "example": true + }, + "readers_can_create_discussions": { + "type": "boolean", + "example": true + }, + "members_can_create_teams": { + "type": "boolean", + "example": true + }, + "members_can_view_dependency_insights": { + "type": "boolean", + "example": true + }, + "members_can_fork_private_repositories": { + "type": "boolean", + "example": false, + "nullable": true + }, + "web_commit_signoff_required": { + "type": "boolean", + "example": false + }, + "advanced_security_enabled_for_new_repositories": { + "type": "boolean", + "example": false, + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "deprecated": true + }, + "dependabot_alerts_enabled_for_new_repositories": { + "type": "boolean", + "example": false, + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "deprecated": true + }, + "dependabot_security_updates_enabled_for_new_repositories": { + "type": "boolean", + "example": false, + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "deprecated": true + }, + "dependency_graph_enabled_for_new_repositories": { + "type": "boolean", + "example": false, + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "deprecated": true + }, + "secret_scanning_enabled_for_new_repositories": { + "type": "boolean", + "example": false, + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "deprecated": true + }, + "secret_scanning_push_protection_enabled_for_new_repositories": { + "type": "boolean", + "example": false, + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead.\n\nWhether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "deprecated": true + }, + "secret_scanning_push_protection_custom_link_enabled": { + "type": "boolean", + "example": false, + "description": "Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection." + }, + "secret_scanning_push_protection_custom_link": { + "type": "string", + "example": "https://github.com/test-org/test-repo/blob/main/README.md", + "nullable": true, + "description": "An optional URL string to display to contributors who are blocked from pushing a secret." + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "archived_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deploy_keys_enabled_for_repositories": { + "type": "boolean", + "example": false, + "description": "Controls whether or not deploy keys may be added and used for repositories in the organization." + } + }, + "required": [ + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description", + "html_url", + "has_organization_projects", + "has_repository_projects", + "public_repos", + "public_gists", + "followers", + "following", + "type", + "created_at", + "updated_at", + "archived_at" + ] + }, + "actions-cache-usage-org-enterprise": { + "type": "object", + "properties": { + "total_active_caches_count": { + "type": "integer", + "description": "The count of active caches across all repositories of an enterprise or an organization." + }, + "total_active_caches_size_in_bytes": { + "type": "integer", + "description": "The total size in bytes of all active cache items across all repositories of an enterprise or an organization." + } + }, + "required": [ + "total_active_caches_count", + "total_active_caches_size_in_bytes" + ] + }, + "actions-cache-usage-by-repository": { + "title": "Actions Cache Usage by repository", + "description": "GitHub Actions Cache Usage by repository.", + "type": "object", + "properties": { + "full_name": { + "description": "The repository owner and name for the cache usage being shown.", + "type": "string", + "example": "octo-org/Hello-World" + }, + "active_caches_size_in_bytes": { + "description": "The sum of the size in bytes of all the active cache items in the repository.", + "type": "integer", + "example": 2322142 + }, + "active_caches_count": { + "description": "The number of active caches in the repository.", + "type": "integer", + "example": 3 + } + }, + "required": [ + "full_name", + "active_caches_size_in_bytes", + "active_caches_count" + ] + }, + "nullable-actions-hosted-runner-pool-image": { + "title": "GitHub-hosted runner image details.", + "description": "Provides details of a hosted runner image", + "type": "object", + "properties": { + "id": { + "description": "The ID of the image. Use this ID for the `image` parameter when creating a new larger runner.", + "type": "string", + "example": "ubuntu-20.04" + }, + "size_gb": { + "description": "Image size in GB.", + "type": "integer", + "example": 86 + }, + "display_name": { + "description": "Display name for this image.", + "type": "string", + "example": 20.04 + }, + "source": { + "description": "The image provider.", + "type": "string", + "enum": [ + "github", + "partner", + "custom" + ] + }, + "version": { + "description": "The image version of the hosted runner pool.", + "type": "string", + "example": "latest" + } + }, + "required": [ + "id", + "size_gb", + "display_name", + "source" + ], + "nullable": true + }, + "actions-hosted-runner-machine-spec": { + "title": "Github-owned VM details.", + "description": "Provides details of a particular machine spec.", + "type": "object", + "properties": { + "id": { + "description": "The ID used for the `size` parameter when creating a new runner.", + "type": "string", + "example": "8-core" + }, + "cpu_cores": { + "description": "The number of cores.", + "type": "integer", + "example": 8 + }, + "memory_gb": { + "description": "The available RAM for the machine spec.", + "type": "integer", + "example": 32 + }, + "storage_gb": { + "description": "The available SSD storage for the machine spec.", + "type": "integer", + "example": 300 + } + }, + "required": [ + "id", + "cpu_cores", + "memory_gb", + "storage_gb" + ] + }, + "public-ip": { + "title": "Public IP for a GitHub-hosted larger runners.", + "description": "Provides details of Public IP for a GitHub-hosted larger runners", + "type": "object", + "properties": { + "enabled": { + "description": "Whether public IP is enabled.", + "type": "boolean", + "example": true + }, + "prefix": { + "description": "The prefix for the public IP.", + "type": "string", + "example": "20.80.208.150" + }, + "length": { + "description": "The length of the IP prefix.", + "type": "integer", + "example": 28 + } + } + }, + "actions-hosted-runner": { + "title": "GitHub-hosted hosted runner", + "description": "A Github-hosted hosted runner.", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the hosted runner.", + "type": "integer", + "example": 5 + }, + "name": { + "description": "The name of the hosted runner.", + "type": "string", + "example": "my-github-hosted-runner" + }, + "runner_group_id": { + "description": "The unique identifier of the group that the hosted runner belongs to.", + "type": "integer", + "example": 2 + }, + "image_details": { + "$ref": "#/components/schemas/nullable-actions-hosted-runner-pool-image" + }, + "machine_size_details": { + "$ref": "#/components/schemas/actions-hosted-runner-machine-spec" + }, + "status": { + "description": "The status of the runner.", + "type": "string", + "example": "Ready", + "enum": [ + "Ready", + "Provisioning", + "Shutdown", + "Deleting", + "Stuck" + ] + }, + "platform": { + "description": "The operating system of the image.", + "type": "string", + "example": "linux-x64" + }, + "maximum_runners": { + "description": "The maximum amount of hosted runners. Runners will not scale automatically above this number. Use this setting to limit your cost.", + "type": "integer", + "default": 10, + "example": 5 + }, + "public_ip_enabled": { + "description": "Whether public IP is enabled for the hosted runners.", + "type": "boolean", + "example": true + }, + "public_ips": { + "description": "The public IP ranges when public IP is enabled for the hosted runners.", + "type": "array", + "items": { + "$ref": "#/components/schemas/public-ip" + } + }, + "last_active_on": { + "description": "The time at which the runner was last used, in ISO 8601 format.", + "type": "string", + "format": "date-time", + "example": "2022-10-09T23:39:01Z", + "nullable": true + }, + "image_gen": { + "type": "boolean", + "description": "Whether custom image generation is enabled for the hosted runners." + } + }, + "required": [ + "id", + "name", + "image_details", + "machine_size_details", + "status", + "public_ip_enabled", + "platform" + ] + }, + "actions-hosted-runner-custom-image": { + "title": "GitHub-hosted runner custom image details", + "description": "Provides details of a custom runner image", + "type": "object", + "properties": { + "id": { + "description": "The ID of the image. Use this ID for the `image` parameter when creating a new larger runner.", + "type": "integer", + "example": 1 + }, + "platform": { + "description": "The operating system of the image.", + "type": "string", + "example": "linux-x64" + }, + "total_versions_size": { + "description": "Total size of all the image versions in GB.", + "type": "integer", + "example": 200 + }, + "name": { + "description": "Display name for this image.", + "type": "string", + "example": "CustomImage" + }, + "source": { + "description": "The image provider.", + "type": "string", + "example": "custom" + }, + "versions_count": { + "description": "The number of image versions associated with the image.", + "type": "integer", + "example": 4 + }, + "latest_version": { + "description": "The latest image version associated with the image.", + "type": "string", + "example": "1.3.0" + }, + "state": { + "description": "The number of image versions associated with the image.", + "type": "string", + "example": "Ready" + } + }, + "required": [ + "id", + "platform", + "name", + "source", + "versions_count", + "total_versions_size", + "latest_version", + "state" + ] + }, + "actions-hosted-runner-custom-image-version": { + "title": "GitHub-hosted runner custom image version details.", + "description": "Provides details of a hosted runner custom image version", + "type": "object", + "properties": { + "version": { + "description": "The version of image.", + "type": "string", + "example": "1.0.0" + }, + "state": { + "description": "The state of image version.", + "type": "string", + "example": "Ready" + }, + "size_gb": { + "description": "Image version size in GB.", + "type": "integer", + "example": 30 + }, + "created_on": { + "description": "The creation date time of the image version.", + "type": "string", + "example": "2024-11-09T23:39:01Z" + }, + "state_details": { + "description": "The image version status details.", + "type": "string", + "example": "None" + } + }, + "required": [ + "version", + "state", + "size_gb", + "created_on", + "state_details" + ] + }, + "actions-hosted-runner-curated-image": { + "title": "GitHub-hosted runner image details.", + "description": "Provides details of a hosted runner image", + "type": "object", + "properties": { + "id": { + "description": "The ID of the image. Use this ID for the `image` parameter when creating a new larger runner.", + "type": "string", + "example": "ubuntu-20.04" + }, + "platform": { + "description": "The operating system of the image.", + "type": "string", + "example": "linux-x64" + }, + "size_gb": { + "description": "Image size in GB.", + "type": "integer", + "example": 86 + }, + "display_name": { + "description": "Display name for this image.", + "type": "string", + "example": 20.04 + }, + "source": { + "description": "The image provider.", + "type": "string", + "enum": [ + "github", + "partner", + "custom" + ] + } + }, + "required": [ + "id", + "platform", + "size_gb", + "display_name", + "source" + ] + }, + "actions-hosted-runner-limits": { + "type": "object", + "properties": { + "public_ips": { + "title": "Static public IP Limits for GitHub-hosted Hosted Runners.", + "description": "Provides details of static public IP limits for GitHub-hosted Hosted Runners", + "type": "object", + "properties": { + "maximum": { + "type": "integer", + "description": "The maximum number of static public IP addresses that can be used for Hosted Runners.", + "example": 50 + }, + "current_usage": { + "type": "integer", + "description": "The current number of static public IP addresses in use by Hosted Runners.", + "example": 17 + } + }, + "required": [ + "maximum", + "current_usage" + ] + } + }, + "required": [ + "public_ips" + ] + }, + "oidc-custom-sub": { + "title": "Actions OIDC Subject customization", + "description": "Actions OIDC Subject customization", + "type": "object", + "properties": { + "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "include_claim_keys" + ] + }, + "empty-object": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + }, + "enabled-repositories": { + "type": "string", + "description": "The policy that controls the repositories in the organization that are allowed to run GitHub Actions.", + "enum": [ + "all", + "none", + "selected" + ] + }, + "allowed-actions": { + "type": "string", + "description": "The permissions policy that controls the actions and reusable workflows that are allowed to run.", + "enum": [ + "all", + "local_only", + "selected" + ] + }, + "selected-actions-url": { + "type": "string", + "description": "The API URL to use to get or set the actions and reusable workflows that are allowed to run, when `allowed_actions` is set to `selected`." + }, + "sha-pinning-required": { + "type": "boolean", + "description": "Whether actions must be pinned to a full-length commit SHA." + }, + "actions-organization-permissions": { + "type": "object", + "properties": { + "enabled_repositories": { + "$ref": "#/components/schemas/enabled-repositories" + }, + "selected_repositories_url": { + "type": "string", + "description": "The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`." + }, + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" + }, + "selected_actions_url": { + "$ref": "#/components/schemas/selected-actions-url" + }, + "sha_pinning_required": { + "$ref": "#/components/schemas/sha-pinning-required" + } + }, + "required": [ + "enabled_repositories" + ] + }, + "actions-artifact-and-log-retention-response": { + "type": "object", + "properties": { + "days": { + "type": "integer", + "description": "The number of days artifacts and logs are retained" + }, + "maximum_allowed_days": { + "type": "integer", + "description": "The maximum number of days that can be configured" + } + }, + "required": [ + "days", + "maximum_allowed_days" + ] + }, + "actions-artifact-and-log-retention": { + "type": "object", + "properties": { + "days": { + "type": "integer", + "description": "The number of days to retain artifacts and logs" + } + }, + "required": [ + "days" + ] + }, + "actions-fork-pr-contributor-approval": { + "type": "object", + "properties": { + "approval_policy": { + "type": "string", + "enum": [ + "first_time_contributors_new_to_github", + "first_time_contributors", + "all_external_contributors" + ], + "description": "The policy that controls when fork PR workflows require approval from a maintainer." + } + }, + "required": [ + "approval_policy" + ] + }, + "actions-fork-pr-workflows-private-repos": { + "type": "object", + "required": [ + "run_workflows_from_fork_pull_requests", + "send_write_tokens_to_workflows", + "send_secrets_and_variables", + "require_approval_for_fork_pr_workflows" + ], + "properties": { + "run_workflows_from_fork_pull_requests": { + "type": "boolean", + "description": "Whether workflows triggered by pull requests from forks are allowed to run on private repositories." + }, + "send_write_tokens_to_workflows": { + "type": "boolean", + "description": "Whether GitHub Actions can create pull requests or submit approving pull request reviews from a workflow triggered by a fork pull request." + }, + "send_secrets_and_variables": { + "type": "boolean", + "description": "Whether to make secrets and variables available to workflows triggered by pull requests from forks." + }, + "require_approval_for_fork_pr_workflows": { + "type": "boolean", + "description": "Whether workflows triggered by pull requests from forks require approval from a repository administrator to run." + } + } + }, + "actions-fork-pr-workflows-private-repos-request": { + "type": "object", + "required": [ + "run_workflows_from_fork_pull_requests" + ], + "properties": { + "run_workflows_from_fork_pull_requests": { + "type": "boolean", + "description": "Whether workflows triggered by pull requests from forks are allowed to run on private repositories." + }, + "send_write_tokens_to_workflows": { + "type": "boolean", + "description": "Whether GitHub Actions can create pull requests or submit approving pull request reviews from a workflow triggered by a fork pull request." + }, + "send_secrets_and_variables": { + "type": "boolean", + "description": "Whether to make secrets and variables available to workflows triggered by pull requests from forks." + }, + "require_approval_for_fork_pr_workflows": { + "type": "boolean", + "description": "Whether workflows triggered by pull requests from forks require approval from a repository administrator to run." + } + } + }, + "selected-actions": { + "type": "object", + "properties": { + "github_owned_allowed": { + "type": "boolean", + "description": "Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization." + }, + "verified_allowed": { + "type": "boolean", + "description": "Whether actions from GitHub Marketplace verified creators are allowed. Set to `true` to allow all actions by GitHub Marketplace verified creators." + }, + "patterns_allowed": { + "type": "array", + "description": "Specifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`.\n\n> [!NOTE]\n> The `patterns_allowed` setting only applies to public repositories.", + "items": { + "type": "string" + } + } + } + }, + "self-hosted-runners-settings": { + "type": "object", + "required": [ + "enabled_repositories" + ], + "properties": { + "enabled_repositories": { + "type": "string", + "description": "The policy that controls whether self-hosted runners can be used by repositories in the organization", + "enum": [ + "all", + "selected", + "none" + ] + }, + "selected_repositories_url": { + "type": "string", + "description": "The URL to the endpoint for managing selected repositories for self-hosted runners in the organization" + } + } + }, + "actions-default-workflow-permissions": { + "type": "string", + "description": "The default workflow permissions granted to the GITHUB_TOKEN when running workflows.", + "enum": [ + "read", + "write" + ] + }, + "actions-can-approve-pull-request-reviews": { + "type": "boolean", + "description": "Whether GitHub Actions can approve pull requests. Enabling this can be a security risk." + }, + "actions-get-default-workflow-permissions": { + "type": "object", + "properties": { + "default_workflow_permissions": { + "$ref": "#/components/schemas/actions-default-workflow-permissions" + }, + "can_approve_pull_request_reviews": { + "$ref": "#/components/schemas/actions-can-approve-pull-request-reviews" + } + }, + "required": [ + "default_workflow_permissions", + "can_approve_pull_request_reviews" + ] + }, + "actions-set-default-workflow-permissions": { + "type": "object", + "properties": { + "default_workflow_permissions": { + "$ref": "#/components/schemas/actions-default-workflow-permissions" + }, + "can_approve_pull_request_reviews": { + "$ref": "#/components/schemas/actions-can-approve-pull-request-reviews" + } + } + }, + "runner-groups-org": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "selected_repositories_url": { + "description": "Link to the selected repositories resource for this runner group. Not present unless visibility was set to `selected`", + "type": "string" + }, + "runners_url": { + "type": "string" + }, + "hosted_runners_url": { + "type": "string" + }, + "network_configuration_id": { + "description": "The identifier of a hosted compute network configuration.", + "type": "string" + }, + "inherited": { + "type": "boolean" + }, + "inherited_allows_public_repositories": { + "type": "boolean" + }, + "allows_public_repositories": { + "type": "boolean" + }, + "workflow_restrictions_read_only": { + "description": "If `true`, the `restricted_to_workflows` and `selected_workflows` fields cannot be modified.", + "type": "boolean", + "default": false + }, + "restricted_to_workflows": { + "description": "If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array.", + "type": "boolean", + "default": false + }, + "selected_workflows": { + "description": "List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`.", + "type": "array", + "items": { + "type": "string", + "description": "Name of workflow the runner group should be allowed to run. Note that a ref, tag, or long SHA is required.", + "example": "octo-org/octo-repo/.github/workflows/deploy.yaml@main" + } + } + }, + "required": [ + "id", + "name", + "visibility", + "default", + "runners_url", + "inherited", + "allows_public_repositories" + ] + }, + "runner-label": { + "title": "Self hosted runner label", + "description": "A label for a self hosted runner", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Unique identifier of the label." + }, + "name": { + "type": "string", + "description": "Name of the label." + }, + "type": { + "type": "string", + "description": "The type of label. Read-only labels are applied automatically when the runner is configured.", + "enum": [ + "read-only", + "custom" + ] + } + }, + "required": [ + "name" + ] + }, + "runner": { + "title": "Self hosted runners", + "description": "A self hosted runner", + "type": "object", + "properties": { + "id": { + "description": "The ID of the runner.", + "type": "integer", + "example": 5 + }, + "runner_group_id": { + "description": "The ID of the runner group.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the runner.", + "type": "string", + "example": "iMac" + }, + "os": { + "description": "The Operating System of the runner.", + "type": "string", + "example": "macos" + }, + "status": { + "description": "The status of the runner.", + "type": "string", + "example": "online" + }, + "busy": { + "type": "boolean" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-label" + } + }, + "ephemeral": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "os", + "status", + "busy", + "labels" + ] + }, + "runner-application": { + "title": "Runner Application", + "description": "Runner Application", + "type": "object", + "properties": { + "os": { + "type": "string" + }, + "architecture": { + "type": "string" + }, + "download_url": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "temp_download_token": { + "description": "A short lived bearer token used to download the runner, if needed.", + "type": "string" + }, + "sha256_checksum": { + "type": "string" + } + }, + "required": [ + "os", + "architecture", + "download_url", + "filename" + ] + }, + "authentication-token": { + "title": "Authentication Token", + "description": "Authentication Token", + "type": "object", + "properties": { + "token": { + "description": "The token used for authentication", + "type": "string", + "example": "v1.1f699f1069f60xxx" + }, + "expires_at": { + "description": "The time this token expires", + "type": "string", + "format": "date-time", + "example": "2016-07-11T22:14:10Z" + }, + "permissions": { + "type": "object", + "example": { + "issues": "read", + "deployments": "write" + } + }, + "repositories": { + "description": "The repositories this token has access to", + "type": "array", + "items": { + "$ref": "#/components/schemas/repository" + } + }, + "single_file": { + "type": "string", + "example": "config.yaml", + "nullable": true + }, + "repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": [ + "all", + "selected" + ] + } + }, + "required": [ + "token", + "expires_at" + ] + }, + "organization-actions-secret": { + "title": "Actions Secret for an Organization", + "description": "Secrets for GitHub Actions for an organization.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a secret", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/secrets/my_secret/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility" + ] + }, + "actions-public-key": { + "title": "ActionsPublicKey", + "description": "The public key used for setting Actions Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + }, + "id": { + "type": "integer", + "example": 2 + }, + "url": { + "type": "string", + "example": "https://api.github.com/user/keys/2" + }, + "title": { + "type": "string", + "example": "ssh-rsa AAAAB3NzaC1yc2EAAA" + }, + "created_at": { + "type": "string", + "example": "2011-01-26T19:01:12Z" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "organization-actions-variable": { + "title": "Actions Variable for an Organization", + "description": "Organization variable for GitHub Actions.", + "type": "object", + "properties": { + "name": { + "description": "The name of the variable.", + "example": "USERNAME", + "type": "string" + }, + "value": { + "description": "The value of the variable.", + "example": "octocat", + "type": "string" + }, + "created_at": { + "description": "The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "example": "2019-01-24T22:45:36.000Z", + "type": "string", + "format": "date-time" + }, + "updated_at": { + "description": "The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "example": "2019-01-24T22:45:36.000Z", + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a variable", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/variables/USERNAME/repositories" + } + }, + "required": [ + "name", + "value", + "created_at", + "updated_at", + "visibility" + ] + }, + "artifact-deployment-record": { + "title": "Artifact Deployment Record", + "description": "Artifact Metadata Deployment Record", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "digest": { + "type": "string" + }, + "logical_environment": { + "type": "string" + }, + "physical_environment": { + "type": "string" + }, + "cluster": { + "type": "string" + }, + "deployment_name": { + "type": "string" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "attestation_id": { + "type": "integer", + "description": "The ID of the provenance attestation associated with the deployment record.", + "nullable": true + } + } + }, + "campaign-state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "campaign-alert-type": { + "title": "Campaign alert type", + "description": "Indicates the alert type of a campaign", + "type": "string", + "enum": [ + "code_scanning", + "secret_scanning" + ] + }, + "nullable-team-simple": { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VGVhbTE=" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/organizations/1/team/1/members{/member}" + }, + "name": { + "description": "Name of the team", + "type": "string", + "example": "Justice League" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true, + "example": "A great team." + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "example": "admin" + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "example": "closed" + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "example": "notifications_enabled" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" + }, + "slug": { + "type": "string", + "example": "justice-league" + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "example": "uid=example,ou=users,dc=github,dc=com", + "type": "string" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "type" + ], + "nullable": true + }, + "team": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + }, + "parent": { + "$ref": "#/components/schemas/nullable-team-simple" + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent", + "type" + ] + }, + "campaign-summary": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "state": { + "$ref": "#/components/schemas/campaign-state" + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": "string", + "format": "uri", + "nullable": true + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + }, + "code-scanning-analysis-tool-name": { + "type": "string", + "description": "The name of the tool used to generate the code scanning analysis." + }, + "code-scanning-analysis-tool-guid": { + "nullable": true, + "type": "string", + "description": "The GUID of the tool used to generate the code scanning analysis, if provided in the uploaded SARIF data." + }, + "code-scanning-alert-state-query": { + "type": "string", + "description": "State of a code scanning alert.", + "enum": [ + "open", + "closed", + "dismissed", + "fixed" + ] + }, + "code-scanning-alert-severity": { + "type": "string", + "description": "Severity of a code scanning alert.", + "enum": [ + "critical", + "high", + "medium", + "low", + "warning", + "note", + "error" + ] + }, + "alert-instances-url": { + "type": "string", + "description": "The REST API URL for fetching the list of instances for an alert.", + "format": "uri", + "readOnly": true + }, + "code-scanning-alert-state": { + "type": "string", + "description": "State of a code scanning alert.", + "nullable": true, + "enum": [ + "open", + "dismissed", + "fixed" + ] + }, + "code-scanning-alert-dismissed-reason": { + "type": "string", + "description": "**Required when the state is dismissed.** The reason for dismissing or closing the alert.", + "nullable": true, + "enum": [ + "false positive", + "won't fix", + "used in tests" + ] + }, + "code-scanning-alert-dismissed-comment": { + "type": "string", + "description": "The dismissal comment associated with the dismissal of the alert.", + "nullable": true, + "maxLength": 280 + }, + "code-scanning-alert-rule-summary": { + "type": "object", + "properties": { + "id": { + "nullable": true, + "type": "string", + "description": "A unique identifier for the rule used to detect the alert." + }, + "name": { + "type": "string", + "description": "The name of the rule used to detect the alert." + }, + "severity": { + "nullable": true, + "type": "string", + "description": "The severity of the alert.", + "enum": [ + "none", + "note", + "warning", + "error" + ] + }, + "security_severity_level": { + "nullable": true, + "type": "string", + "description": "The security severity of the alert.", + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "description": { + "type": "string", + "description": "A short description of the rule used to detect the alert." + }, + "full_description": { + "type": "string", + "description": "A description of the rule used to detect the alert." + }, + "tags": { + "nullable": true, + "type": "array", + "description": "A set of tags applicable for the rule.", + "items": { + "type": "string" + } + }, + "help": { + "nullable": true, + "type": "string", + "description": "Detailed documentation for the rule as GitHub Flavored Markdown." + }, + "help_uri": { + "nullable": true, + "type": "string", + "description": "A link to the documentation for the rule used to detect the alert." + } + } + }, + "code-scanning-analysis-tool-version": { + "nullable": true, + "type": "string", + "description": "The version of the tool used to generate the code scanning analysis." + }, + "code-scanning-analysis-tool": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + }, + "version": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-version" + }, + "guid": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-guid" + } + } + }, + "code-scanning-ref": { + "type": "string", + "description": "The Git reference, formatted as `refs/pull//merge`, `refs/pull//head`,\n`refs/heads/` or simply ``." + }, + "code-scanning-analysis-analysis-key": { + "type": "string", + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name." + }, + "code-scanning-alert-environment": { + "type": "string", + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed." + }, + "code-scanning-analysis-category": { + "type": "string", + "description": "Identifies the configuration under which the analysis was executed. Used to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code." + }, + "code-scanning-alert-location": { + "type": "object", + "description": "Describe a region within a file for the alert.", + "properties": { + "path": { + "type": "string" + }, + "start_line": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "start_column": { + "type": "integer" + }, + "end_column": { + "type": "integer" + } + } + }, + "code-scanning-alert-classification": { + "type": "string", + "description": "A classification of the file. For example to identify it as generated.", + "nullable": true, + "enum": [ + "source", + "generated", + "test", + "library" + ] + }, + "code-scanning-alert-instance": { + "type": "object", + "properties": { + "ref": { + "$ref": "#/components/schemas/code-scanning-ref" + }, + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + }, + "environment": { + "$ref": "#/components/schemas/code-scanning-alert-environment" + }, + "category": { + "$ref": "#/components/schemas/code-scanning-analysis-category" + }, + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" + }, + "commit_sha": { + "type": "string" + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "location": { + "$ref": "#/components/schemas/code-scanning-alert-location" + }, + "html_url": { + "type": "string" + }, + "classifications": { + "type": "array", + "description": "Classifications that have been applied to the file that triggered the alert.\nFor example identifying it as documentation, or a generated file.", + "items": { + "$ref": "#/components/schemas/code-scanning-alert-classification" + } + } + } + }, + "code-scanning-organization-alert-items": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/alert-updated-at" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "instances_url": { + "$ref": "#/components/schemas/alert-instances-url" + }, + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" + }, + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" + }, + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" + }, + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "rule": { + "$ref": "#/components/schemas/code-scanning-alert-rule-summary" + }, + "tool": { + "$ref": "#/components/schemas/code-scanning-analysis-tool" + }, + "most_recent_instance": { + "$ref": "#/components/schemas/code-scanning-alert-instance" + }, + "repository": { + "$ref": "#/components/schemas/simple-repository" + }, + "dismissal_approved_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "instances_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool", + "most_recent_instance", + "repository" + ] + }, + "nullable-codespace-machine": { + "type": "object", + "title": "Codespace machine", + "description": "A description of the machine powering a codespace.", + "properties": { + "name": { + "type": "string", + "description": "The name of the machine.", + "example": "standardLinux" + }, + "display_name": { + "type": "string", + "description": "The display name of the machine includes cores, memory, and storage.", + "example": "4 cores, 16 GB RAM, 64 GB storage" + }, + "operating_system": { + "type": "string", + "description": "The operating system of the machine.", + "example": "linux" + }, + "storage_in_bytes": { + "type": "integer", + "description": "How much storage is available to the codespace.", + "example": 68719476736 + }, + "memory_in_bytes": { + "type": "integer", + "description": "How much memory is available to the codespace.", + "example": 17179869184 + }, + "cpus": { + "type": "integer", + "description": "How many cores are available to the codespace.", + "example": 4 + }, + "prebuild_availability": { + "type": "string", + "description": "Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be \"null\" if prebuilds are not supported or prebuild availability could not be determined. Value will be \"none\" if no prebuild is available. Latest values \"ready\" and \"in_progress\" indicate the prebuild availability status.", + "example": "ready", + "enum": [ + "none", + "ready", + "in_progress" + ], + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "operating_system", + "storage_in_bytes", + "memory_in_bytes", + "cpus", + "prebuild_availability" + ], + "nullable": true + }, + "codespace": { + "type": "object", + "title": "Codespace", + "description": "A codespace.", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "description": "Automatically generated name of this codespace.", + "type": "string", + "example": "monalisa-octocat-hello-world-g4wpq6h95q" + }, + "display_name": { + "description": "Display name for this codespace.", + "type": "string", + "example": "bookish space pancake", + "nullable": true + }, + "environment_id": { + "description": "UUID identifying this codespace's environment.", + "type": "string", + "example": "26a7c758-7299-4a73-b978-5a92a7ae98a0", + "nullable": true + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "billable_owner": { + "$ref": "#/components/schemas/simple-user" + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "machine": { + "$ref": "#/components/schemas/nullable-codespace-machine" + }, + "devcontainer_path": { + "description": "Path to devcontainer.json from repo root used to create Codespace.", + "type": "string", + "example": ".devcontainer/example/devcontainer.json", + "nullable": true + }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "last_used_at": { + "description": "Last known time this codespace was started.", + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "state": { + "description": "State of this codespace.", + "enum": [ + "Unknown", + "Created", + "Queued", + "Provisioning", + "Available", + "Awaiting", + "Unavailable", + "Deleted", + "Moved", + "Shutdown", + "Archived", + "Starting", + "ShuttingDown", + "Failed", + "Exporting", + "Updating", + "Rebuilding" + ], + "example": "Available", + "type": "string" + }, + "url": { + "description": "API URL for this codespace.", + "type": "string", + "format": "uri" + }, + "git_status": { + "description": "Details about the codespace's git repository.", + "type": "object", + "properties": { + "ahead": { + "description": "The number of commits the local repository is ahead of the remote.", + "type": "integer", + "example": 0 + }, + "behind": { + "description": "The number of commits the local repository is behind the remote.", + "type": "integer", + "example": 0 + }, + "has_unpushed_changes": { + "description": "Whether the local repository has unpushed changes.", + "type": "boolean" + }, + "has_uncommitted_changes": { + "description": "Whether the local repository has uncommitted changes.", + "type": "boolean" + }, + "ref": { + "description": "The current branch (or SHA if in detached HEAD state) of the local repository.", + "type": "string", + "example": "main" + } + } + }, + "location": { + "description": "The initally assigned location of a new codespace.", + "enum": [ + "EastUs", + "SouthEastAsia", + "WestEurope", + "WestUs2" + ], + "example": "WestUs2", + "type": "string" + }, + "idle_timeout_minutes": { + "description": "The number of minutes of inactivity after which this codespace will be automatically stopped.", + "type": "integer", + "example": 60, + "nullable": true + }, + "web_url": { + "description": "URL to access this codespace on the web.", + "type": "string", + "format": "uri" + }, + "machines_url": { + "description": "API URL to access available alternate machine types for this codespace.", + "type": "string", + "format": "uri" + }, + "start_url": { + "description": "API URL to start this codespace.", + "type": "string", + "format": "uri" + }, + "stop_url": { + "description": "API URL to stop this codespace.", + "type": "string", + "format": "uri" + }, + "publish_url": { + "description": "API URL to publish this codespace to a new repository.", + "type": "string", + "format": "uri", + "nullable": true + }, + "pulls_url": { + "description": "API URL for the Pull Request associated with this codespace, if any.", + "type": "string", + "format": "uri", + "nullable": true + }, + "recent_folders": { + "type": "array", + "items": { + "type": "string" + } + }, + "runtime_constraints": { + "type": "object", + "properties": { + "allowed_port_privacy_settings": { + "description": "The privacy settings a user can select from when forwarding a port.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + }, + "pending_operation": { + "description": "Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it.", + "type": "boolean", + "nullable": true + }, + "pending_operation_disabled_reason": { + "description": "Text to show user when codespace is disabled by a pending operation", + "type": "string", + "nullable": true + }, + "idle_timeout_notice": { + "description": "Text to show user when codespace idle timeout minutes has been overriden by an organization policy", + "type": "string", + "nullable": true + }, + "retention_period_minutes": { + "description": "Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days).", + "type": "integer", + "example": 60, + "nullable": true + }, + "retention_expires_at": { + "description": "When a codespace will be auto-deleted based on the \"retention_period_minutes\" and \"last_used_at\"", + "type": "string", + "format": "date-time", + "example": "2011-01-26T20:01:12Z", + "nullable": true + }, + "last_known_stop_notice": { + "description": "The text to display to a user when a codespace has been stopped for a potentially actionable reason.", + "type": "string", + "example": "you've used 100% of your spending limit for Codespaces", + "nullable": true + } + }, + "required": [ + "id", + "name", + "environment_id", + "owner", + "billable_owner", + "repository", + "machine", + "prebuild", + "created_at", + "updated_at", + "last_used_at", + "state", + "url", + "git_status", + "location", + "idle_timeout_minutes", + "web_url", + "machines_url", + "start_url", + "stop_url", + "pulls_url", + "recent_folders" + ] + }, + "codespaces-org-secret": { + "title": "Codespaces Secret", + "description": "Secrets for a GitHub Codespace.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret", + "example": "SECRET_NAME", + "type": "string" + }, + "created_at": { + "description": "The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "updated_at": { + "description": "The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "The type of repositories in the organization that the secret is visible to", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "description": "The API URL at which the list of repositories this secret is visible to can be retrieved", + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/ORGANIZATION/codespaces/secrets/SECRET_NAME/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility" + ] + }, + "codespaces-public-key": { + "title": "CodespacesPublicKey", + "description": "The public key used for setting Codespaces secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + }, + "id": { + "type": "integer", + "example": 2 + }, + "url": { + "type": "string", + "example": "https://api.github.com/user/keys/2" + }, + "title": { + "type": "string", + "example": "ssh-rsa AAAAB3NzaC1yc2EAAA" + }, + "created_at": { + "type": "string", + "example": "2011-01-26T19:01:12Z" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "copilot-organization-seat-breakdown": { + "title": "Copilot Seat Breakdown", + "description": "The breakdown of Copilot Business seats for the organization.", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of seats being billed for the organization as of the current billing cycle." + }, + "added_this_cycle": { + "type": "integer", + "description": "Seats added during the current billing cycle." + }, + "pending_cancellation": { + "type": "integer", + "description": "The number of seats that are pending cancellation at the end of the current billing cycle." + }, + "pending_invitation": { + "type": "integer", + "description": "The number of users who have been invited to receive a Copilot seat through this organization." + }, + "active_this_cycle": { + "type": "integer", + "description": "The number of seats that have used Copilot during the current billing cycle." + }, + "inactive_this_cycle": { + "type": "integer", + "description": "The number of seats that have not used Copilot during the current billing cycle." + } + } + }, + "copilot-organization-details": { + "title": "Copilot Organization Details", + "description": "Information about the seat breakdown and policies set for an organization with a Copilot Business or Copilot Enterprise subscription.", + "type": "object", + "properties": { + "seat_breakdown": { + "$ref": "#/components/schemas/copilot-organization-seat-breakdown" + }, + "public_code_suggestions": { + "type": "string", + "description": "The organization policy for allowing or blocking suggestions matching public code (duplication detection filter).", + "enum": [ + "allow", + "block", + "unconfigured" + ] + }, + "ide_chat": { + "type": "string", + "description": "The organization policy for allowing or disallowing Copilot Chat in the IDE.", + "enum": [ + "enabled", + "disabled", + "unconfigured" + ] + }, + "platform_chat": { + "type": "string", + "description": "The organization policy for allowing or disallowing Copilot features on GitHub.com.", + "enum": [ + "enabled", + "disabled", + "unconfigured" + ] + }, + "cli": { + "type": "string", + "description": "The organization policy for allowing or disallowing Copilot CLI.", + "enum": [ + "enabled", + "disabled", + "unconfigured" + ] + }, + "seat_management_setting": { + "type": "string", + "description": "The mode of assigning new seats.", + "enum": [ + "assign_all", + "assign_selected", + "disabled", + "unconfigured" + ] + }, + "plan_type": { + "type": "string", + "description": "The Copilot plan of the organization, or the parent enterprise, when applicable.", + "enum": [ + "business", + "enterprise" + ] + } + }, + "required": [ + "seat_breakdown", + "public_code_suggestions", + "seat_management_setting" + ], + "additionalProperties": true + }, + "nullable-organization-simple": { + "title": "Organization Simple", + "description": "A GitHub organization.", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "github" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" + }, + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/issues" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/members{/member}" + }, + "public_members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/public_members{/member}" + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "description": { + "type": "string", + "example": "A great organization", + "nullable": true + } + }, + "required": [ + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description" + ], + "nullable": true + }, + "copilot-seat-details": { + "title": "Copilot Business Seat Detail", + "description": "Information about a Copilot Business seat assignment for a user, team, or organization.", + "type": "object", + "properties": { + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "organization": { + "$ref": "#/components/schemas/nullable-organization-simple" + }, + "assigning_team": { + "description": "The team through which the assignee is granted access to GitHub Copilot, if applicable.", + "oneOf": [ + { + "$ref": "#/components/schemas/team" + }, + { + "$ref": "#/components/schemas/enterprise-team" + } + ], + "nullable": true + }, + "pending_cancellation_date": { + "type": "string", + "format": "date", + "nullable": true, + "description": "The pending cancellation date for the seat, in `YYYY-MM-DD` format. This will be null unless the assignee's Copilot access has been canceled during the current billing cycle. If the seat has been cancelled, this corresponds to the start of the organization's next billing cycle." + }, + "last_activity_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "Timestamp of user's last GitHub Copilot activity, in ISO 8601 format." + }, + "last_activity_editor": { + "type": "string", + "nullable": true, + "description": "Last editor that was used by the user for a GitHub Copilot completion." + }, + "last_authenticated_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "Timestamp of the last time the user authenticated with GitHub Copilot, in ISO 8601 format." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp of when the assignee was last granted access to GitHub Copilot, in ISO 8601 format." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "deprecated": true, + "description": "**Closing down notice:** This field is no longer relevant and is closing down. Use the `created_at` field to determine when the assignee was last granted access to GitHub Copilot. Timestamp of when the assignee's GitHub Copilot access was last updated, in ISO 8601 format." + }, + "plan_type": { + "type": "string", + "description": "The Copilot plan of the organization, or the parent enterprise, when applicable.", + "enum": [ + "business", + "enterprise", + "unknown" + ] + } + }, + "required": [ + "created_at" + ], + "additionalProperties": false + }, + "copilot-ide-code-completions": { + "type": "object", + "description": "Usage metrics for Copilot editor code completions in the IDE.", + "nullable": true, + "additionalProperties": true, + "properties": { + "total_engaged_users": { + "type": "integer", + "description": "Number of users who accepted at least one Copilot code suggestion, across all active editors. Includes both full and partial acceptances." + }, + "languages": { + "type": "array", + "description": "Code completion metrics for active languages.", + "items": { + "type": "object", + "description": "Usage metrics for a given language for the given editor for Copilot code completions.", + "properties": { + "name": { + "type": "string", + "description": "Name of the language used for Copilot code completion suggestions." + }, + "total_engaged_users": { + "type": "integer", + "description": "Number of users who accepted at least one Copilot code completion suggestion for the given language. Includes both full and partial acceptances." + } + } + } + }, + "editors": { + "type": "array", + "items": { + "type": "object", + "description": "Copilot code completion metrics for active editors.", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "Name of the given editor." + }, + "total_engaged_users": { + "type": "integer", + "description": "Number of users who accepted at least one Copilot code completion suggestion for the given editor. Includes both full and partial acceptances." + }, + "models": { + "type": "array", + "description": "List of model metrics for custom models and the default model.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." + }, + "is_custom_model": { + "type": "boolean", + "description": "Indicates whether a model is custom or default." + }, + "custom_model_training_date": { + "type": "string", + "nullable": true, + "description": "The training date for the custom model." + }, + "total_engaged_users": { + "type": "integer", + "description": "Number of users who accepted at least one Copilot code completion suggestion for the given editor, for the given language and model. Includes both full and partial acceptances." + }, + "languages": { + "type": "array", + "description": "Code completion metrics for active languages, for the given editor.", + "items": { + "type": "object", + "description": "Usage metrics for a given language for the given editor for Copilot code completions.", + "properties": { + "name": { + "type": "string", + "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + }, + "total_engaged_users": { + "type": "integer", + "description": "Number of users who accepted at least one Copilot code completion suggestion for the given editor, for the given language. Includes both full and partial acceptances." + }, + "total_code_suggestions": { + "type": "integer", + "description": "The number of Copilot code suggestions generated for the given editor, for the given language." + }, + "total_code_acceptances": { + "type": "integer", + "description": "The number of Copilot code suggestions accepted for the given editor, for the given language. Includes both full and partial acceptances." + }, + "total_code_lines_suggested": { + "type": "integer", + "description": "The number of lines of code suggested by Copilot code completions for the given editor, for the given language." + }, + "total_code_lines_accepted": { + "type": "integer", + "description": "The number of lines of code accepted from Copilot code suggestions for the given editor, for the given language." + } + } + } + } + } + } + } + } + } + } + } + }, + "copilot-ide-chat": { + "type": "object", + "description": "Usage metrics for Copilot Chat in the IDE.", + "nullable": true, + "additionalProperties": true, + "properties": { + "total_engaged_users": { + "type": "integer", + "description": "Total number of users who prompted Copilot Chat in the IDE." + }, + "editors": { + "type": "array", + "items": { + "type": "object", + "description": "Copilot Chat metrics, for active editors.", + "properties": { + "name": { + "type": "string", + "description": "Name of the given editor." + }, + "total_engaged_users": { + "type": "integer", + "description": "The number of users who prompted Copilot Chat in the specified editor." + }, + "models": { + "type": "array", + "description": "List of model metrics for custom models and the default model.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the model used for Copilot Chat. If the default model is used will appear as 'default'." + }, + "is_custom_model": { + "type": "boolean", + "description": "Indicates whether a model is custom or default." + }, + "custom_model_training_date": { + "type": "string", + "nullable": true, + "description": "The training date for the custom model." + }, + "total_engaged_users": { + "type": "integer", + "description": "The number of users who prompted Copilot Chat in the given editor and model." + }, + "total_chats": { + "type": "integer", + "description": "The total number of chats initiated by users in the given editor and model." + }, + "total_chat_insertion_events": { + "type": "integer", + "description": "The number of times users accepted a code suggestion from Copilot Chat using the 'Insert Code' UI element, for the given editor." + }, + "total_chat_copy_events": { + "type": "integer", + "description": "The number of times users copied a code suggestion from Copilot Chat using the keyboard, or the 'Copy' UI element, for the given editor." + } + } + } + } + } + } + } + } + }, + "copilot-dotcom-chat": { + "type": "object", + "description": "Usage metrics for Copilot Chat in GitHub.com", + "nullable": true, + "additionalProperties": true, + "properties": { + "total_engaged_users": { + "type": "integer", + "description": "Total number of users who prompted Copilot Chat on github.com at least once." + }, + "models": { + "type": "array", + "description": "List of model metrics for a custom models and the default model.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the model used for Copilot Chat. If the default model is used will appear as 'default'." + }, + "is_custom_model": { + "type": "boolean", + "description": "Indicates whether a model is custom or default." + }, + "custom_model_training_date": { + "type": "string", + "description": "The training date for the custom model (if applicable).", + "nullable": true + }, + "total_engaged_users": { + "type": "integer", + "description": "Total number of users who prompted Copilot Chat on github.com at least once for each model." + }, + "total_chats": { + "type": "integer", + "description": "Total number of chats initiated by users on github.com." + } + } + } + } + } + }, + "copilot-dotcom-pull-requests": { + "type": "object", + "description": "Usage metrics for Copilot for pull requests.", + "nullable": true, + "additionalProperties": true, + "properties": { + "total_engaged_users": { + "type": "integer", + "description": "The number of users who used Copilot for Pull Requests on github.com to generate a pull request summary at least once." + }, + "repositories": { + "type": "array", + "description": "Repositories in which users used Copilot for Pull Requests to generate pull request summaries", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Repository name" + }, + "total_engaged_users": { + "type": "integer", + "description": "The number of users who generated pull request summaries using Copilot for Pull Requests in the given repository." + }, + "models": { + "type": "array", + "description": "List of model metrics for custom models and the default model.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the model used for Copilot pull request summaries. If the default model is used will appear as 'default'." + }, + "is_custom_model": { + "type": "boolean", + "description": "Indicates whether a model is custom or default." + }, + "custom_model_training_date": { + "type": "string", + "nullable": true, + "description": "The training date for the custom model." + }, + "total_pr_summaries_created": { + "type": "integer", + "description": "The number of pull request summaries generated using Copilot for Pull Requests in the given repository." + }, + "total_engaged_users": { + "type": "integer", + "description": "The number of users who generated pull request summaries using Copilot for Pull Requests in the given repository and model." + } + } + } + } + } + } + } + } + }, + "copilot-usage-metrics-day": { + "title": "Copilot Usage Metrics", + "description": "Copilot usage metrics for a given day.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date", + "description": "The date for which the usage metrics are aggregated, in `YYYY-MM-DD` format." + }, + "total_active_users": { + "type": "integer", + "description": "The total number of Copilot users with activity belonging to any Copilot feature, globally, for the given day. Includes passive activity such as receiving a code suggestion, as well as engagement activity such as accepting a code suggestion or prompting chat. Does not include authentication events. Is not limited to the individual features detailed on the endpoint." + }, + "total_engaged_users": { + "type": "integer", + "description": "The total number of Copilot users who engaged with any Copilot feature, for the given day. Examples include but are not limited to accepting a code suggestion, prompting Copilot chat, or triggering a PR Summary. Does not include authentication events. Is not limited to the individual features detailed on the endpoint." + }, + "copilot_ide_code_completions": { + "$ref": "#/components/schemas/copilot-ide-code-completions" + }, + "copilot_ide_chat": { + "$ref": "#/components/schemas/copilot-ide-chat" + }, + "copilot_dotcom_chat": { + "$ref": "#/components/schemas/copilot-dotcom-chat" + }, + "copilot_dotcom_pull_requests": { + "$ref": "#/components/schemas/copilot-dotcom-pull-requests" + } + }, + "required": [ + "date" + ], + "additionalProperties": true + }, + "organization-dependabot-secret": { + "title": "Dependabot Secret for an Organization", + "description": "Secrets for GitHub Dependabot for an organization.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a secret", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility" + ] + }, + "dependabot-public-key": { + "title": "DependabotPublicKey", + "description": "The public key used for setting Dependabot Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "nullable-minimal-repository": { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "has_discussions": { + "type": "boolean" + }, + "has_pull_requests": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "code_of_conduct": { + "$ref": "#/components/schemas/code-of-conduct" + }, + "license": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + } + }, + "nullable": true + }, + "forks": { + "type": "integer", + "example": 0 + }, + "open_issues": { + "type": "integer", + "example": 0 + }, + "watchers": { + "type": "integer", + "example": 0 + }, + "allow_forking": { + "type": "boolean" + }, + "web_commit_signoff_required": { + "type": "boolean", + "example": false + }, + "security_and_analysis": { + "$ref": "#/components/schemas/security-and-analysis" + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ], + "nullable": true + }, + "package": { + "title": "Package", + "description": "A software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package.", + "type": "string", + "example": "super-linter" + }, + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "version_count": { + "description": "The number of versions of the package.", + "type": "integer", + "example": 1 + }, + "visibility": { + "type": "string", + "example": "private", + "enum": [ + "private", + "public" + ] + }, + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "repository": { + "$ref": "#/components/schemas/nullable-minimal-repository" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "package_type", + "visibility", + "url", + "html_url", + "version_count", + "created_at", + "updated_at" + ] + }, + "organization-invitation": { + "title": "Organization Invitation", + "description": "Organization Invitation", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "role": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "failed_at": { + "type": "string", + "nullable": true + }, + "failed_reason": { + "type": "string", + "nullable": true + }, + "inviter": { + "$ref": "#/components/schemas/simple-user" + }, + "team_count": { + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "\"MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x\"" + }, + "invitation_teams_url": { + "type": "string", + "example": "\"https://api.github.com/organizations/16/invitations/1/teams\"" + }, + "invitation_source": { + "type": "string", + "example": "\"member\"" + } + }, + "required": [ + "id", + "login", + "email", + "role", + "created_at", + "inviter", + "team_count", + "invitation_teams_url", + "node_id" + ] + }, + "org-hook": { + "title": "Org Hook", + "description": "Org Hook", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1 + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/hooks/1" + }, + "ping_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/hooks/1/pings" + }, + "deliveries_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/hooks/1/deliveries" + }, + "name": { + "type": "string", + "example": "web" + }, + "events": { + "type": "array", + "example": [ + "push", + "pull_request" + ], + "items": { + "type": "string" + } + }, + "active": { + "type": "boolean", + "example": true + }, + "config": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "\"http://example.com/2\"" + }, + "insecure_ssl": { + "type": "string", + "example": "\"0\"" + }, + "content_type": { + "type": "string", + "example": "\"form\"" + }, + "secret": { + "type": "string", + "example": "\"********\"" + } + } + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T20:39:23Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T17:26:27Z" + }, + "type": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "type", + "name", + "active", + "events", + "config", + "ping_url", + "created_at", + "updated_at" + ] + }, + "api-insights-route-stats": { + "title": "Route Stats", + "description": "API Insights usage route stats for an actor", + "type": "array", + "items": { + "type": "object", + "properties": { + "http_method": { + "description": "The HTTP method", + "type": "string" + }, + "api_route": { + "description": "The API path's route template", + "type": "string" + }, + "total_request_count": { + "description": "The total number of requests within the queried time period", + "type": "integer", + "format": "int64" + }, + "rate_limited_request_count": { + "description": "The total number of requests that were rate limited within the queried time period", + "type": "integer", + "format": "int64" + }, + "last_rate_limited_timestamp": { + "type": "string", + "nullable": true + }, + "last_request_timestamp": { + "type": "string" + } + } + } + }, + "api-insights-subject-stats": { + "title": "Subject Stats", + "description": "API Insights usage subject stats for an organization", + "type": "array", + "items": { + "type": "object", + "properties": { + "subject_type": { + "type": "string" + }, + "subject_name": { + "type": "string" + }, + "subject_id": { + "type": "integer", + "format": "int64" + }, + "total_request_count": { + "type": "integer" + }, + "rate_limited_request_count": { + "type": "integer" + }, + "last_rate_limited_timestamp": { + "type": "string", + "nullable": true + }, + "last_request_timestamp": { + "type": "string" + } + } + } + }, + "api-insights-summary-stats": { + "title": "Summary Stats", + "description": "API Insights usage summary stats for an organization", + "type": "object", + "properties": { + "total_request_count": { + "description": "The total number of requests within the queried time period", + "type": "integer", + "format": "int64" + }, + "rate_limited_request_count": { + "description": "The total number of requests that were rate limited within the queried time period", + "type": "integer", + "format": "int64" + } + } + }, + "api-insights-time-stats": { + "title": "Time Stats", + "description": "API Insights usage time stats for an organization", + "type": "array", + "items": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "total_request_count": { + "type": "integer", + "format": "int64" + }, + "rate_limited_request_count": { + "type": "integer", + "format": "int64" + } + } + } + }, + "api-insights-user-stats": { + "title": "User Stats", + "description": "API Insights usage stats for a user", + "type": "array", + "items": { + "type": "object", + "properties": { + "actor_type": { + "type": "string" + }, + "actor_name": { + "type": "string" + }, + "actor_id": { + "type": "integer", + "format": "int64" + }, + "integration_id": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "oauth_application_id": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "total_request_count": { + "type": "integer" + }, + "rate_limited_request_count": { + "type": "integer" + }, + "last_rate_limited_timestamp": { + "type": "string", + "nullable": true + }, + "last_request_timestamp": { + "type": "string" + } + } + } + }, + "interaction-group": { + "type": "string", + "description": "The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect.", + "example": "collaborators_only", + "enum": [ + "existing_users", + "contributors_only", + "collaborators_only" + ] + }, + "interaction-limit-response": { + "title": "Interaction Limits", + "description": "Interaction limit settings.", + "type": "object", + "properties": { + "limit": { + "$ref": "#/components/schemas/interaction-group" + }, + "origin": { + "type": "string", + "example": "repository" + }, + "expires_at": { + "type": "string", + "format": "date-time", + "example": "2018-08-17T04:18:39Z" + } + }, + "required": [ + "limit", + "origin", + "expires_at" + ] + }, + "interaction-expiry": { + "type": "string", + "description": "The duration of the interaction restriction. Default: `one_day`.", + "example": "one_month", + "enum": [ + "one_day", + "three_days", + "one_week", + "one_month", + "six_months" + ] + }, + "interaction-limit": { + "title": "Interaction Restrictions", + "description": "Limit interactions to a specific type of user for a specified duration", + "type": "object", + "properties": { + "limit": { + "$ref": "#/components/schemas/interaction-group" + }, + "expiry": { + "$ref": "#/components/schemas/interaction-expiry" + } + }, + "required": [ + "limit" + ] + }, + "organization-create-issue-type": { + "type": "object", + "properties": { + "name": { + "description": "Name of the issue type.", + "type": "string" + }, + "is_enabled": { + "description": "Whether or not the issue type is enabled at the organization level.", + "type": "boolean" + }, + "description": { + "description": "Description of the issue type.", + "type": "string", + "nullable": true + }, + "color": { + "description": "Color for the issue type.", + "type": "string", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], + "nullable": true + } + }, + "required": [ + "name", + "is_enabled" + ] + }, + "organization-update-issue-type": { + "type": "object", + "properties": { + "name": { + "description": "Name of the issue type.", + "type": "string" + }, + "is_enabled": { + "description": "Whether or not the issue type is enabled at the organization level.", + "type": "boolean" + }, + "description": { + "description": "Description of the issue type.", + "type": "string", + "nullable": true + }, + "color": { + "description": "Color for the issue type.", + "type": "string", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], + "nullable": true + } + }, + "required": [ + "name", + "is_enabled" + ] + }, + "org-membership": { + "title": "Org Membership", + "description": "Org Membership", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/memberships/defunkt" + }, + "state": { + "type": "string", + "description": "The state of the member in the organization. The `pending` state indicates the user has not yet accepted an invitation.", + "example": "active", + "enum": [ + "active", + "pending" + ] + }, + "role": { + "type": "string", + "description": "The user's membership type in the organization.", + "example": "admin", + "enum": [ + "admin", + "member", + "billing_manager" + ] + }, + "direct_membership": { + "type": "boolean", + "description": "Whether the user has direct membership in the organization.", + "example": true + }, + "enterprise_teams_providing_indirect_membership": { + "type": "array", + "description": "The slugs of the enterprise teams providing the user with indirect membership in the organization.\nA limit of 100 enterprise team slugs is returned.", + "maxItems": 100, + "items": { + "type": "string" + }, + "example": [ + "ent:team-one", + "ent:team-two" + ] + }, + "organization_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "permissions": { + "type": "object", + "properties": { + "can_create_repository": { + "type": "boolean" + } + }, + "required": [ + "can_create_repository" + ] + } + }, + "required": [ + "state", + "role", + "organization_url", + "url", + "organization", + "user" + ] + }, + "migration": { + "title": "Migration", + "description": "A migration.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 79 + }, + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "guid": { + "type": "string", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516" + }, + "state": { + "type": "string", + "example": "pending" + }, + "lock_repositories": { + "type": "boolean", + "example": true + }, + "exclude_metadata": { + "type": "boolean" + }, + "exclude_git_data": { + "type": "boolean" + }, + "exclude_attachments": { + "type": "boolean" + }, + "exclude_releases": { + "type": "boolean" + }, + "exclude_owner_projects": { + "type": "boolean" + }, + "org_metadata_only": { + "type": "boolean" + }, + "repositories": { + "type": "array", + "description": "The repositories included in the migration. Only returned for export migrations.", + "items": { + "$ref": "#/components/schemas/repository" + } + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octo-org/migrations/79" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2015-07-06T15:33:38-07:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2015-07-06T15:33:38-07:00" + }, + "node_id": { + "type": "string" + }, + "archive_url": { + "type": "string", + "format": "uri" + }, + "exclude": { + "description": "Exclude related items from being returned in the response in order to improve performance of the request. The array can include any of: `\"repositories\"`.", + "type": "array", + "items": { + "description": "Allowed values that can be passed to the exclude parameter. The array can include any of: `\"repositories\"`.", + "type": "string" + } + } + }, + "required": [ + "id", + "node_id", + "owner", + "guid", + "state", + "lock_repositories", + "exclude_metadata", + "exclude_git_data", + "exclude_attachments", + "exclude_releases", + "exclude_owner_projects", + "org_metadata_only", + "repositories", + "url", + "created_at", + "updated_at" + ] + }, + "organization-role": { + "title": "Organization Role", + "description": "Organization roles", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the role.", + "type": "integer", + "format": "int64" + }, + "name": { + "description": "The name of the role.", + "type": "string" + }, + "description": { + "description": "A short description about who this role is for or what permissions it grants.", + "type": "string", + "nullable": true + }, + "base_role": { + "type": "string", + "nullable": true, + "description": "The system role from which this role inherits permissions.", + "enum": [ + "read", + "triage", + "write", + "maintain", + "admin" + ] + }, + "source": { + "type": "string", + "nullable": true, + "description": "Source answers the question, \"where did this role come from?\"", + "enum": [ + "Organization", + "Enterprise", + "Predefined" + ] + }, + "permissions": { + "description": "A list of permissions included in this role.", + "type": "array", + "items": { + "type": "string" + } + }, + "organization": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { + "description": "The date and time the role was created.", + "type": "string", + "format": "date-time" + }, + "updated_at": { + "description": "The date and time the role was last updated.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "permissions", + "organization", + "created_at", + "updated_at" + ] + }, + "team-role-assignment": { + "title": "A Role Assignment for a Team", + "description": "The Relationship a Team has with a role.", + "type": "object", + "properties": { + "assignment": { + "type": "string", + "description": "Determines if the team has a direct, indirect, or mixed relationship to a role", + "enum": [ + "direct", + "indirect", + "mixed" + ], + "example": "direct" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "$ref": "#/components/schemas/nullable-team-simple" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "type", + "parent" + ] + }, + "team-simple": { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VGVhbTE=" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/organizations/1/team/1/members{/member}" + }, + "name": { + "description": "Name of the team", + "type": "string", + "example": "Justice League" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true, + "example": "A great team." + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "example": "admin" + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "example": "closed" + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "example": "notifications_enabled" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" + }, + "slug": { + "type": "string", + "example": "justice-league" + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "example": "uid=example,ou=users,dc=github,dc=com", + "type": "string" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "type" + ] + }, + "user-role-assignment": { + "title": "A Role Assignment for a User", + "description": "The Relationship a User has with a role.", + "type": "object", + "properties": { + "assignment": { + "type": "string", + "description": "Determines if the user has a direct, indirect, or mixed relationship to a role", + "enum": [ + "direct", + "indirect", + "mixed" + ], + "example": "direct" + }, + "inherited_from": { + "description": "Team the user has gotten the role through", + "type": "array", + "items": { + "$ref": "#/components/schemas/team-simple" + } + }, + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + }, + "user_view_type": { + "type": "string", + "example": "public" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "package-version": { + "title": "Package Version", + "description": "A version of a software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package version.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package version.", + "type": "string", + "example": "latest" + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" + }, + "package_html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" + }, + "license": { + "type": "string", + "example": "MIT" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "metadata": { + "type": "object", + "title": "Package Version Metadata", + "properties": { + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "container": { + "type": "object", + "title": "Container Metadata", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "tags" + ] + }, + "docker": { + "type": "object", + "title": "Docker Metadata", + "properties": { + "tag": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "package_type" + ] + } + }, + "required": [ + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" + ] + }, + "organization-programmatic-access-grant-request": { + "title": "Simple Organization Programmatic Access Grant Request", + "description": "Minimal representation of an organization programmatic access grant request for enumerations", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Unique identifier of the request for access via fine-grained personal access token. The `pat_request_id` used to review PAT requests." + }, + "reason": { + "type": "string", + "nullable": true, + "description": "Reason for requesting access." + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "repository_selection": { + "type": "string", + "enum": [ + "none", + "all", + "subset" + ], + "description": "Type of repository selection requested." + }, + "repositories_url": { + "type": "string", + "description": "URL to the list of repositories requested to be accessed via fine-grained personal access token. Should only be followed when `repository_selection` is `subset`." + }, + "permissions": { + "type": "object", + "description": "Permissions requested, categorized by type of permission.", + "properties": { + "organization": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "repository": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "other": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "created_at": { + "type": "string", + "description": "Date and time when the request for access was created." + }, + "token_id": { + "type": "integer", + "description": "Unique identifier of the user's token. This field can also be found in audit log events and the organization's settings for their PAT grants." + }, + "token_name": { + "type": "string", + "description": "The name given to the user's token. This field can also be found in an organization's settings page for Active Tokens." + }, + "token_expired": { + "type": "boolean", + "description": "Whether the associated fine-grained personal access token has expired." + }, + "token_expires_at": { + "type": "string", + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token expires." + }, + "token_last_used_at": { + "type": "string", + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token was last used for authentication." + } + }, + "required": [ + "id", + "reason", + "owner", + "repository_selection", + "repositories_url", + "permissions", + "created_at", + "token_id", + "token_name", + "token_expired", + "token_expires_at", + "token_last_used_at" + ] + }, + "organization-programmatic-access-grant": { + "title": "Organization Programmatic Access Grant", + "description": "Minimal representation of an organization programmatic access grant for enumerations", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Unique identifier of the fine-grained personal access token grant. The `pat_id` used to get details about an approved fine-grained personal access token." + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "repository_selection": { + "type": "string", + "enum": [ + "none", + "all", + "subset" + ], + "description": "Type of repository selection requested." + }, + "repositories_url": { + "type": "string", + "description": "URL to the list of repositories the fine-grained personal access token can access. Only follow when `repository_selection` is `subset`." + }, + "permissions": { + "type": "object", + "description": "Permissions requested, categorized by type of permission.", + "properties": { + "organization": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "repository": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "other": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "access_granted_at": { + "type": "string", + "description": "Date and time when the fine-grained personal access token was approved to access the organization." + }, + "token_id": { + "type": "integer", + "description": "Unique identifier of the user's token. This field can also be found in audit log events and the organization's settings for their PAT grants." + }, + "token_name": { + "type": "string", + "description": "The name given to the user's token. This field can also be found in an organization's settings page for Active Tokens." + }, + "token_expired": { + "type": "boolean", + "description": "Whether the associated fine-grained personal access token has expired." + }, + "token_expires_at": { + "type": "string", + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token expires." + }, + "token_last_used_at": { + "type": "string", + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token was last used for authentication." + } + }, + "required": [ + "id", + "owner", + "repository_selection", + "repositories_url", + "permissions", + "access_granted_at", + "token_id", + "token_name", + "token_expired", + "token_expires_at", + "token_last_used_at" + ] + }, + "org-private-registry-configuration": { + "title": "Organization private registry", + "description": "Private registry configuration for an organization", + "type": "object", + "properties": { + "name": { + "description": "The name of the private registry configuration.", + "example": "MAVEN_REPOSITORY_SECRET", + "type": "string" + }, + "registry_type": { + "description": "The registry type.", + "enum": [ + "maven_repository", + "nuget_feed", + "goproxy_server", + "npm_registry", + "rubygems_server", + "cargo_registry", + "composer_repository", + "docker_registry", + "git_source", + "helm_registry", + "hex_organization", + "hex_repository", + "pub_repository", + "python_index", + "terraform_registry" + ], + "type": "string" + }, + "url": { + "description": "The URL of the private registry.", + "type": "string", + "format": "uri" + }, + "username": { + "description": "The username to use when authenticating with the private registry.", + "example": "monalisa", + "type": "string", + "nullable": true + }, + "replaces_base": { + "description": "Whether this private registry replaces the base registry (e.g., npmjs.org for npm, rubygems.org for rubygems). When `true`, Dependabot will only use this registry and will not fall back to the public registry. When `false` (default), Dependabot will use this registry for scoped packages but may fall back to the public registry for other packages.", + "type": "boolean", + "default": false + }, + "visibility": { + "description": "Which type of organization repositories have access to the private registry.", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "registry_type", + "visibility", + "created_at", + "updated_at" + ] + }, + "org-private-registry-configuration-with-selected-repositories": { + "title": "Organization private registry", + "description": "Private registry configuration for an organization", + "type": "object", + "properties": { + "name": { + "description": "The name of the private registry configuration.", + "example": "MAVEN_REPOSITORY_SECRET", + "type": "string" + }, + "registry_type": { + "description": "The registry type.", + "enum": [ + "maven_repository", + "nuget_feed", + "goproxy_server", + "npm_registry", + "rubygems_server", + "cargo_registry", + "composer_repository", + "docker_registry", + "git_source", + "helm_registry", + "hex_organization", + "hex_repository", + "pub_repository", + "python_index", + "terraform_registry" + ], + "type": "string" + }, + "url": { + "description": "The URL of the private registry.", + "type": "string", + "format": "uri" + }, + "username": { + "description": "The username to use when authenticating with the private registry.", + "example": "monalisa", + "type": "string" + }, + "replaces_base": { + "description": "Whether this private registry replaces the base registry (e.g., npmjs.org for npm, rubygems.org for rubygems). When `true`, Dependabot will only use this registry and will not fall back to the public registry. When `false` (default), Dependabot will use this registry for scoped packages but may fall back to the public registry for other packages.", + "type": "boolean", + "default": false + }, + "visibility": { + "description": "Which type of organization repositories have access to the private registry. `selected` means only the repositories specified by `selected_repository_ids` can access the private registry.", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository IDs that can access the organization private registry when `visibility` is set to `selected`.", + "items": { + "type": "integer" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "registry_type", + "visibility", + "created_at", + "updated_at" + ] + }, + "nullable-projects-v2-status-update": { + "title": "Projects v2 Status Update", + "description": "An status update belonging to a project", + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "The unique identifier of the status update." + }, + "node_id": { + "type": "string", + "description": "The node ID of the status update." + }, + "project_node_id": { + "type": "string", + "description": "The node ID of the project that this status update belongs to." + }, + "creator": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the status update was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the status update was last updated." + }, + "status": { + "type": "string", + "enum": [ + "INACTIVE", + "ON_TRACK", + "AT_RISK", + "OFF_TRACK", + "COMPLETE" + ], + "nullable": true, + "description": "The current status." + }, + "start_date": { + "type": "string", + "format": "date", + "example": "2022-04-28", + "description": "The start date of the period covered by the update." + }, + "target_date": { + "type": "string", + "format": "date", + "example": "2022-04-28", + "description": "The target date associated with the update." + }, + "body": { + "description": "Body of the status update", + "example": "The project is off to a great start!", + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "node_id", + "created_at", + "updated_at" + ], + "nullable": true + }, + "projects-v2": { + "title": "Projects v2 Project", + "description": "A projects v2 project", + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "The unique identifier of the project." + }, + "node_id": { + "type": "string", + "description": "The node ID of the project." + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "creator": { + "$ref": "#/components/schemas/simple-user" + }, + "title": { + "type": "string", + "description": "The project title." + }, + "description": { + "type": "string", + "nullable": true, + "description": "A short description of the project." + }, + "public": { + "type": "boolean", + "description": "Whether the project is visible to anyone with access to the owner." + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the project was closed." + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the project was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the project was last updated." + }, + "number": { + "type": "integer", + "description": "The project number." + }, + "short_description": { + "type": "string", + "nullable": true, + "description": "A concise summary of the project." + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the project was deleted." + }, + "deleted_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ], + "description": "The current state of the project." + }, + "latest_status_update": { + "$ref": "#/components/schemas/nullable-projects-v2-status-update" + }, + "is_template": { + "type": "boolean", + "description": "Whether this project is a template" + } + }, + "required": [ + "id", + "node_id", + "owner", + "creator", + "title", + "description", + "public", + "closed_at", + "created_at", + "updated_at", + "number", + "short_description", + "deleted_at", + "deleted_by" + ] + }, + "link": { + "title": "Link", + "description": "Hypermedia Link", + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": [ + "href" + ] + }, + "auto-merge": { + "title": "Auto merge", + "description": "The status of auto merging a pull request.", + "type": "object", + "properties": { + "enabled_by": { + "$ref": "#/components/schemas/simple-user" + }, + "merge_method": { + "type": "string", + "description": "The merge method to use.", + "enum": [ + "merge", + "squash", + "rebase" + ] + }, + "commit_title": { + "type": "string", + "description": "Title for the merge commit message." + }, + "commit_message": { + "type": "string", + "description": "Commit message for the merge commit." + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ], + "nullable": true + }, + "pull-request-simple": { + "title": "Pull Request Simple", + "description": "Pull Request Simple", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDExOlB1bGxSZXF1ZXN0MQ==" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347" + }, + "diff_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.diff" + }, + "patch_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "issue_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "commits_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "review_comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "statuses_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "number": { + "type": "integer", + "example": 1347 + }, + "state": { + "type": "string", + "example": "open" + }, + "locked": { + "type": "boolean", + "example": true + }, + "title": { + "type": "string", + "example": "new-feature" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body": { + "type": "string", + "example": "Please pull these awesome changes", + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "color": { + "type": "string" + }, + "default": { + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "description", + "color", + "default" + ] + } + }, + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "active_lock_reason": { + "type": "string", + "example": "too heated", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merged_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merge_commit_sha": { + "type": "string", + "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "nullable": true + }, + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + }, + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + }, + "nullable": true + }, + "requested_teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + }, + "nullable": true + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "$ref": "#/components/schemas/repository" + }, + "sha": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + } + }, + "required": [ + "label", + "ref", + "repo", + "sha", + "user" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "$ref": "#/components/schemas/repository" + }, + "sha": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + } + }, + "required": [ + "label", + "ref", + "repo", + "sha", + "user" + ] + }, + "_links": { + "type": "object", + "properties": { + "comments": { + "$ref": "#/components/schemas/link" + }, + "commits": { + "$ref": "#/components/schemas/link" + }, + "statuses": { + "$ref": "#/components/schemas/link" + }, + "html": { + "$ref": "#/components/schemas/link" + }, + "issue": { + "$ref": "#/components/schemas/link" + }, + "review_comments": { + "$ref": "#/components/schemas/link" + }, + "review_comment": { + "$ref": "#/components/schemas/link" + }, + "self": { + "$ref": "#/components/schemas/link" + } + }, + "required": [ + "comments", + "commits", + "statuses", + "html", + "issue", + "review_comments", + "review_comment", + "self" + ] + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "auto_merge": { + "$ref": "#/components/schemas/auto-merge" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "example": false, + "type": "boolean" + } + }, + "required": [ + "_links", + "assignee", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "merge_commit_sha", + "merged_at", + "milestone", + "number", + "patch_url", + "review_comment_url", + "review_comments_url", + "statuses_url", + "state", + "locked", + "title", + "updated_at", + "url", + "user", + "author_association", + "auto_merge" + ] + }, + "projects-v2-draft-issue": { + "title": "Draft Issue", + "description": "A draft issue in a project", + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "The ID of the draft issue" + }, + "node_id": { + "type": "string", + "description": "The node ID of the draft issue" + }, + "title": { + "type": "string", + "description": "The title of the draft issue" + }, + "body": { + "type": "string", + "description": "The body content of the draft issue", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The time the draft issue was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The time the draft issue was last updated" + } + }, + "required": [ + "id", + "node_id", + "title", + "user", + "created_at", + "updated_at" + ] + }, + "projects-v2-item-content-type": { + "title": "Projects v2 Item Content Type", + "description": "The type of content tracked in a project item", + "type": "string", + "enum": [ + "Issue", + "PullRequest", + "DraftIssue" + ] + }, + "projects-v2-item-simple": { + "title": "Projects v2 Item", + "description": "An item belonging to a project", + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "The unique identifier of the project item." + }, + "node_id": { + "type": "string", + "description": "The node ID of the project item." + }, + "content": { + "oneOf": [ + { + "$ref": "#/components/schemas/issue" + }, + { + "$ref": "#/components/schemas/pull-request-simple" + }, + { + "$ref": "#/components/schemas/projects-v2-draft-issue" + } + ], + "description": "The content represented by the item." + }, + "content_type": { + "$ref": "#/components/schemas/projects-v2-item-content-type" + }, + "creator": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was last updated." + }, + "archived_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the item was archived." + }, + "project_url": { + "type": "string", + "format": "uri", + "description": "The URL of the project this item belongs to." + }, + "item_url": { + "type": "string", + "format": "uri", + "description": "The URL of the item in the project." + } + }, + "required": [ + "id", + "content_type", + "created_at", + "updated_at", + "archived_at" + ] + }, + "projects-v2-single-select-options": { + "title": "Projects v2 Single Select Option", + "description": "An option for a single select field", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the option." + }, + "name": { + "type": "object", + "description": "The display name of the option, in raw text and HTML formats.", + "properties": { + "raw": { + "type": "string" + }, + "html": { + "type": "string" + } + }, + "required": [ + "raw", + "html" + ] + }, + "description": { + "type": "object", + "description": "The description of the option, in raw text and HTML formats.", + "properties": { + "raw": { + "type": "string" + }, + "html": { + "type": "string" + } + }, + "required": [ + "raw", + "html" + ] + }, + "color": { + "type": "string", + "description": "The color associated with the option." + } + }, + "required": [ + "id", + "name", + "description", + "color" + ] + }, + "projects-v2-iteration-settings": { + "title": "Projects v2 Iteration Setting", + "description": "An iteration setting for an iteration field", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the iteration setting." + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the iteration." + }, + "duration": { + "type": "integer", + "description": "The duration of the iteration in days." + }, + "title": { + "type": "object", + "properties": { + "raw": { + "type": "string" + }, + "html": { + "type": "string" + } + }, + "required": [ + "raw", + "html" + ], + "description": "The iteration title, in raw text and HTML formats." + }, + "completed": { + "type": "boolean", + "description": "Whether the iteration has been completed." + } + }, + "required": [ + "id", + "start_date", + "duration", + "title", + "completed" + ] + }, + "projects-v2-field": { + "title": "Projects v2 Field", + "description": "A field inside a projects v2 project", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the field." + }, + "node_id": { + "type": "string", + "description": "The node ID of the field." + }, + "project_url": { + "type": "string", + "description": "The API URL of the project that contains the field.", + "example": "https://api.github.com/projects/1" + }, + "name": { + "type": "string", + "description": "The name of the field." + }, + "data_type": { + "type": "string", + "description": "The field's data type.", + "enum": [ + "assignees", + "linked_pull_requests", + "reviewers", + "labels", + "milestone", + "repository", + "title", + "text", + "single_select", + "number", + "date", + "iteration", + "issue_type", + "parent_issue", + "sub_issues_progress" + ] + }, + "options": { + "type": "array", + "description": "The options available for single select fields.", + "items": { + "$ref": "#/components/schemas/projects-v2-single-select-options" + } + }, + "configuration": { + "type": "object", + "description": "Configuration for iteration fields.", + "properties": { + "start_day": { + "type": "integer", + "description": "The day of the week when the iteration starts." + }, + "duration": { + "type": "integer", + "description": "The duration of the iteration in days." + }, + "iterations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-v2-iteration-settings" + } + } + } + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the field was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the field was last updated." + } + }, + "required": [ + "id", + "name", + "data_type", + "created_at", + "updated_at", + "project_url" + ] + }, + "projects-v2-field-single-select-option": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The display name of the option." + }, + "color": { + "type": "string", + "description": "The color associated with the option.", + "enum": [ + "BLUE", + "GRAY", + "GREEN", + "ORANGE", + "PINK", + "PURPLE", + "RED", + "YELLOW" + ] + }, + "description": { + "type": "string", + "description": "The description of the option." + } + }, + "additionalProperties": false + }, + "projects-v2-field-iteration-configuration": { + "type": "object", + "description": "The configuration for iteration fields.", + "properties": { + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the first iteration." + }, + "duration": { + "type": "integer", + "description": "The default duration for iterations in days. Individual iterations can override this value." + }, + "iterations": { + "type": "array", + "description": "Zero or more iterations for the field.", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the iteration." + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the iteration." + }, + "duration": { + "type": "integer", + "description": "The duration of the iteration in days." + } + } + } + } + } + }, + "projects-v2-item-with-content": { + "title": "Projects v2 Item", + "description": "An item belonging to a project", + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "The unique identifier of the project item." + }, + "node_id": { + "type": "string", + "description": "The node ID of the project item." + }, + "project_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/monalisa/2/projectsV2/3", + "description": "The API URL of the project that contains this item." + }, + "content_type": { + "$ref": "#/components/schemas/projects-v2-item-content-type" + }, + "content": { + "type": "object", + "additionalProperties": true, + "nullable": true, + "description": "The content of the item, which varies by content type." + }, + "creator": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was last updated." + }, + "archived_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the item was archived." + }, + "item_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/monalisa/2/projectsV2/items/3", + "nullable": true, + "description": "The API URL of this item." + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + }, + "description": "The fields and values associated with this item." + } + }, + "required": [ + "id", + "content_type", + "created_at", + "updated_at", + "archived_at" + ] + }, + "projects-v2-view": { + "title": "Projects v2 View", + "description": "A view inside a projects v2 project", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the view." + }, + "number": { + "type": "integer", + "description": "The number of the view within the project." + }, + "name": { + "type": "string", + "description": "The name of the view." + }, + "layout": { + "type": "string", + "description": "The layout of the view.", + "enum": [ + "table", + "board", + "roadmap" + ] + }, + "node_id": { + "type": "string", + "description": "The node ID of the view." + }, + "project_url": { + "type": "string", + "description": "The API URL of the project that contains the view.", + "example": "https://api.github.com/orgs/octocat/projectsV2/1" + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The web URL of the view.", + "example": "https://github.com/orgs/octocat/projects/1/views/1" + }, + "creator": { + "allOf": [ + { + "$ref": "#/components/schemas/simple-user" + } + ] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the view was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the view was last updated." + }, + "filter": { + "type": "string", + "nullable": true, + "description": "The filter query for the view.", + "example": "is:issue is:open" + }, + "visible_fields": { + "type": "array", + "description": "The list of field IDs that are visible in the view.", + "items": { + "type": "integer" + } + }, + "sort_by": { + "type": "array", + "description": "The sorting configuration for the view. Each element is a tuple of [field_id, direction] where direction is \"asc\" or \"desc\".", + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } + } + }, + "group_by": { + "type": "array", + "description": "The list of field IDs used for horizontal grouping.", + "items": { + "type": "integer" + } + }, + "vertical_group_by": { + "type": "array", + "description": "The list of field IDs used for vertical grouping (board layout).", + "items": { + "type": "integer" + } + } + }, + "required": [ + "id", + "number", + "name", + "layout", + "node_id", + "project_url", + "html_url", + "creator", + "created_at", + "updated_at", + "visible_fields", + "sort_by", + "group_by", + "vertical_group_by" + ] + }, + "custom-property": { + "title": "Organization Custom Property", + "description": "Custom property defined on an organization", + "type": "object", + "properties": { + "property_name": { + "type": "string", + "description": "The name of the property" + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL that can be used to fetch, update, or delete info about this property via the API." + }, + "source_type": { + "type": "string", + "description": "The source type of the property", + "enum": [ + "organization", + "enterprise" + ], + "example": "organization" + }, + "value_type": { + "type": "string", + "example": "single_select", + "enum": [ + "string", + "single_select", + "multi_select", + "true_false", + "url" + ], + "description": "The type of the value for the property" + }, + "required": { + "type": "boolean", + "description": "Whether the property is required." + }, + "default_value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "nullable": true, + "description": "Default value of the property" + }, + "description": { + "type": "string", + "nullable": true, + "description": "Short description of the property" + }, + "allowed_values": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "description": "An ordered list of the allowed values of the property.\nThe property can have up to 200 allowed values." + }, + "values_editable_by": { + "type": "string", + "nullable": true, + "enum": [ + "org_actors", + "org_and_repo_actors" + ], + "example": "org_actors", + "description": "Who can edit the values of the property" + } + }, + "required": [ + "property_name", + "value_type" + ] + }, + "custom-property-set-payload": { + "title": "Custom Property Set Payload", + "description": "Custom property set payload", + "type": "object", + "properties": { + "value_type": { + "type": "string", + "example": "single_select", + "enum": [ + "string", + "single_select", + "multi_select", + "true_false", + "url" + ], + "description": "The type of the value for the property" + }, + "required": { + "type": "boolean", + "description": "Whether the property is required." + }, + "default_value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "nullable": true, + "description": "Default value of the property" + }, + "description": { + "type": "string", + "nullable": true, + "description": "Short description of the property" + }, + "allowed_values": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "description": "An ordered list of the allowed values of the property.\nThe property can have up to 200 allowed values." + }, + "values_editable_by": { + "type": "string", + "nullable": true, + "enum": [ + "org_actors", + "org_and_repo_actors" + ], + "example": "org_actors", + "description": "Who can edit the values of the property" + } + }, + "required": [ + "value_type" + ] + }, + "custom-property-value": { + "title": "Custom Property Value", + "description": "Custom property name and associated value", + "type": "object", + "properties": { + "property_name": { + "type": "string", + "description": "The name of the property" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "The value assigned to the property", + "nullable": true + } + }, + "required": [ + "property_name", + "value" + ] + }, + "org-repo-custom-property-values": { + "title": "Organization Repository Custom Property Values", + "description": "List of custom property values for a repository", + "type": "object", + "properties": { + "repository_id": { + "type": "integer", + "example": 1296269 + }, + "repository_name": { + "type": "string", + "example": "Hello-World" + }, + "repository_full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/custom-property-value" + }, + "description": "List of custom property names and associated values" + } + }, + "required": [ + "repository_id", + "repository_name", + "repository_full_name", + "properties" + ] + }, + "nullable-repository": { + "title": "Repository", + "description": "A repository on GitHub.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true, + "deprecated": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "default": false, + "type": "boolean", + "example": true + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_update_branch": { + "description": "Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.", + "default": false, + "type": "boolean", + "example": false + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "default": false, + "deprecated": true + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + }, + "anonymous_access_enabled": { + "type": "boolean", + "description": "Whether anonymous git access is enabled for this repository" + }, + "code_search_index_status": { + "type": "object", + "description": "The status of the code search index for this repository", + "properties": { + "lexical_search_ok": { + "type": "boolean" + }, + "lexical_commit_sha": { + "type": "string" + } + } + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ], + "nullable": true + }, + "code-of-conduct-simple": { + "title": "Code Of Conduct Simple", + "description": "Code of Conduct Simple", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/github/docs/community/code_of_conduct" + }, + "key": { + "type": "string", + "example": "citizen_code_of_conduct" + }, + "name": { + "type": "string", + "example": "Citizen Code of Conduct" + }, + "html_url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md" + } + }, + "required": [ + "url", + "key", + "name", + "html_url" + ] + }, + "full-repository": { + "title": "Full Repository", + "description": "Full Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "type": "integer", + "example": 108 + }, + "default_branch": { + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "octocat", + "atom", + "electron", + "API" + ] + }, + "has_issues": { + "type": "boolean", + "example": true + }, + "has_projects": { + "type": "boolean", + "example": true + }, + "has_wiki": { + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean", + "example": true + }, + "has_discussions": { + "type": "boolean", + "example": true + }, + "has_pull_requests": { + "type": "boolean", + "example": true + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "type": "string", + "example": "public" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "allow_rebase_merge": { + "type": "boolean", + "example": true + }, + "template_repository": { + "$ref": "#/components/schemas/nullable-repository" + }, + "temp_clone_token": { + "type": "string", + "nullable": true + }, + "allow_squash_merge": { + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "type": "boolean", + "example": true + }, + "allow_update_branch": { + "type": "boolean", + "example": true + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "example": false + }, + "squash_merge_commit_title": { + "type": "string", + "example": "PR_TITLE", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "example": "PR_BODY", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "example": "PR_TITLE", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "The default value for a merge commit title.\n\n - `PR_TITLE` - default to the pull request's title.\n - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "example": "PR_BODY", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "allow_forking": { + "type": "boolean", + "example": true + }, + "web_commit_signoff_required": { + "type": "boolean", + "example": false + }, + "subscribers_count": { + "type": "integer", + "example": 42 + }, + "network_count": { + "type": "integer", + "example": 0 + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "organization": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "parent": { + "$ref": "#/components/schemas/repository" + }, + "source": { + "$ref": "#/components/schemas/repository" + }, + "forks": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "anonymous_access_enabled": { + "description": "Whether anonymous git access is allowed.", + "default": true, + "type": "boolean" + }, + "code_of_conduct": { + "$ref": "#/components/schemas/code-of-conduct-simple" + }, + "security_and_analysis": { + "$ref": "#/components/schemas/security-and-analysis" + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "has_discussions", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at", + "network_count", + "subscribers_count" + ] + }, + "repository-rule-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" + ] + }, + "repository-ruleset-bypass-actor": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "required": [ + "actor_type" + ], + "properties": { + "actor_id": { + "type": "integer", + "nullable": true, + "description": "The ID of the actor that can bypass a ruleset. Required for `Integration`, `RepositoryRole`, and `Team` actor types. If `actor_type` is `OrganizationAdmin`, `actor_id` is ignored. If `actor_type` is `DeployKey`, this should be null. `OrganizationAdmin` is not applicable for personal repositories." + }, + "actor_type": { + "type": "string", + "enum": [ + "Integration", + "OrganizationAdmin", + "RepositoryRole", + "Team", + "DeployKey" + ], + "description": "The type of actor that can bypass a ruleset." + }, + "bypass_mode": { + "type": "string", + "description": "When the specified actor can bypass the ruleset. `pull_request` means that an actor can only bypass rules on pull requests. `pull_request` is not applicable for the `DeployKey` actor type. Also, `pull_request` is only applicable to branch rulesets. When `bypass_mode` is `exempt`, rules will not be run for that actor and a bypass audit entry will not be created.", + "enum": [ + "always", + "pull_request", + "exempt" + ], + "default": "always" + } + } + }, + "repository-ruleset-conditions": { + "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" + } + } + } + } + } + }, + "repository-ruleset-conditions-repository-name-target": { + "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." + } + } + } + }, + "required": [ + "repository_name" + ] + }, + "repository-ruleset-conditions-repository-id-target": { + "title": "Repository ruleset conditions for repository IDs", + "type": "object", + "description": "Parameters for a repository ID condition", + "properties": { + "repository_id": { + "type": "object", + "properties": { + "repository_ids": { + "type": "array", + "description": "The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass.", + "items": { + "type": "integer" + } + } + } + } + }, + "required": [ + "repository_id" + ] + }, + "repository-ruleset-conditions-repository-property-spec": { + "title": "Repository ruleset property targeting definition", + "type": "object", + "description": "Parameters for a targeting a repository property", + "properties": { + "name": { + "type": "string", + "description": "The name of the repository property to target" + }, + "property_values": { + "type": "array", + "description": "The values to match for the repository property", + "items": { + "type": "string" + } + }, + "source": { + "type": "string", + "description": "The source of the repository property. Defaults to 'custom' if not specified.", + "enum": [ + "custom", + "system" + ] + } + }, + "required": [ + "name", + "property_values" + ] + }, + "repository-ruleset-conditions-repository-property-target": { + "title": "Repository ruleset conditions for repository properties", + "type": "object", + "description": "Parameters for a repository property condition", + "properties": { + "repository_property": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "The repository properties and values to include. All of these properties must match for the condition to pass.", + "items": { + "$ref": "#/components/schemas/repository-ruleset-conditions-repository-property-spec" + } + }, + "exclude": { + "type": "array", + "description": "The repository properties and values to exclude. The condition will not pass if any of these properties match.", + "items": { + "$ref": "#/components/schemas/repository-ruleset-conditions-repository-property-spec" + } + } + } + } + }, + "required": [ + "repository_property" + ] + }, + "org-ruleset-conditions": { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for an organization ruleset.\nThe branch and tag rulesets conditions object should contain both `repository_name` and `ref_name` properties, or both `repository_id` and `ref_name` properties, or both `repository_property` and `ref_name` properties.\nThe push rulesets conditions object does not require the `ref_name` property.\nFor repository policy rulesets, the conditions object should only contain the `repository_name`, the `repository_id`, or the `repository_property`.", + "oneOf": [ + { + "type": "object", + "title": "repository_name_and_ref_name", + "description": "Conditions to target repositories by name and refs by name", + "allOf": [ + { + "$ref": "#/components/schemas/repository-ruleset-conditions" + }, + { + "$ref": "#/components/schemas/repository-ruleset-conditions-repository-name-target" + } + ] + }, + { + "type": "object", + "title": "repository_id_and_ref_name", + "description": "Conditions to target repositories by id and refs by name", + "allOf": [ + { + "$ref": "#/components/schemas/repository-ruleset-conditions" + }, + { + "$ref": "#/components/schemas/repository-ruleset-conditions-repository-id-target" + } + ] + }, + { + "type": "object", + "title": "repository_property_and_ref_name", + "description": "Conditions to target repositories by property and refs by name", + "allOf": [ + { + "$ref": "#/components/schemas/repository-ruleset-conditions" + }, + { + "$ref": "#/components/schemas/repository-ruleset-conditions-repository-property-target" + } + ] + } + ] + }, + "repository-rule-creation": { + "title": "creation", + "description": "Only allow users with bypass permission to create matching refs.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + "repository-rule-update": { + "title": "update", + "description": "Only allow users with bypass permission to update matching refs.", + "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" + ] + } + } + }, + "repository-rule-deletion": { + "title": "deletion", + "description": "Only allow users with bypass permissions to delete matching refs.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + "repository-rule-required-linear-history": { + "title": "required_linear_history", + "description": "Prevent merge commits from being pushed to matching refs.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + "repository-rule-merge-queue": { + "title": "merge_queue", + "description": "Merges must be performed via a merge queue.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "merge_queue" + ] + }, + "parameters": { + "type": "object", + "properties": { + "check_response_timeout_minutes": { + "type": "integer", + "description": "Maximum time for a required status check to report a conclusion. After this much time has elapsed, checks that have not reported a conclusion will be assumed to have failed", + "minimum": 1, + "maximum": 360 + }, + "grouping_strategy": { + "type": "string", + "description": "When set to ALLGREEN, the merge commit created by merge queue for each PR in the group must pass all required checks to merge. When set to HEADGREEN, only the commit at the head of the merge group, i.e. the commit containing changes from all of the PRs in the group, must pass its required checks to merge.", + "enum": [ + "ALLGREEN", + "HEADGREEN" + ] + }, + "max_entries_to_build": { + "type": "integer", + "description": "Limit the number of queued pull requests requesting checks and workflow runs at the same time.", + "minimum": 0, + "maximum": 100 + }, + "max_entries_to_merge": { + "type": "integer", + "description": "The maximum number of PRs that will be merged together in a group.", + "minimum": 0, + "maximum": 100 + }, + "merge_method": { + "type": "string", + "description": "Method to use when merging changes from queued pull requests.", + "enum": [ + "MERGE", + "SQUASH", + "REBASE" + ] + }, + "min_entries_to_merge": { + "type": "integer", + "description": "The minimum number of PRs that will be merged together in a group.", + "minimum": 0, + "maximum": 100 + }, + "min_entries_to_merge_wait_minutes": { + "type": "integer", + "description": "The time merge queue should wait after the first PR is added to the queue for the minimum group size to be met. After this time has elapsed, the minimum group size will be ignored and a smaller group will be merged.", + "minimum": 0, + "maximum": 360 + } + }, + "required": [ + "check_response_timeout_minutes", + "grouping_strategy", + "max_entries_to_build", + "max_entries_to_merge", + "merge_method", + "min_entries_to_merge", + "min_entries_to_merge_wait_minutes" + ] + } + } + }, + "repository-rule-required-deployments": { + "title": "required_deployments", + "description": "Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this 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" + ] + } + } + }, + "repository-rule-required-signatures": { + "title": "required_signatures", + "description": "Commits pushed to matching refs must have verified signatures.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + "repository-rule-params-reviewer": { + "title": "Reviewer", + "description": "A required reviewing team", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "ID of the reviewer which must review changes to matching files." + }, + "type": { + "type": "string", + "description": "The type of the reviewer", + "enum": [ + "Team" + ] + } + }, + "required": [ + "id", + "type" + ] + }, + "repository-rule-params-required-reviewer-configuration": { + "title": "RequiredReviewerConfiguration", + "description": "A reviewing team, and file patterns describing which files they must approve changes to.", + "type": "object", + "properties": { + "file_patterns": { + "type": "array", + "description": "Array of file patterns. Pull requests which change matching files must be approved by the specified team. File patterns use fnmatch syntax.", + "items": { + "type": "string" + } + }, + "minimum_approvals": { + "type": "integer", + "description": "Minimum number of approvals required from the specified team. If set to zero, the team will be added to the pull request but approval is optional." + }, + "reviewer": { + "$ref": "#/components/schemas/repository-rule-params-reviewer" + } + }, + "required": [ + "file_patterns", + "minimum_approvals", + "reviewer" + ] + }, + "repository-rule-pull-request": { + "title": "pull_request", + "description": "Require all commits be made to a non-target branch and submitted via a pull request before they can be merged.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "allowed_merge_methods": { + "type": "array", + "description": "Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.", + "items": { + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "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_reviewers": { + "type": "array", + "description": "> [!NOTE]\n> `required_reviewers` is in beta and subject to change.\n\nA collection of reviewers and associated file patterns. Each reviewer has a list of file patterns which determine the files that reviewer is required to review.", + "items": { + "$ref": "#/components/schemas/repository-rule-params-required-reviewer-configuration" + } + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + "repository-rule-params-status-check-configuration": { + "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" + ] + }, + "repository-rule-required-status-checks": { + "title": "required_status_checks", + "description": "Choose which status checks must pass before the ref is updated. When enabled, commits must first be pushed to another ref where the checks pass.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "do_not_enforce_on_create": { + "type": "boolean", + "description": "Allow repositories and branches to be created if a check would otherwise prohibit it." + }, + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "$ref": "#/components/schemas/repository-rule-params-status-check-configuration" + } + }, + "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" + ] + } + } + }, + "repository-rule-non-fast-forward": { + "title": "non_fast_forward", + "description": "Prevent users with push access from force pushing to refs.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + "repository-rule-commit-message-pattern": { + "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 appears when configuring it." + }, + "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" + ] + } + } + }, + "repository-rule-commit-author-email-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 appears when configuring it." + }, + "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" + ] + } + } + }, + "repository-rule-committer-email-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 appears when configuring it." + }, + "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" + ] + } + } + }, + "repository-rule-branch-name-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 appears when configuring it." + }, + "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" + ] + } + } + }, + "repository-rule-tag-name-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 appears when configuring it." + }, + "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" + ] + } + } + }, + "repository-rule-file-path-restriction": { + "title": "file_path_restriction", + "description": "Prevent commits that include changes in specified file and folder paths from being pushed to the commit graph. This includes absolute paths that contain file names.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_path_restriction" + ] + }, + "parameters": { + "type": "object", + "properties": { + "restricted_file_paths": { + "type": "array", + "description": "The file paths that are restricted from being pushed to the commit graph.", + "items": { + "type": "string" + } + } + }, + "required": [ + "restricted_file_paths" + ] + } + } + }, + "repository-rule-max-file-path-length": { + "title": "max_file_path_length", + "description": "Prevent commits that include file paths that exceed the specified character limit from being pushed to the commit graph.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "max_file_path_length" + ] + }, + "parameters": { + "type": "object", + "properties": { + "max_file_path_length": { + "type": "integer", + "description": "The maximum amount of characters allowed in file paths.", + "minimum": 1, + "maximum": 32767 + } + }, + "required": [ + "max_file_path_length" + ] + } + } + }, + "repository-rule-file-extension-restriction": { + "title": "file_extension_restriction", + "description": "Prevent commits that include files with specified file extensions from being pushed to the commit graph.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_extension_restriction" + ] + }, + "parameters": { + "type": "object", + "properties": { + "restricted_file_extensions": { + "type": "array", + "description": "The file extensions that are restricted from being pushed to the commit graph.", + "items": { + "type": "string" + } + } + }, + "required": [ + "restricted_file_extensions" + ] + } + } + }, + "repository-rule-max-file-size": { + "title": "max_file_size", + "description": "Prevent commits with individual files that exceed the specified limit from being pushed to the commit graph.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "max_file_size" + ] + }, + "parameters": { + "type": "object", + "properties": { + "max_file_size": { + "type": "integer", + "description": "The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS).", + "minimum": 1, + "maximum": 100 + } + }, + "required": [ + "max_file_size" + ] + } + } + }, + "repository-rule-params-restricted-commits": { + "title": "RestrictedCommits", + "description": "Restricted commit", + "type": "object", + "properties": { + "oid": { + "type": "string", + "description": "Full or abbreviated commit hash to reject" + }, + "reason": { + "type": "string", + "description": "Reason for restriction" + } + }, + "required": [ + "oid" + ] + }, + "repository-rule-params-workflow-file-reference": { + "title": "WorkflowFileReference", + "description": "A workflow that must run for this rule to pass", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The path to the workflow file" + }, + "ref": { + "type": "string", + "description": "The ref (branch or tag) of the workflow file to use" + }, + "repository_id": { + "type": "integer", + "description": "The ID of the repository where the workflow is defined" + }, + "sha": { + "type": "string", + "description": "The commit SHA of the workflow file to use" + } + }, + "required": [ + "path", + "repository_id" + ] + }, + "repository-rule-workflows": { + "title": "workflows", + "description": "Require all changes made to a targeted branch to pass the specified workflows before they can be merged.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "workflows" + ] + }, + "parameters": { + "type": "object", + "properties": { + "do_not_enforce_on_create": { + "type": "boolean", + "description": "Allow repositories and branches to be created if a check would otherwise prohibit it." + }, + "workflows": { + "type": "array", + "description": "Workflows that must pass for this rule to pass.", + "items": { + "$ref": "#/components/schemas/repository-rule-params-workflow-file-reference" + } + } + }, + "required": [ + "workflows" + ] + } + } + }, + "repository-rule-params-code-scanning-tool": { + "title": "CodeScanningTool", + "description": "A tool that must provide code scanning results for this rule to pass.", + "type": "object", + "properties": { + "alerts_threshold": { + "type": "string", + "description": "The severity level at which code scanning results that raise alerts block a reference update. For more information on alert severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"", + "enum": [ + "none", + "errors", + "errors_and_warnings", + "all" + ] + }, + "security_alerts_threshold": { + "type": "string", + "description": "The severity level at which code scanning results that raise security alerts block a reference update. For more information on security severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"", + "enum": [ + "none", + "critical", + "high_or_higher", + "medium_or_higher", + "all" + ] + }, + "tool": { + "type": "string", + "description": "The name of a code scanning tool" + } + }, + "required": [ + "alerts_threshold", + "security_alerts_threshold", + "tool" + ] + }, + "repository-rule-code-scanning": { + "title": "code_scanning", + "description": "Choose which tools must provide code scanning results before the reference is updated. When configured, code scanning must be enabled and have results for both the commit and the reference being updated.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_scanning" + ] + }, + "parameters": { + "type": "object", + "properties": { + "code_scanning_tools": { + "type": "array", + "description": "Tools that must provide code scanning results for this rule to pass.", + "items": { + "$ref": "#/components/schemas/repository-rule-params-code-scanning-tool" + } + } + }, + "required": [ + "code_scanning_tools" + ] + } + } + }, + "repository-rule-copilot-code-review": { + "title": "copilot_code_review", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "copilot_code_review" + ] + }, + "parameters": { + "type": "object", + "properties": { + "review_draft_pull_requests": { + "type": "boolean", + "description": "Copilot automatically reviews draft pull requests before they are marked as ready for review." + }, + "review_on_push": { + "type": "boolean", + "description": "Copilot automatically reviews each new push to the pull request." + } + } + } + } + }, + "repository-rule-params-copilot-code-review-analysis-tool": { + "title": "CopilotCodeReviewAnalysisTool", + "description": "A tool that must provide code review results for this rule to pass.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of a code review analysis tool", + "enum": [ + "CodeQL", + "ESLint", + "PMD" + ] + } + }, + "required": [ + "name" + ] + }, + "repository-rule": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "$ref": "#/components/schemas/repository-rule-creation" + }, + { + "$ref": "#/components/schemas/repository-rule-update" + }, + { + "$ref": "#/components/schemas/repository-rule-deletion" + }, + { + "$ref": "#/components/schemas/repository-rule-required-linear-history" + }, + { + "$ref": "#/components/schemas/repository-rule-merge-queue" + }, + { + "$ref": "#/components/schemas/repository-rule-required-deployments" + }, + { + "$ref": "#/components/schemas/repository-rule-required-signatures" + }, + { + "$ref": "#/components/schemas/repository-rule-pull-request" + }, + { + "$ref": "#/components/schemas/repository-rule-required-status-checks" + }, + { + "$ref": "#/components/schemas/repository-rule-non-fast-forward" + }, + { + "$ref": "#/components/schemas/repository-rule-commit-message-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-commit-author-email-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-file-path-restriction" + }, + { + "$ref": "#/components/schemas/repository-rule-max-file-path-length" + }, + { + "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + }, + { + "$ref": "#/components/schemas/repository-rule-max-file-size" + }, + { + "$ref": "#/components/schemas/repository-rule-workflows" + }, + { + "$ref": "#/components/schemas/repository-rule-code-scanning" + }, + { + "$ref": "#/components/schemas/repository-rule-copilot-code-review" + } + ] + }, + "repository-ruleset": { + "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", + "push", + "repository" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization", + "Enterprise" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "$ref": "#/components/schemas/repository-rule-enforcement" + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + } + }, + "current_user_can_bypass": { + "type": "string", + "description": "The bypass type of the user making the API request for this ruleset. This field is only returned when\nquerying the repository-level endpoint.", + "enum": [ + "always", + "pull_requests_only", + "never", + "exempt" + ] + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + }, + "html": { + "type": "object", + "nullable": true, + "properties": { + "href": { + "type": "string", + "description": "The html URL of the ruleset" + } + } + } + } + }, + "conditions": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/repository-ruleset-conditions" + }, + { + "$ref": "#/components/schemas/org-ruleset-conditions" + } + ] + }, + "rules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-rule" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "org-rules": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "$ref": "#/components/schemas/repository-rule-creation" + }, + { + "$ref": "#/components/schemas/repository-rule-update" + }, + { + "$ref": "#/components/schemas/repository-rule-deletion" + }, + { + "$ref": "#/components/schemas/repository-rule-required-linear-history" + }, + { + "$ref": "#/components/schemas/repository-rule-required-deployments" + }, + { + "$ref": "#/components/schemas/repository-rule-required-signatures" + }, + { + "$ref": "#/components/schemas/repository-rule-pull-request" + }, + { + "$ref": "#/components/schemas/repository-rule-required-status-checks" + }, + { + "$ref": "#/components/schemas/repository-rule-non-fast-forward" + }, + { + "$ref": "#/components/schemas/repository-rule-commit-message-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-commit-author-email-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-file-path-restriction" + }, + { + "$ref": "#/components/schemas/repository-rule-max-file-path-length" + }, + { + "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + }, + { + "$ref": "#/components/schemas/repository-rule-max-file-size" + }, + { + "$ref": "#/components/schemas/repository-rule-workflows" + }, + { + "$ref": "#/components/schemas/repository-rule-code-scanning" + }, + { + "$ref": "#/components/schemas/repository-rule-copilot-code-review" + } + ] + }, + "rule-suites": { + "title": "Rule Suites", + "description": "Response", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the rule insight." + }, + "actor_id": { + "type": "integer", + "description": "The number that identifies the user." + }, + "actor_name": { + "type": "string", + "description": "The handle for the GitHub user account." + }, + "before_sha": { + "type": "string", + "description": "The first commit sha before the push evaluation." + }, + "after_sha": { + "type": "string", + "description": "The last commit sha in the push evaluation." + }, + "ref": { + "type": "string", + "description": "The ref name that the evaluation ran on." + }, + "repository_id": { + "type": "integer", + "description": "The ID of the repository associated with the rule evaluation." + }, + "repository_name": { + "type": "string", + "description": "The name of the repository without the `.git` extension." + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z" + }, + "result": { + "type": "string", + "enum": [ + "pass", + "fail", + "bypass" + ], + "description": "The result of the rule evaluations for rules with the `active` enforcement status." + }, + "evaluation_result": { + "type": "string", + "enum": [ + "pass", + "fail", + "bypass" + ], + "description": "The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`." + } + } + } + }, + "rule-suite": { + "title": "Rule Suite", + "description": "Response", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the rule insight." + }, + "actor_id": { + "type": "integer", + "description": "The number that identifies the user.", + "nullable": true + }, + "actor_name": { + "type": "string", + "description": "The handle for the GitHub user account.", + "nullable": true + }, + "before_sha": { + "type": "string", + "description": "The previous commit SHA of the ref." + }, + "after_sha": { + "type": "string", + "description": "The new commit SHA of the ref." + }, + "ref": { + "type": "string", + "description": "The ref name that the evaluation ran on." + }, + "repository_id": { + "type": "integer", + "description": "The ID of the repository associated with the rule evaluation." + }, + "repository_name": { + "type": "string", + "description": "The name of the repository without the `.git` extension." + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z" + }, + "result": { + "type": "string", + "enum": [ + "pass", + "fail", + "bypass" + ], + "description": "The result of the rule evaluations for rules with the `active` enforcement status." + }, + "evaluation_result": { + "type": "string", + "nullable": true, + "enum": [ + "pass", + "fail", + "bypass" + ], + "description": "The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`. Null if no rules with `evaluate` enforcement status were run." + }, + "rule_evaluations": { + "type": "array", + "description": "Details on the evaluated rules.", + "items": { + "type": "object", + "properties": { + "rule_source": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of rule source." + }, + "id": { + "type": "integer", + "nullable": true, + "description": "The ID of the rule source." + }, + "name": { + "type": "string", + "nullable": true, + "description": "The name of the rule source." + } + } + }, + "enforcement": { + "type": "string", + "enum": [ + "active", + "evaluate", + "deleted ruleset" + ], + "description": "The enforcement level of this rule source." + }, + "result": { + "type": "string", + "enum": [ + "pass", + "fail" + ], + "description": "The result of the evaluation of the individual rule." + }, + "rule_type": { + "type": "string", + "description": "The type of rule." + }, + "details": { + "type": "string", + "nullable": true, + "description": "The detailed failure message for the rule. Null if the rule passed." + } + } + } + } + } + }, + "ruleset-version": { + "title": "Ruleset version", + "type": "object", + "description": "The historical version of a ruleset", + "required": [ + "version_id", + "actor", + "updated_at" + ], + "properties": { + "version_id": { + "type": "integer", + "description": "The ID of the previous version of the ruleset" + }, + "actor": { + "type": "object", + "description": "The actor who updated the ruleset", + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string" + } + } + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "ruleset-version-with-state": { + "allOf": [ + { + "$ref": "#/components/schemas/ruleset-version" + }, + { + "type": "object", + "required": [ + "state" + ], + "properties": { + "state": { + "type": "object", + "description": "The state of the ruleset version" + } + } + } + ] + }, + "nullable-alert-updated-at": { + "type": "string", + "description": "The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "secret-scanning-alert-state": { + "description": "Sets the state of the secret scanning alert. You must provide `resolution` when you set the state to `resolved`.", + "type": "string", + "enum": [ + "open", + "resolved" + ] + }, + "secret-scanning-alert-resolution": { + "type": "string", + "description": "**Required when the `state` is `resolved`.** The reason for resolving the alert.", + "nullable": true, + "enum": [ + "false_positive", + "wont_fix", + "revoked", + "used_in_tests" + ] + }, + "secret-scanning-location-commit": { + "description": "Represents a 'commit' secret scanning location type. This location type shows that a secret was detected inside a commit to a repository.", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The file path in the repository", + "example": "/example/secrets.txt" + }, + "start_line": { + "type": "number", + "description": "Line number at which the secret starts in the file" + }, + "end_line": { + "type": "number", + "description": "Line number at which the secret ends in the file" + }, + "start_column": { + "type": "number", + "description": "The column at which the secret starts within the start line when the file is interpreted as 8BIT ASCII" + }, + "end_column": { + "type": "number", + "description": "The column at which the secret ends within the end line when the file is interpreted as 8BIT ASCII" + }, + "blob_sha": { + "type": "string", + "description": "SHA-1 hash ID of the associated blob", + "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" + }, + "blob_url": { + "type": "string", + "description": "The API URL to get the associated blob resource" + }, + "commit_sha": { + "type": "string", + "description": "SHA-1 hash ID of the associated commit", + "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" + }, + "commit_url": { + "type": "string", + "description": "The API URL to get the associated commit resource" + } + }, + "required": [ + "path", + "start_line", + "end_line", + "start_column", + "end_column", + "blob_sha", + "blob_url", + "commit_sha", + "commit_url" + ] + }, + "secret-scanning-location-wiki-commit": { + "description": "Represents a 'wiki_commit' secret scanning location type. This location type shows that a secret was detected inside a commit to a repository wiki.", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The file path of the wiki page", + "example": "/example/Home.md" + }, + "start_line": { + "type": "number", + "description": "Line number at which the secret starts in the file" + }, + "end_line": { + "type": "number", + "description": "Line number at which the secret ends in the file" + }, + "start_column": { + "type": "number", + "description": "The column at which the secret starts within the start line when the file is interpreted as 8-bit ASCII." + }, + "end_column": { + "type": "number", + "description": "The column at which the secret ends within the end line when the file is interpreted as 8-bit ASCII." + }, + "blob_sha": { + "type": "string", + "description": "SHA-1 hash ID of the associated blob", + "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" + }, + "page_url": { + "type": "string", + "description": "The GitHub URL to get the associated wiki page", + "example": "https://github.com/octocat/Hello-World/wiki/Home/302c0b7e200761c9dd9b57e57db540ee0b4293a5" + }, + "commit_sha": { + "type": "string", + "description": "SHA-1 hash ID of the associated commit", + "example": "302c0b7e200761c9dd9b57e57db540ee0b4293a5" + }, + "commit_url": { + "type": "string", + "description": "The GitHub URL to get the associated wiki commit", + "example": "https://github.com/octocat/Hello-World/wiki/_compare/302c0b7e200761c9dd9b57e57db540ee0b4293a5" + } + }, + "required": [ + "path", + "start_line", + "end_line", + "start_column", + "end_column", + "blob_sha", + "page_url", + "commit_sha", + "commit_url" + ] + }, + "secret-scanning-location-issue-title": { + "description": "Represents an 'issue_title' secret scanning location type. This location type shows that a secret was detected in the title of an issue.", + "type": "object", + "properties": { + "issue_title_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the issue where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + } + }, + "required": [ + "issue_title_url" + ] + }, + "secret-scanning-location-issue-body": { + "description": "Represents an 'issue_body' secret scanning location type. This location type shows that a secret was detected in the body of an issue.", + "type": "object", + "properties": { + "issue_body_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the issue where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + } + }, + "required": [ + "issue_body_url" + ] + }, + "secret-scanning-location-issue-comment": { + "description": "Represents an 'issue_comment' secret scanning location type. This location type shows that a secret was detected in a comment on an issue.", + "type": "object", + "properties": { + "issue_comment_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the issue comment where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451" + } + }, + "required": [ + "issue_comment_url" + ] + }, + "secret-scanning-location-discussion-title": { + "description": "Represents a 'discussion_title' secret scanning location type. This location type shows that a secret was detected in the title of a discussion.", + "type": "object", + "properties": { + "discussion_title_url": { + "type": "string", + "format": "uri", + "description": "The URL to the discussion where the secret was detected.", + "example": "https://github.com/community/community/discussions/39082" + } + }, + "required": [ + "discussion_title_url" + ] + }, + "secret-scanning-location-discussion-body": { + "description": "Represents a 'discussion_body' secret scanning location type. This location type shows that a secret was detected in the body of a discussion.", + "type": "object", + "properties": { + "discussion_body_url": { + "type": "string", + "format": "uri", + "description": "The URL to the discussion where the secret was detected.", + "example": "https://github.com/community/community/discussions/39082#discussion-4566270" + } + }, + "required": [ + "discussion_body_url" + ] + }, + "secret-scanning-location-discussion-comment": { + "description": "Represents a 'discussion_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a discussion.", + "type": "object", + "properties": { + "discussion_comment_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the discussion comment where the secret was detected.", + "example": "https://github.com/community/community/discussions/39082#discussioncomment-4158232" + } + }, + "required": [ + "discussion_comment_url" + ] + }, + "secret-scanning-location-pull-request-title": { + "description": "Represents a 'pull_request_title' secret scanning location type. This location type shows that a secret was detected in the title of a pull request.", + "type": "object", + "properties": { + "pull_request_title_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the pull request where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" + } + }, + "required": [ + "pull_request_title_url" + ] + }, + "secret-scanning-location-pull-request-body": { + "description": "Represents a 'pull_request_body' secret scanning location type. This location type shows that a secret was detected in the body of a pull request.", + "type": "object", + "properties": { + "pull_request_body_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the pull request where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" + } + }, + "required": [ + "pull_request_body_url" + ] + }, + "secret-scanning-location-pull-request-comment": { + "description": "Represents a 'pull_request_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a pull request.", + "type": "object", + "properties": { + "pull_request_comment_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the pull request comment where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451" + } + }, + "required": [ + "pull_request_comment_url" + ] + }, + "secret-scanning-location-pull-request-review": { + "description": "Represents a 'pull_request_review' secret scanning location type. This location type shows that a secret was detected in a review on a pull request.", + "type": "object", + "properties": { + "pull_request_review_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the pull request review where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/2846/reviews/80" + } + }, + "required": [ + "pull_request_review_url" + ] + }, + "secret-scanning-location-pull-request-review-comment": { + "description": "Represents a 'pull_request_review_comment' secret scanning location type. This location type shows that a secret was detected in a review comment on a pull request.", + "type": "object", + "properties": { + "pull_request_review_comment_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get the pull request review comment where the secret was detected.", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/12" + } + }, + "required": [ + "pull_request_review_comment_url" + ] + }, + "nullable-secret-scanning-first-detected-location": { + "description": "Details on the location where the token was initially detected. This can be a commit, wiki commit, issue, discussion, pull request.\n", + "oneOf": [ + { + "$ref": "#/components/schemas/secret-scanning-location-commit" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-wiki-commit" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-issue-title" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-issue-body" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-issue-comment" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-title" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-body" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-comment" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-title" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-body" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-comment" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-review" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-review-comment" + } + ], + "nullable": true + }, + "organization-secret-scanning-alert": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/nullable-alert-updated-at" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "locations_url": { + "type": "string", + "format": "uri", + "description": "The REST API URL of the code locations for this alert." + }, + "state": { + "$ref": "#/components/schemas/secret-scanning-alert-state" + }, + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + }, + "resolved_at": { + "type": "string", + "format": "date-time", + "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "resolved_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "secret_type": { + "type": "string", + "description": "The type of secret that secret scanning detected." + }, + "secret_type_display_name": { + "type": "string", + "description": "User-friendly name for the detected secret, matching the `secret_type`.\nFor a list of built-in patterns, see \"[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"" + }, + "secret": { + "type": "string", + "description": "The secret that was detected." + }, + "repository": { + "$ref": "#/components/schemas/simple-repository" + }, + "push_protection_bypassed": { + "type": "boolean", + "description": "Whether push protection was bypassed for the detected secret.", + "nullable": true + }, + "push_protection_bypassed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "push_protection_bypassed_at": { + "type": "string", + "format": "date-time", + "description": "The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "push_protection_bypass_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "push_protection_bypass_request_reviewer_comment": { + "type": "string", + "description": "An optional comment when reviewing a push protection bypass.", + "nullable": true + }, + "push_protection_bypass_request_comment": { + "type": "string", + "description": "An optional comment when requesting a push protection bypass.", + "nullable": true + }, + "push_protection_bypass_request_html_url": { + "type": "string", + "format": "uri", + "description": "The URL to a push protection bypass request.", + "nullable": true + }, + "resolution_comment": { + "type": "string", + "description": "The comment that was optionally added when this alert was closed", + "nullable": true + }, + "validity": { + "type": "string", + "description": "The token status as of the latest validity check.", + "enum": [ + "active", + "inactive", + "unknown" + ] + }, + "publicly_leaked": { + "type": "boolean", + "description": "Whether the secret was publicly leaked.", + "nullable": true + }, + "multi_repo": { + "type": "boolean", + "description": "Whether the detected secret was found in multiple repositories in the same organization or enterprise.", + "nullable": true + }, + "is_base64_encoded": { + "type": "boolean", + "description": "A boolean value representing whether or not alert is base64 encoded", + "nullable": true + }, + "first_location_detected": { + "$ref": "#/components/schemas/nullable-secret-scanning-first-detected-location" + }, + "has_more_locations": { + "type": "boolean", + "description": "A boolean value representing whether or not the token in the alert was detected in more than one location." + }, + "assigned_to": { + "$ref": "#/components/schemas/nullable-simple-user" + } + } + }, + "secret-scanning-row-version": { + "type": "string", + "description": "The version of the entity. This is used to confirm you're updating the current version of the entity and mitigate unintentionally overriding someone else's update.", + "nullable": true + }, + "secret-scanning-pattern-override": { + "type": "object", + "properties": { + "token_type": { + "type": "string", + "description": "The ID of the pattern." + }, + "custom_pattern_version": { + "type": "string", + "description": "The version of this pattern if it's a custom pattern.", + "nullable": true + }, + "slug": { + "type": "string", + "description": "The slug of the pattern." + }, + "display_name": { + "type": "string", + "description": "The user-friendly name for the pattern." + }, + "alert_total": { + "type": "integer", + "description": "The total number of alerts generated by this pattern." + }, + "alert_total_percentage": { + "type": "integer", + "description": "The percentage of all alerts that this pattern represents, rounded to the nearest integer." + }, + "false_positives": { + "type": "integer", + "description": "The number of false positive alerts generated by this pattern." + }, + "false_positive_rate": { + "type": "integer", + "description": "The percentage of alerts from this pattern that are false positives, rounded to the nearest integer." + }, + "bypass_rate": { + "type": "integer", + "description": "The percentage of blocks for this pattern that were bypassed, rounded to the nearest integer." + }, + "default_setting": { + "type": "string", + "description": "The default push protection setting for this pattern.", + "enum": [ + "disabled", + "enabled" + ] + }, + "enterprise_setting": { + "type": "string", + "description": "The push protection setting for this pattern set at the enterprise level. Only present for partner patterns when the organization has a parent enterprise.", + "enum": [ + "not-set", + "disabled", + "enabled" + ], + "nullable": true + }, + "setting": { + "type": "string", + "description": "The current push protection setting for this pattern. If this is `not-set`, then it inherits either the enterprise setting if it exists or the default setting.", + "enum": [ + "not-set", + "disabled", + "enabled" + ] + } + } + }, + "secret-scanning-pattern-configuration": { + "title": "Secret scanning pattern configuration", + "description": "A collection of secret scanning patterns and their settings related to push protection.", + "type": "object", + "properties": { + "pattern_config_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" + }, + "provider_pattern_overrides": { + "type": "array", + "description": "Overrides for partner patterns.", + "items": { + "$ref": "#/components/schemas/secret-scanning-pattern-override" + } + }, + "custom_pattern_overrides": { + "type": "array", + "description": "Overrides for custom patterns defined by the organization.", + "items": { + "$ref": "#/components/schemas/secret-scanning-pattern-override" + } + } + } + }, + "repository-advisory-vulnerability": { + "description": "A product affected by the vulnerability detailed in a repository security advisory.", + "type": "object", + "properties": { + "package": { + "description": "The name of the package affected by the vulnerability.", + "type": "object", + "nullable": true, + "properties": { + "ecosystem": { + "$ref": "#/components/schemas/security-advisory-ecosystems" + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "nullable": true + } + }, + "required": [ + "ecosystem", + "name" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "The range of the package versions affected by the vulnerability.", + "nullable": true + }, + "patched_versions": { + "type": "string", + "description": "The package version(s) that resolve the vulnerability.", + "nullable": true + }, + "vulnerable_functions": { + "type": "array", + "description": "The functions in the package that are affected.", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "package", + "vulnerable_version_range", + "patched_versions", + "vulnerable_functions" + ], + "additionalProperties": false + }, + "repository-advisory-credit": { + "description": "A credit given to a user for a repository security advisory.", + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/simple-user" + }, + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" + }, + "state": { + "type": "string", + "description": "The state of the user's acceptance of the credit.", + "enum": [ + "accepted", + "declined", + "pending" + ] + } + }, + "required": [ + "user", + "type", + "state" + ], + "additionalProperties": false + }, + "repository-advisory": { + "description": "A repository security advisory.", + "type": "object", + "properties": { + "ghsa_id": { + "type": "string", + "description": "The GitHub Security Advisory ID.", + "readOnly": true + }, + "cve_id": { + "type": "string", + "description": "The Common Vulnerabilities and Exposures (CVE) ID.", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "description": "The API URL for the advisory.", + "readOnly": true + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL for the advisory.", + "readOnly": true + }, + "summary": { + "type": "string", + "description": "A short summary of the advisory.", + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A detailed description of what the advisory entails.", + "maxLength": 65535, + "nullable": true + }, + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "nullable": true, + "enum": [ + "critical", + "high", + "medium", + "low" + ] + }, + "author": { + "readOnly": true, + "nullable": true, + "description": "The author of the advisory.", + "allOf": [ + { + "$ref": "#/components/schemas/simple-user" + } + ] + }, + "publisher": { + "readOnly": true, + "nullable": true, + "description": "The publisher of the advisory.", + "allOf": [ + { + "$ref": "#/components/schemas/simple-user" + } + ] + }, + "identifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of identifier.", + "enum": [ + "CVE", + "GHSA" + ] + }, + "value": { + "type": "string", + "description": "The identifier value." + } + }, + "required": [ + "type", + "value" + ] + }, + "readOnly": true + }, + "state": { + "type": "string", + "description": "The state of the advisory.", + "enum": [ + "published", + "closed", + "withdrawn", + "draft", + "triage" + ] + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was created, in ISO 8601 format.", + "readOnly": true, + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was last updated, in ISO 8601 format.", + "readOnly": true, + "nullable": true + }, + "published_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was published, in ISO 8601 format.", + "readOnly": true, + "nullable": true + }, + "closed_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was closed, in ISO 8601 format.", + "readOnly": true, + "nullable": true + }, + "withdrawn_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was withdrawn, in ISO 8601 format.", + "readOnly": true, + "nullable": true + }, + "submission": { + "type": "object", + "nullable": true, + "readOnly": true, + "properties": { + "accepted": { + "type": "boolean", + "description": "Whether a private vulnerability report was accepted by the repository's administrators.", + "readOnly": true + } + }, + "required": [ + "accepted" + ] + }, + "vulnerabilities": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/repository-advisory-vulnerability" + } + }, + "cvss": { + "type": "object", + "nullable": true, + "properties": { + "vector_string": { + "type": "string", + "description": "The CVSS vector.", + "nullable": true + }, + "score": { + "type": "number", + "description": "The CVSS score.", + "minimum": 0, + "maximum": 10, + "nullable": true, + "readOnly": true + } + }, + "required": [ + "vector_string", + "score" + ] + }, + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" + }, + "cwes": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "cwe_id": { + "type": "string", + "description": "The Common Weakness Enumeration (CWE) identifier." + }, + "name": { + "type": "string", + "description": "The name of the CWE.", + "readOnly": true + } + }, + "required": [ + "cwe_id", + "name" + ] + }, + "readOnly": true + }, + "cwe_ids": { + "type": "array", + "description": "A list of only the CWE IDs.", + "nullable": true, + "items": { + "type": "string" + } + }, + "credits": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "login": { + "type": "string", + "description": "The username of the user credited." + }, + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" + } + } + } + }, + "credits_detailed": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/repository-advisory-credit" + }, + "readOnly": true + }, + "collaborating_users": { + "type": "array", + "description": "A list of users that collaborate on the advisory.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "collaborating_teams": { + "type": "array", + "description": "A list of teams that collaborate on the advisory.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/team" + } + }, + "private_fork": { + "readOnly": true, + "nullable": true, + "description": "A temporary private fork of the advisory's repository for collaborating on a fix.", + "allOf": [ + { + "$ref": "#/components/schemas/simple-repository" + } + ] + } + }, + "required": [ + "ghsa_id", + "cve_id", + "url", + "html_url", + "summary", + "description", + "severity", + "author", + "publisher", + "identifiers", + "state", + "created_at", + "updated_at", + "published_at", + "closed_at", + "withdrawn_at", + "submission", + "vulnerabilities", + "cvss", + "cwes", + "cwe_ids", + "credits", + "credits_detailed", + "collaborating_users", + "collaborating_teams", + "private_fork" + ], + "additionalProperties": false + }, + "immutable-releases-organization-settings": { + "title": "Check immutable releases organization settings", + "description": "Check immutable releases settings for an organization.", + "type": "object", + "properties": { + "enforced_repositories": { + "type": "string", + "description": "The policy that controls how immutable releases are enforced in the organization.", + "enum": [ + "all", + "none", + "selected" + ], + "example": "all" + }, + "selected_repositories_url": { + "type": "string", + "description": "The API URL to use to get or set the selected repositories for immutable releases enforcement, when `enforced_repositories` is set to `selected`." + } + }, + "required": [ + "enforced_repositories" + ] + }, + "network-configuration": { + "title": "Hosted compute network configuration", + "description": "A hosted compute network configuration.", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the network configuration.", + "type": "string", + "example": "123ABC456DEF789" + }, + "name": { + "description": "The name of the network configuration.", + "type": "string", + "example": "my-network-configuration" + }, + "compute_service": { + "description": "The hosted compute service the network configuration supports.", + "type": "string", + "enum": [ + "none", + "actions", + "codespaces" + ] + }, + "network_settings_ids": { + "description": "The unique identifier of each network settings in the configuration.", + "type": "array", + "items": { + "type": "string" + }, + "example": "123ABC456DEF789" + }, + "failover_network_settings_ids": { + "description": "The unique identifier of each failover network settings in the configuration.", + "type": "array", + "items": { + "type": "string" + }, + "example": "123ABC456DEF789" + }, + "failover_network_enabled": { + "description": "Indicates whether the failover network resource is enabled.", + "type": "boolean", + "example": true + }, + "created_on": { + "description": "The time at which the network configuration was created, in ISO 8601 format.", + "type": "string", + "format": "date-time", + "example": "2024-04-26T11:31:07Z", + "nullable": true + } + }, + "required": [ + "id", + "name", + "created_on" + ] + }, + "network-settings": { + "title": "Hosted compute network settings resource", + "description": "A hosted compute network settings resource.", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the network settings resource.", + "type": "string", + "example": "220F78DACB92BBFBC5E6F22DE1CCF52309D" + }, + "network_configuration_id": { + "description": "The identifier of the network configuration that is using this settings resource.", + "type": "string", + "example": "934E208B3EE0BD60CF5F752C426BFB53562" + }, + "name": { + "description": "The name of the network settings resource.", + "type": "string", + "example": "my-network-settings" + }, + "subnet_id": { + "description": "The subnet this network settings resource is configured for.", + "type": "string", + "example": "/subscriptions/14839728-3ad9-43ab-bd2b-fa6ad0f75e2a/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet" + }, + "region": { + "description": "The location of the subnet this network settings resource is configured for.", + "type": "string", + "example": "eastus" + } + }, + "required": [ + "id", + "name", + "subnet_id", + "region" + ] + }, + "team-organization": { + "title": "Team Organization", + "description": "Team Organization", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "github" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" + }, + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/issues" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/members{/member}" + }, + "public_members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/public_members{/member}" + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "description": { + "type": "string", + "example": "A great organization", + "nullable": true + }, + "name": { + "type": "string", + "example": "github" + }, + "company": { + "type": "string", + "example": "GitHub" + }, + "blog": { + "type": "string", + "format": "uri", + "example": "https://github.com/blog" + }, + "location": { + "type": "string", + "example": "San Francisco" + }, + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com" + }, + "twitter_username": { + "type": "string", + "example": "github", + "nullable": true + }, + "is_verified": { + "type": "boolean", + "example": true + }, + "has_organization_projects": { + "type": "boolean", + "example": true + }, + "has_repository_projects": { + "type": "boolean", + "example": true + }, + "public_repos": { + "type": "integer", + "example": 2 + }, + "public_gists": { + "type": "integer", + "example": 1 + }, + "followers": { + "type": "integer", + "example": 20 + }, + "following": { + "type": "integer", + "example": 0 + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" + }, + "type": { + "type": "string", + "example": "Organization" + }, + "total_private_repos": { + "type": "integer", + "example": 100 + }, + "owned_private_repos": { + "type": "integer", + "example": 100 + }, + "private_gists": { + "type": "integer", + "example": 81, + "nullable": true + }, + "disk_usage": { + "type": "integer", + "example": 10000, + "nullable": true + }, + "collaborators": { + "type": "integer", + "example": 8, + "nullable": true + }, + "billing_email": { + "type": "string", + "format": "email", + "example": "org@example.com", + "nullable": true + }, + "plan": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "space": { + "type": "integer" + }, + "private_repos": { + "type": "integer" + }, + "filled_seats": { + "type": "integer" + }, + "seats": { + "type": "integer" + } + }, + "required": [ + "name", + "space", + "private_repos" + ] + }, + "default_repository_permission": { + "type": "string", + "nullable": true + }, + "members_can_create_repositories": { + "type": "boolean", + "example": true, + "nullable": true + }, + "two_factor_requirement_enabled": { + "type": "boolean", + "example": true, + "nullable": true + }, + "members_allowed_repository_creation_type": { + "type": "string", + "example": "all" + }, + "members_can_create_public_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_private_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_internal_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_pages": { + "type": "boolean", + "example": true + }, + "members_can_create_public_pages": { + "type": "boolean", + "example": true + }, + "members_can_create_private_pages": { + "type": "boolean", + "example": true + }, + "members_can_fork_private_repositories": { + "type": "boolean", + "example": false, + "nullable": true + }, + "web_commit_signoff_required": { + "type": "boolean", + "example": false + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "archived_at": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description", + "html_url", + "has_organization_projects", + "has_repository_projects", + "public_repos", + "public_gists", + "followers", + "following", + "type", + "created_at", + "updated_at", + "archived_at" + ] + }, + "ldap-dn": { + "type": "string", + "description": "The [distinguished name](https://www.ldap.com/ldap-dns-and-rdns) (DN) of the LDAP entry to map to a team.", + "example": "cn=Enterprise Ops,ou=teams,dc=github,dc=com" + }, + "team-full": { + "title": "Full Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDQ6VGVhbTE=" + }, + "url": { + "description": "URL for the team", + "example": "https://api.github.com/organizations/1/team/1", + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "name": { + "description": "Name of the team", + "example": "Developers", + "type": "string" + }, + "slug": { + "type": "string", + "example": "justice-league" + }, + "description": { + "type": "string", + "example": "A great team.", + "nullable": true + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "enum": [ + "closed", + "secret" + ], + "example": "closed" + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ], + "example": "notifications_enabled" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "example": "push", + "type": "string" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/organizations/1/team/1/members{/member}" + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" + }, + "parent": { + "$ref": "#/components/schemas/nullable-team-simple" + }, + "members_count": { + "type": "integer", + "example": 3 + }, + "repos_count": { + "type": "integer", + "example": 10 + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-14T16:53:42Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-08-17T12:37:15Z" + }, + "organization": { + "$ref": "#/components/schemas/team-organization" + }, + "ldap_dn": { + "$ref": "#/components/schemas/ldap-dn" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "type", + "created_at", + "updated_at", + "members_count", + "repos_count", + "organization" + ] + }, + "team-membership": { + "title": "Team Membership", + "description": "Team Membership", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "role": { + "description": "The role of the user in the team.", + "enum": [ + "member", + "maintainer" + ], + "default": "member", + "example": "member", + "type": "string" + }, + "state": { + "description": "The state of the user's membership in the team.", + "type": "string", + "enum": [ + "active", + "pending" + ] + } + }, + "required": [ + "role", + "state", + "url" + ] + }, + "team-repository": { + "title": "Team Repository", + "description": "A team's access to a repository.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "default": false, + "type": "boolean", + "example": false + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean", + "example": false + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + }, + "rate-limit": { + "title": "Rate Limit", + "type": "object", + "properties": { + "limit": { + "type": "integer" + }, + "remaining": { + "type": "integer" + }, + "reset": { + "type": "integer" + }, + "used": { + "type": "integer" + } + }, + "required": [ + "limit", + "remaining", + "reset", + "used" + ] + }, + "rate-limit-overview": { + "title": "Rate Limit Overview", + "description": "Rate Limit Overview", + "type": "object", + "properties": { + "resources": { + "type": "object", + "properties": { + "core": { + "$ref": "#/components/schemas/rate-limit" + }, + "graphql": { + "$ref": "#/components/schemas/rate-limit" + }, + "search": { + "$ref": "#/components/schemas/rate-limit" + }, + "code_search": { + "$ref": "#/components/schemas/rate-limit" + }, + "source_import": { + "$ref": "#/components/schemas/rate-limit" + }, + "integration_manifest": { + "$ref": "#/components/schemas/rate-limit" + }, + "code_scanning_upload": { + "$ref": "#/components/schemas/rate-limit" + }, + "actions_runner_registration": { + "$ref": "#/components/schemas/rate-limit" + }, + "scim": { + "$ref": "#/components/schemas/rate-limit" + }, + "dependency_snapshots": { + "$ref": "#/components/schemas/rate-limit" + }, + "dependency_sbom": { + "$ref": "#/components/schemas/rate-limit" + }, + "code_scanning_autofix": { + "$ref": "#/components/schemas/rate-limit" + } + }, + "required": [ + "core", + "search" + ] + }, + "rate": { + "$ref": "#/components/schemas/rate-limit" + } + }, + "required": [ + "rate", + "resources" + ] + }, + "artifact": { + "title": "Artifact", + "description": "An artifact", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 5 + }, + "node_id": { + "type": "string", + "example": "MDEwOkNoZWNrU3VpdGU1" + }, + "name": { + "description": "The name of the artifact.", + "type": "string", + "example": "AdventureWorks.Framework" + }, + "size_in_bytes": { + "description": "The size in bytes of the artifact.", + "type": "integer", + "example": 12345 + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5" + }, + "archive_download_url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip" + }, + "expired": { + "description": "Whether or not the artifact has expired.", + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "expires_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "digest": { + "type": "string", + "description": "The SHA256 digest of the artifact. This field will only be populated on artifacts uploaded with upload-artifact v4 or newer. For older versions, this field will be null.", + "nullable": true, + "example": "sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c" + }, + "workflow_run": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "example": 10, + "type": "integer" + }, + "repository_id": { + "example": 42, + "type": "integer" + }, + "head_repository_id": { + "example": 42, + "type": "integer" + }, + "head_branch": { + "example": "main", + "type": "string" + }, + "head_sha": { + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + } + } + } + }, + "required": [ + "id", + "node_id", + "name", + "size_in_bytes", + "url", + "archive_download_url", + "expired", + "created_at", + "expires_at", + "updated_at" + ] + }, + "actions-cache-retention-limit-for-repository": { + "title": "Actions cache retention limit for a repository", + "description": "GitHub Actions cache retention policy for a repository.", + "type": "object", + "properties": { + "max_cache_retention_days": { + "description": "The maximum number of days to keep caches in this repository.", + "type": "integer", + "example": 14 + } + } + }, + "actions-cache-storage-limit-for-repository": { + "title": "Actions cache storage limit for a repository", + "description": "GitHub Actions cache storage policy for a repository.", + "type": "object", + "properties": { + "max_cache_size_gb": { + "description": "The maximum total cache size for this repository, in gigabytes.", + "type": "integer", + "example": 10 + } + } + }, + "actions-cache-list": { + "title": "Repository actions caches", + "description": "Repository actions caches", + "type": "object", + "properties": { + "total_count": { + "description": "Total number of caches", + "type": "integer", + "example": 2 + }, + "actions_caches": { + "description": "Array of caches", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 2 + }, + "ref": { + "type": "string", + "example": "refs/heads/main" + }, + "key": { + "type": "string", + "example": "Linux-node-958aff96db2d75d67787d1e634ae70b659de937b" + }, + "version": { + "type": "string", + "example": "73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0" + }, + "last_accessed_at": { + "type": "string", + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" + }, + "size_in_bytes": { + "type": "integer", + "example": 1024 + } + } + } + } + }, + "required": [ + "total_count", + "actions_caches" + ] + }, + "job": { + "title": "Job", + "description": "Information of a job execution in a workflow run", + "type": "object", + "properties": { + "id": { + "description": "The id of the job.", + "example": 21, + "type": "integer" + }, + "run_id": { + "description": "The id of the associated workflow run.", + "example": 5, + "type": "integer" + }, + "run_url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" + }, + "run_attempt": { + "type": "integer", + "description": "Attempt number of the associated workflow run, 1 for first attempt and higher if the workflow was re-run.", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDg6Q2hlY2tSdW40" + }, + "head_sha": { + "description": "The SHA of the commit that is being run.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/jobs/21" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/runs/4", + "nullable": true + }, + "status": { + "description": "The phase of the lifecycle that the job is currently in.", + "example": "queued", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting", + "requested", + "pending" + ] + }, + "conclusion": { + "description": "The outcome of the job.", + "example": "success", + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ] + }, + "created_at": { + "description": "The time that the job created, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string" + }, + "started_at": { + "description": "The time that the job started, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string" + }, + "completed_at": { + "description": "The time that the job finished, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the job.", + "example": "test-coverage", + "type": "string" + }, + "steps": { + "description": "Steps in this job.", + "type": "array", + "items": { + "type": "object", + "required": [ + "name", + "status", + "conclusion", + "number" + ], + "properties": { + "status": { + "description": "The phase of the lifecycle that the job is currently in.", + "example": "queued", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed" + ] + }, + "conclusion": { + "description": "The outcome of the job.", + "example": "success", + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the job.", + "example": "test-coverage", + "type": "string" + }, + "number": { + "type": "integer", + "example": 1 + }, + "started_at": { + "description": "The time that the step started, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string", + "nullable": true + }, + "completed_at": { + "description": "The time that the job finished, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string", + "nullable": true + } + } + } + }, + "check_run_url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-runs/4" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Labels for the workflow job. Specified by the \"runs_on\" attribute in the action's workflow file.", + "example": [ + "self-hosted", + "foo", + "bar" + ] + }, + "runner_id": { + "type": "integer", + "nullable": true, + "example": 1, + "description": "The ID of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.)" + }, + "runner_name": { + "type": "string", + "nullable": true, + "example": "my runner", + "description": "The name of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.)" + }, + "runner_group_id": { + "type": "integer", + "nullable": true, + "example": 2, + "description": "The ID of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.)" + }, + "runner_group_name": { + "type": "string", + "nullable": true, + "example": "my runner group", + "description": "The name of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.)" + }, + "workflow_name": { + "type": "string", + "description": "The name of the workflow.", + "nullable": true, + "example": "Build" + }, + "head_branch": { + "type": "string", + "description": "The name of the current branch.", + "nullable": true, + "example": "main" + } + }, + "required": [ + "id", + "node_id", + "run_id", + "run_url", + "head_sha", + "workflow_name", + "head_branch", + "name", + "url", + "html_url", + "status", + "conclusion", + "started_at", + "completed_at", + "check_run_url", + "labels", + "runner_id", + "runner_name", + "runner_group_id", + "runner_group_name", + "created_at" + ] + }, + "oidc-custom-sub-repo": { + "title": "Actions OIDC subject customization for a repository", + "description": "Actions OIDC subject customization for a repository", + "type": "object", + "properties": { + "use_default": { + "description": "Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored.", + "type": "boolean" + }, + "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "use_default" + ] + }, + "actions-secret": { + "title": "Actions Secret", + "description": "Set secrets for GitHub Actions.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + }, + "actions-variable": { + "title": "Actions Variable", + "type": "object", + "properties": { + "name": { + "description": "The name of the variable.", + "example": "USERNAME", + "type": "string" + }, + "value": { + "description": "The value of the variable.", + "example": "octocat", + "type": "string" + }, + "created_at": { + "description": "The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" + }, + "updated_at": { + "description": "The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" + } + }, + "required": [ + "name", + "value", + "created_at", + "updated_at" + ] + }, + "actions-enabled": { + "type": "boolean", + "description": "Whether GitHub Actions is enabled on the repository." + }, + "actions-repository-permissions": { + "type": "object", + "properties": { + "enabled": { + "$ref": "#/components/schemas/actions-enabled" + }, + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" + }, + "selected_actions_url": { + "$ref": "#/components/schemas/selected-actions-url" + }, + "sha_pinning_required": { + "$ref": "#/components/schemas/sha-pinning-required" + } + }, + "required": [ + "enabled" + ] + }, + "actions-workflow-access-to-repository": { + "type": "object", + "properties": { + "access_level": { + "type": "string", + "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization.", + "enum": [ + "none", + "user", + "organization" + ] + } + }, + "required": [ + "access_level" + ] + }, + "referenced-workflow": { + "title": "Referenced workflow", + "description": "A workflow referenced/reused by the initial caller workflow", + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "required": [ + "path", + "sha" + ] + }, + "nullable-simple-commit": { + "title": "Simple Commit", + "description": "A commit.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd" + }, + "tree_id": { + "type": "string", + "description": "SHA for the commit's tree" + }, + "message": { + "description": "Message describing the purpose of the commit", + "example": "Fix #42", + "type": "string" + }, + "timestamp": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "author": { + "type": "object", + "description": "Information about the Git author", + "properties": { + "name": { + "description": "Name of the commit's author", + "example": "Monalisa Octocat", + "type": "string" + }, + "email": { + "description": "Git email address of the commit's author", + "example": "monalisa.octocat@example.com", + "type": "string", + "format": "email" + } + }, + "required": [ + "name", + "email" + ], + "nullable": true + }, + "committer": { + "type": "object", + "description": "Information about the Git committer", + "properties": { + "name": { + "description": "Name of the commit's committer", + "example": "Monalisa Octocat", + "type": "string" + }, + "email": { + "description": "Git email address of the commit's committer", + "example": "monalisa.octocat@example.com", + "type": "string", + "format": "email" + } + }, + "required": [ + "name", + "email" + ], + "nullable": true + } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ], + "nullable": true + }, + "workflow-run": { + "title": "Workflow Run", + "description": "An invocation of a workflow", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the workflow run.", + "example": 5 + }, + "name": { + "type": "string", + "description": "The name of the workflow run.", + "nullable": true, + "example": "Build" + }, + "node_id": { + "type": "string", + "example": "MDEwOkNoZWNrU3VpdGU1" + }, + "check_suite_id": { + "type": "integer", + "description": "The ID of the associated check suite.", + "example": 42 + }, + "check_suite_node_id": { + "type": "string", + "description": "The node ID of the associated check suite.", + "example": "MDEwOkNoZWNrU3VpdGU0Mg==" + }, + "head_branch": { + "type": "string", + "nullable": true, + "example": "master" + }, + "head_sha": { + "description": "The SHA of the head commit that points to the version of the workflow being run.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "path": { + "description": "The full path of the workflow", + "example": "octocat/octo-repo/.github/workflows/ci.yml@main", + "type": "string" + }, + "run_number": { + "type": "integer", + "description": "The auto incrementing run number for the workflow run.", + "example": 106 + }, + "run_attempt": { + "type": "integer", + "description": "Attempt number of the run, 1 for first attempt and higher if the workflow was re-run.", + "example": 1 + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/referenced-workflow" + } + }, + "event": { + "type": "string", + "example": "push" + }, + "status": { + "type": "string", + "nullable": true, + "example": "completed" + }, + "conclusion": { + "type": "string", + "nullable": true, + "example": "neutral" + }, + "workflow_id": { + "type": "integer", + "description": "The ID of the parent workflow.", + "example": 5 + }, + "url": { + "type": "string", + "description": "The URL to the workflow run.", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/suites/4" + }, + "pull_requests": { + "description": "Pull requests that are open with a `head_sha` or `head_branch` that matches the workflow run. The returned pull requests do not necessarily indicate pull requests that triggered the run.", + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/pull-request-minimal" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "triggering_actor": { + "$ref": "#/components/schemas/simple-user" + }, + "run_started_at": { + "type": "string", + "format": "date-time", + "description": "The start time of the latest run. Resets on re-run." + }, + "jobs_url": { + "description": "The URL to the jobs for the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/jobs" + }, + "logs_url": { + "description": "The URL to download the logs for the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/logs" + }, + "check_suite_url": { + "description": "The URL to the associated check suite.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-suites/12" + }, + "artifacts_url": { + "description": "The URL to the artifacts for the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts" + }, + "cancel_url": { + "description": "The URL to cancel the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/cancel" + }, + "rerun_url": { + "description": "The URL to rerun the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun" + }, + "previous_attempt_url": { + "nullable": true, + "description": "The URL to the previous attempted run of this workflow, if one exists.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3" + }, + "workflow_url": { + "description": "The URL to the workflow.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml" + }, + "head_commit": { + "$ref": "#/components/schemas/nullable-simple-commit" + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "head_repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "head_repository_id": { + "type": "integer", + "example": 5 + }, + "display_title": { + "type": "string", + "example": "Simple Workflow", + "description": "The event-specific title associated with the run or the run-name if set, or the value of `run-name` if it is set in the workflow." + } + }, + "required": [ + "id", + "node_id", + "head_branch", + "run_number", + "display_title", + "event", + "status", + "conclusion", + "head_sha", + "path", + "workflow_id", + "url", + "html_url", + "created_at", + "updated_at", + "head_commit", + "head_repository", + "repository", + "jobs_url", + "logs_url", + "check_suite_url", + "cancel_url", + "rerun_url", + "artifacts_url", + "workflow_url", + "pull_requests" + ] + }, + "environment-approvals": { + "title": "Environment Approval", + "description": "An entry in the reviews log for environment deployments", + "type": "object", + "properties": { + "environments": { + "description": "The list of environments that were approved or rejected", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "description": "The id of the environment.", + "example": 56780428, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDExOkVudmlyb25tZW50NTY3ODA0Mjg=" + }, + "name": { + "description": "The name of the environment.", + "example": "staging", + "type": "string" + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/environments/staging" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging" + }, + "created_at": { + "description": "The time that the environment was created, in ISO 8601 format.", + "example": "2020-11-23T22:00:40Z", + "format": "date-time", + "type": "string" + }, + "updated_at": { + "description": "The time that the environment was last updated, in ISO 8601 format.", + "example": "2020-11-23T22:00:40Z", + "format": "date-time", + "type": "string" + } + } + } + }, + "state": { + "description": "Whether deployment to the environment(s) was approved or rejected or pending (with comments)", + "enum": [ + "approved", + "rejected", + "pending" + ], + "example": "approved", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/simple-user" + }, + "comment": { + "type": "string", + "description": "The comment submitted with the deployment review", + "example": "Ship it!" + } + }, + "required": [ + "environments", + "state", + "user", + "comment" + ] + }, + "review-custom-gates-comment-required": { + "type": "object", + "properties": { + "environment_name": { + "type": "string", + "description": "The name of the environment to approve or reject." + }, + "comment": { + "type": "string", + "description": "Comment associated with the pending deployment protection rule. **Required when state is not provided.**" + } + }, + "required": [ + "environment_name", + "comment" + ] + }, + "review-custom-gates-state-required": { + "type": "object", + "properties": { + "environment_name": { + "type": "string", + "description": "The name of the environment to approve or reject." + }, + "state": { + "type": "string", + "description": "Whether to approve or reject deployment to the specified environments.", + "enum": [ + "approved", + "rejected" + ] + }, + "comment": { + "type": "string", + "description": "Optional comment to include with the review." + } + }, + "required": [ + "environment_name", + "state" + ] + }, + "deployment-reviewer-type": { + "type": "string", + "description": "The type of reviewer.", + "enum": [ + "User", + "Team" + ], + "example": "User" + }, + "pending-deployment": { + "title": "Pending Deployment", + "description": "Details of a deployment that is waiting for protection rules to pass", + "type": "object", + "properties": { + "environment": { + "type": "object", + "properties": { + "id": { + "description": "The id of the environment.", + "type": "integer", + "format": "int64", + "example": 56780428 + }, + "node_id": { + "type": "string", + "example": "MDExOkVudmlyb25tZW50NTY3ODA0Mjg=" + }, + "name": { + "description": "The name of the environment.", + "example": "staging", + "type": "string" + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/environments/staging" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging" + } + } + }, + "wait_timer": { + "type": "integer", + "description": "The set duration of the wait timer", + "example": 30 + }, + "wait_timer_started_at": { + "description": "The time that the wait timer began.", + "example": "2020-11-23T22:00:40Z", + "format": "date-time", + "type": "string", + "nullable": true + }, + "current_user_can_approve": { + "description": "Whether the currently authenticated user can approve the deployment", + "type": "boolean", + "example": true + }, + "reviewers": { + "type": "array", + "description": "The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed.", + "items": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/deployment-reviewer-type" + }, + "reviewer": { + "anyOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/team" + } + ] + } + } + } + } + }, + "required": [ + "environment", + "wait_timer", + "wait_timer_started_at", + "current_user_can_approve", + "reviewers" + ] + }, + "deployment": { + "title": "Deployment", + "description": "A request for a specific ref(branch,sha,tag) to be deployed", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/1" + }, + "id": { + "description": "Unique identifier of the deployment", + "type": "integer", + "format": "int64", + "example": 42 + }, + "node_id": { + "type": "string", + "example": "MDEwOkRlcGxveW1lbnQx" + }, + "sha": { + "type": "string", + "example": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d" + }, + "ref": { + "description": "The ref to deploy. This can be a branch, tag, or sha.", + "example": "topic-branch", + "type": "string" + }, + "task": { + "description": "Parameter to specify a task to execute", + "example": "deploy", + "type": "string" + }, + "payload": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "string" + } + ] + }, + "original_environment": { + "type": "string", + "example": "staging" + }, + "environment": { + "description": "Name for the target deployment environment.", + "example": "production", + "type": "string" + }, + "description": { + "type": "string", + "example": "Deploy request from hubot", + "nullable": true + }, + "creator": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "statuses_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example" + }, + "transient_environment": { + "description": "Specifies if the given environment is will no longer exist at some point in the future. Default: false.", + "example": true, + "type": "boolean" + }, + "production_environment": { + "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.", + "example": true, + "type": "boolean" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + } + }, + "required": [ + "id", + "node_id", + "sha", + "ref", + "task", + "environment", + "creator", + "payload", + "description", + "statuses_url", + "repository_url", + "url", + "created_at", + "updated_at" + ] + }, + "workflow-run-usage": { + "title": "Workflow Run Usage", + "description": "Workflow Run Usage", + "type": "object", + "properties": { + "billable": { + "type": "object", + "properties": { + "UBUNTU": { + "type": "object", + "required": [ + "total_ms", + "jobs" + ], + "properties": { + "total_ms": { + "type": "integer" + }, + "jobs": { + "type": "integer" + }, + "job_runs": { + "type": "array", + "items": { + "type": "object", + "required": [ + "job_id", + "duration_ms" + ], + "properties": { + "job_id": { + "type": "integer" + }, + "duration_ms": { + "type": "integer" + } + } + } + } + } + }, + "MACOS": { + "type": "object", + "required": [ + "total_ms", + "jobs" + ], + "properties": { + "total_ms": { + "type": "integer" + }, + "jobs": { + "type": "integer" + }, + "job_runs": { + "type": "array", + "items": { + "type": "object", + "required": [ + "job_id", + "duration_ms" + ], + "properties": { + "job_id": { + "type": "integer" + }, + "duration_ms": { + "type": "integer" + } + } + } + } + } + }, + "WINDOWS": { + "type": "object", + "required": [ + "total_ms", + "jobs" + ], + "properties": { + "total_ms": { + "type": "integer" + }, + "jobs": { + "type": "integer" + }, + "job_runs": { + "type": "array", + "items": { + "type": "object", + "required": [ + "job_id", + "duration_ms" + ], + "properties": { + "job_id": { + "type": "integer" + }, + "duration_ms": { + "type": "integer" + } + } + } + } + } + } + } + }, + "run_duration_ms": { + "type": "integer" + } + }, + "required": [ + "billable" + ] + }, + "workflow": { + "title": "Workflow", + "description": "A GitHub Actions workflow", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 5 + }, + "node_id": { + "type": "string", + "example": "MDg6V29ya2Zsb3cxMg==" + }, + "name": { + "type": "string", + "example": "CI" + }, + "path": { + "type": "string", + "example": "ruby.yaml" + }, + "state": { + "type": "string", + "example": "active", + "enum": [ + "active", + "deleted", + "disabled_fork", + "disabled_inactivity", + "disabled_manually" + ] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/actions/setup-ruby/workflows/5" + }, + "html_url": { + "type": "string", + "example": "https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml" + }, + "badge_url": { + "type": "string", + "example": "https://github.com/actions/setup-ruby/workflows/CI/badge.svg" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" + } + }, + "required": [ + "id", + "node_id", + "name", + "path", + "state", + "url", + "html_url", + "badge_url", + "created_at", + "updated_at" + ] + }, + "workflow-run-id": { + "title": "Workflow Run ID", + "description": "The ID of the workflow run.", + "type": "integer", + "format": "int64" + }, + "workflow-dispatch-response": { + "title": "Workflow Dispatch Response", + "description": "Response containing the workflow run ID and URLs.", + "type": "object", + "properties": { + "workflow_run_id": { + "$ref": "#/components/schemas/workflow-run-id" + }, + "run_url": { + "type": "string", + "format": "uri", + "description": "The URL to the workflow run." + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "workflow_run_id", + "run_url", + "html_url" + ] + }, + "workflow-usage": { + "title": "Workflow Usage", + "description": "Workflow Usage", + "type": "object", + "properties": { + "billable": { + "type": "object", + "properties": { + "UBUNTU": { + "type": "object", + "properties": { + "total_ms": { + "type": "integer" + } + } + }, + "MACOS": { + "type": "object", + "properties": { + "total_ms": { + "type": "integer" + } + } + }, + "WINDOWS": { + "type": "object", + "properties": { + "total_ms": { + "type": "integer" + } + } + } + } + } + }, + "required": [ + "billable" + ] + }, + "activity": { + "title": "Activity", + "description": "Activity", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "before": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "description": "The SHA of the commit before the activity." + }, + "after": { + "type": "string", + "example": "827efc6d56897b048c772eb4087f854f46256132", + "description": "The SHA of the commit after the activity." + }, + "ref": { + "type": "string", + "example": "refs/heads/main", + "description": "The full Git reference, formatted as `refs/heads/`." + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "description": "The time when the activity occurred." + }, + "activity_type": { + "type": "string", + "example": "force_push", + "enum": [ + "push", + "force_push", + "branch_deletion", + "branch_creation", + "pr_merge", + "merge_queue_merge" + ], + "description": "The type of the activity that was performed." + }, + "actor": { + "$ref": "#/components/schemas/nullable-simple-user" + } + }, + "required": [ + "id", + "node_id", + "before", + "after", + "ref", + "timestamp", + "activity_type", + "actor" + ] + }, + "autolink": { + "title": "Autolink reference", + "description": "An autolink reference.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 3 + }, + "key_prefix": { + "description": "The prefix of a key that is linkified.", + "example": "TICKET-", + "type": "string" + }, + "url_template": { + "description": "A template for the target URL that is generated if a key was found.", + "example": "https://example.com/TICKET?query=", + "type": "string" + }, + "is_alphanumeric": { + "description": "Whether this autolink reference matches alphanumeric characters. If false, this autolink reference only matches numeric characters.", + "example": true, + "type": "boolean" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "key_prefix", + "url_template", + "is_alphanumeric" + ] + }, + "check-automated-security-fixes": { + "title": "Check Dependabot security updates", + "description": "Check Dependabot security updates", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "example": true, + "description": "Whether Dependabot security updates are enabled for the repository." + }, + "paused": { + "type": "boolean", + "example": false, + "description": "Whether Dependabot security updates are paused for the repository." + } + }, + "required": [ + "enabled", + "paused" + ] + }, + "protected-branch-required-status-check": { + "title": "Protected Branch Required Status Check", + "description": "Protected Branch Required Status Check", + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "enforcement_level": { + "type": "string" + }, + "contexts": { + "type": "array", + "items": { + "type": "string" + } + }, + "checks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "context": { + "type": "string" + }, + "app_id": { + "type": "integer", + "nullable": true + } + }, + "required": [ + "context", + "app_id" + ] + } + }, + "contexts_url": { + "type": "string" + }, + "strict": { + "type": "boolean" + } + }, + "required": [ + "contexts", + "checks" + ] + }, + "protected-branch-admin-enforced": { + "title": "Protected Branch Admin Enforced", + "description": "Protected Branch Admin Enforced", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins" + }, + "enabled": { + "type": "boolean", + "example": true + } + }, + "required": [ + "url", + "enabled" + ] + }, + "protected-branch-pull-request-review": { + "title": "Protected Branch Pull Request Review", + "description": "Protected Branch Pull Request Review", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions" + }, + "dismissal_restrictions": { + "type": "object", + "properties": { + "users": { + "description": "The list of users with review dismissal access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "teams": { + "description": "The list of teams with review dismissal access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "apps": { + "description": "The list of apps with review dismissal access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } + }, + "url": { + "type": "string", + "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions\"" + }, + "users_url": { + "type": "string", + "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users\"" + }, + "teams_url": { + "type": "string", + "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams\"" + } + } + }, + "bypass_pull_request_allowances": { + "type": "object", + "description": "Allow specific users, teams, or apps to bypass pull request requirements.", + "properties": { + "users": { + "description": "The list of users allowed to bypass pull request requirements.", + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "teams": { + "description": "The list of teams allowed to bypass pull request requirements.", + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "apps": { + "description": "The list of apps allowed to bypass pull request requirements.", + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } + } + } + }, + "dismiss_stale_reviews": { + "type": "boolean", + "example": true + }, + "require_code_owner_reviews": { + "type": "boolean", + "example": true + }, + "required_approving_review_count": { + "type": "integer", + "minimum": 0, + "maximum": 6, + "example": 2 + }, + "require_last_push_approval": { + "description": "Whether the most recent push must be approved by someone other than the person who pushed it.", + "type": "boolean", + "example": true, + "default": false + } + }, + "required": [ + "dismiss_stale_reviews", + "require_code_owner_reviews" + ] + }, + "branch-restriction-policy": { + "title": "Branch Restriction Policy", + "description": "Branch Restriction Policy", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "users_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "apps_url": { + "type": "string", + "format": "uri" + }, + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "user_view_type": { + "type": "string" + } + } + } + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "apps": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "members_url": { + "type": "string" + }, + "public_members_url": { + "type": "string" + }, + "avatar_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "gravatar_id": { + "type": "string", + "example": "\"\"" + }, + "html_url": { + "type": "string", + "example": "\"https://github.com/testorg-ea8ec76d71c3af4b\"" + }, + "followers_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers\"" + }, + "following_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}\"" + }, + "gists_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}\"" + }, + "starred_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}\"" + }, + "subscriptions_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions\"" + }, + "organizations_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs\"" + }, + "received_events_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events\"" + }, + "type": { + "type": "string", + "example": "\"Organization\"" + }, + "site_admin": { + "type": "boolean", + "example": false + }, + "user_view_type": { + "type": "string", + "example": "public" + } + } + }, + "name": { + "type": "string" + }, + "client_id": { + "type": "string" + }, + "description": { + "type": "string" + }, + "external_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "metadata": { + "type": "string" + }, + "contents": { + "type": "string" + }, + "issues": { + "type": "string" + }, + "single_file": { + "type": "string" + } + } + }, + "events": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "url", + "users_url", + "teams_url", + "apps_url", + "users", + "teams", + "apps" + ] + }, + "branch-protection": { + "title": "Branch Protection", + "description": "Branch Protection", + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "required_status_checks": { + "$ref": "#/components/schemas/protected-branch-required-status-check" + }, + "enforce_admins": { + "$ref": "#/components/schemas/protected-branch-admin-enforced" + }, + "required_pull_request_reviews": { + "$ref": "#/components/schemas/protected-branch-pull-request-review" + }, + "restrictions": { + "$ref": "#/components/schemas/branch-restriction-policy" + }, + "required_linear_history": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "allow_force_pushes": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "allow_deletions": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "block_creations": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "required_conversation_resolution": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "name": { + "type": "string", + "example": "\"branch/with/protection\"" + }, + "protection_url": { + "type": "string", + "example": "\"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection\"" + }, + "required_signatures": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures" + }, + "enabled": { + "type": "boolean", + "example": true + } + }, + "required": [ + "url", + "enabled" + ] + }, + "lock_branch": { + "type": "object", + "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch.", + "properties": { + "enabled": { + "default": false, + "type": "boolean" + } + } + }, + "allow_fork_syncing": { + "type": "object", + "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing.", + "properties": { + "enabled": { + "default": false, + "type": "boolean" + } + } + } + } + }, + "short-branch": { + "title": "Short Branch", + "description": "Short Branch", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "commit": { + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url" + ] + }, + "protected": { + "type": "boolean" + }, + "protection": { + "$ref": "#/components/schemas/branch-protection" + }, + "protection_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "commit", + "protected" + ] + }, + "nullable-git-user": { + "title": "Git User", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "\"Chris Wanstrath\"" + }, + "email": { + "type": "string", + "example": "\"chris@ozmm.org\"" + }, + "date": { + "type": "string", + "format": "date-time", + "example": "\"2007-10-29T02:42:39.000-07:00\"" + } + }, + "nullable": true + }, + "verification": { + "title": "Verification", + "type": "object", + "properties": { + "verified": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "payload": { + "type": "string", + "nullable": true + }, + "signature": { + "type": "string", + "nullable": true + }, + "verified_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "verified", + "reason", + "payload", + "signature", + "verified_at" + ] + }, + "diff-entry": { + "title": "Diff Entry", + "description": "Diff Entry", + "type": "object", + "properties": { + "sha": { + "type": "string", + "nullable": true, + "example": "bbcd538c8e72b8c175046e27cc8f907076331401" + }, + "filename": { + "type": "string", + "example": "file1.txt" + }, + "status": { + "type": "string", + "enum": [ + "added", + "removed", + "modified", + "renamed", + "copied", + "changed", + "unchanged" + ], + "example": "added" + }, + "additions": { + "type": "integer", + "example": 103 + }, + "deletions": { + "type": "integer", + "example": 21 + }, + "changes": { + "type": "integer", + "example": 124 + }, + "blob_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" + }, + "raw_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" + }, + "contents_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "patch": { + "type": "string", + "example": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + }, + "previous_filename": { + "type": "string", + "example": "file.txt" + } + }, + "required": [ + "additions", + "blob_url", + "changes", + "contents_url", + "deletions", + "filename", + "raw_url", + "sha", + "status" + ] + }, + "commit": { + "title": "Commit", + "description": "Commit", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "sha": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "node_id": { + "type": "string", + "example": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments" + }, + "commit": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "author": { + "$ref": "#/components/schemas/nullable-git-user" + }, + "committer": { + "$ref": "#/components/schemas/nullable-git-user" + }, + "message": { + "type": "string", + "example": "Fix all the bugs" + }, + "comment_count": { + "type": "integer", + "example": 0 + }, + "tree": { + "type": "object", + "properties": { + "sha": { + "type": "string", + "example": "827efc6d56897b048c772eb4087f854f46256132" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132" + } + }, + "required": [ + "sha", + "url" + ] + }, + "verification": { + "$ref": "#/components/schemas/verification" + } + }, + "required": [ + "author", + "committer", + "comment_count", + "message", + "tree", + "url" + ] + }, + "author": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/empty-object" + } + ] + }, + "committer": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/empty-object" + } + ] + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sha": { + "type": "string", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd" + } + }, + "required": [ + "sha", + "url" + ] + } + }, + "stats": { + "type": "object", + "properties": { + "additions": { + "type": "integer" + }, + "deletions": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/diff-entry" + } + } + }, + "required": [ + "url", + "sha", + "node_id", + "html_url", + "comments_url", + "commit", + "author", + "committer", + "parents" + ] + }, + "branch-with-protection": { + "title": "Branch With Protection", + "description": "Branch With Protection", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "commit": { + "$ref": "#/components/schemas/commit" + }, + "_links": { + "type": "object", + "properties": { + "html": { + "type": "string" + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "html", + "self" + ] + }, + "protected": { + "type": "boolean" + }, + "protection": { + "$ref": "#/components/schemas/branch-protection" + }, + "protection_url": { + "type": "string", + "format": "uri" + }, + "pattern": { + "type": "string", + "example": "\"mas*\"" + }, + "required_approving_review_count": { + "type": "integer", + "example": 1 + } + }, + "required": [ + "name", + "commit", + "_links", + "protection", + "protected", + "protection_url" + ] + }, + "status-check-policy": { + "title": "Status Check Policy", + "description": "Status Check Policy", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks" + }, + "strict": { + "type": "boolean", + "example": true + }, + "contexts": { + "type": "array", + "example": [ + "continuous-integration/travis-ci" + ], + "items": { + "type": "string" + } + }, + "checks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "context": { + "type": "string", + "example": "continuous-integration/travis-ci" + }, + "app_id": { + "type": "integer", + "nullable": true + } + }, + "required": [ + "context", + "app_id" + ] + } + }, + "contexts_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts" + } + }, + "required": [ + "url", + "contexts_url", + "strict", + "contexts", + "checks" + ] + }, + "protected-branch": { + "title": "Protected Branch", + "description": "Branch protections protect branches", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "required_status_checks": { + "$ref": "#/components/schemas/status-check-policy" + }, + "required_pull_request_reviews": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "dismiss_stale_reviews": { + "type": "boolean" + }, + "require_code_owner_reviews": { + "type": "boolean" + }, + "required_approving_review_count": { + "type": "integer" + }, + "require_last_push_approval": { + "description": "Whether the most recent push must be approved by someone other than the person who pushed it.", + "type": "boolean", + "default": false + }, + "dismissal_restrictions": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "users_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "apps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } + } + }, + "required": [ + "url", + "users_url", + "teams_url", + "users", + "teams" + ] + }, + "bypass_pull_request_allowances": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "apps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } + } + }, + "required": [ + "users", + "teams" + ] + } + }, + "required": [ + "url" + ] + }, + "required_signatures": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures" + }, + "enabled": { + "type": "boolean", + "example": true + } + }, + "required": [ + "url", + "enabled" + ] + }, + "enforce_admins": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "url", + "enabled" + ] + }, + "required_linear_history": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] + }, + "allow_force_pushes": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] + }, + "allow_deletions": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] + }, + "restrictions": { + "$ref": "#/components/schemas/branch-restriction-policy" + }, + "required_conversation_resolution": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "block_creations": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] + }, + "lock_branch": { + "type": "object", + "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch.", + "properties": { + "enabled": { + "default": false, + "type": "boolean" + } + }, + "additionalProperties": false + }, + "allow_fork_syncing": { + "type": "object", + "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing.", + "properties": { + "enabled": { + "default": false, + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "required": [ + "url" + ] + }, + "deployment-simple": { + "title": "Deployment", + "description": "A deployment created as the result of an Actions check run from a workflow that references an environment", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/1" + }, + "id": { + "description": "Unique identifier of the deployment", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOkRlcGxveW1lbnQx" + }, + "task": { + "description": "Parameter to specify a task to execute", + "example": "deploy", + "type": "string" + }, + "original_environment": { + "type": "string", + "example": "staging" + }, + "environment": { + "description": "Name for the target deployment environment.", + "example": "production", + "type": "string" + }, + "description": { + "type": "string", + "example": "Deploy request from hubot", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "statuses_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example" + }, + "transient_environment": { + "description": "Specifies if the given environment is will no longer exist at some point in the future. Default: false.", + "example": true, + "type": "boolean" + }, + "production_environment": { + "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.", + "example": true, + "type": "boolean" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + } + }, + "required": [ + "id", + "node_id", + "task", + "environment", + "description", + "statuses_url", + "repository_url", + "url", + "created_at", + "updated_at" + ] + }, + "check-run": { + "title": "CheckRun", + "description": "A check performed on the code of a given code change", + "type": "object", + "properties": { + "id": { + "description": "The id of the check.", + "example": 21, + "type": "integer", + "format": "int64" + }, + "head_sha": { + "description": "The SHA of the commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "node_id": { + "type": "string", + "example": "MDg6Q2hlY2tSdW40" + }, + "external_id": { + "type": "string", + "example": "42", + "nullable": true + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-runs/4" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/runs/4", + "nullable": true + }, + "details_url": { + "type": "string", + "example": "https://example.com", + "nullable": true + }, + "status": { + "description": "The phase of the lifecycle that the check is currently in. Statuses of waiting, requested, and pending are reserved for GitHub Actions check runs.", + "example": "queued", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting", + "requested", + "pending" + ] + }, + "conclusion": { + "type": "string", + "example": "neutral", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ], + "nullable": true + }, + "started_at": { + "type": "string", + "format": "date-time", + "example": "2018-05-04T01:14:52Z", + "nullable": true + }, + "completed_at": { + "type": "string", + "format": "date-time", + "example": "2018-05-04T01:14:52Z", + "nullable": true + }, + "output": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "summary": { + "type": "string", + "nullable": true + }, + "text": { + "type": "string", + "nullable": true + }, + "annotations_count": { + "type": "integer" + }, + "annotations_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "title", + "summary", + "text", + "annotations_count", + "annotations_url" + ] + }, + "name": { + "description": "The name of the check.", + "example": "test-coverage", + "type": "string" + }, + "check_suite": { + "type": "object", + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "nullable": true + }, + "app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "pull_requests": { + "description": "Pull requests that are open with a `head_sha` or `head_branch` that matches the check. The returned pull requests do not necessarily indicate pull requests that triggered the check.", + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-minimal" + } + }, + "deployment": { + "$ref": "#/components/schemas/deployment-simple" + } + }, + "required": [ + "id", + "node_id", + "head_sha", + "name", + "url", + "html_url", + "details_url", + "status", + "conclusion", + "started_at", + "completed_at", + "external_id", + "check_suite", + "output", + "app", + "pull_requests" + ] + }, + "check-annotation": { + "title": "Check Annotation", + "description": "Check Annotation", + "type": "object", + "properties": { + "path": { + "type": "string", + "example": "README.md" + }, + "start_line": { + "type": "integer", + "example": 2 + }, + "end_line": { + "type": "integer", + "example": 2 + }, + "start_column": { + "type": "integer", + "example": 5, + "nullable": true + }, + "end_column": { + "type": "integer", + "example": 10, + "nullable": true + }, + "annotation_level": { + "type": "string", + "example": "warning", + "nullable": true + }, + "title": { + "type": "string", + "example": "Spell Checker", + "nullable": true + }, + "message": { + "type": "string", + "example": "Check your spelling for 'banaas'.", + "nullable": true + }, + "raw_details": { + "type": "string", + "example": "Do you mean 'bananas' or 'banana'?", + "nullable": true + }, + "blob_href": { + "type": "string" + } + }, + "required": [ + "path", + "blob_href", + "start_line", + "end_line", + "start_column", + "end_column", + "annotation_level", + "title", + "message", + "raw_details" + ] + }, + "simple-commit": { + "title": "Simple Commit", + "description": "A commit.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd" + }, + "tree_id": { + "type": "string", + "description": "SHA for the commit's tree" + }, + "message": { + "description": "Message describing the purpose of the commit", + "example": "Fix #42", + "type": "string" + }, + "timestamp": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "author": { + "type": "object", + "description": "Information about the Git author", + "properties": { + "name": { + "description": "Name of the commit's author", + "example": "Monalisa Octocat", + "type": "string" + }, + "email": { + "description": "Git email address of the commit's author", + "example": "monalisa.octocat@example.com", + "type": "string", + "format": "email" + } + }, + "required": [ + "name", + "email" + ], + "nullable": true + }, + "committer": { + "type": "object", + "description": "Information about the Git committer", + "properties": { + "name": { + "description": "Name of the commit's committer", + "example": "Monalisa Octocat", + "type": "string" + }, + "email": { + "description": "Git email address of the commit's committer", + "example": "monalisa.octocat@example.com", + "type": "string", + "format": "email" + } + }, + "required": [ + "name", + "email" + ], + "nullable": true + } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ] + }, + "check-suite": { + "title": "CheckSuite", + "description": "A suite of checks performed on the code of a given code change", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 5, + "format": "int64" + }, + "node_id": { + "type": "string", + "example": "MDEwOkNoZWNrU3VpdGU1" + }, + "head_branch": { + "type": "string", + "example": "master", + "nullable": true + }, + "head_sha": { + "description": "The SHA of the head commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "status": { + "type": "string", + "description": "The phase of the lifecycle that the check suite is currently in. Statuses of waiting, requested, and pending are reserved for GitHub Actions check suites.", + "example": "completed", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting", + "requested", + "pending" + ], + "nullable": true + }, + "conclusion": { + "type": "string", + "example": "neutral", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required", + "startup_failure", + "stale", + null + ], + "nullable": true + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-suites/5", + "nullable": true + }, + "before": { + "type": "string", + "example": "146e867f55c26428e5f9fade55a9bbf5e95a7912", + "nullable": true + }, + "after": { + "type": "string", + "example": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "nullable": true + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-minimal" + }, + "nullable": true + }, + "app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "head_commit": { + "$ref": "#/components/schemas/simple-commit" + }, + "latest_check_runs_count": { + "type": "integer" + }, + "check_runs_url": { + "type": "string" + }, + "rerequestable": { + "type": "boolean" + }, + "runs_rerequestable": { + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "head_branch", + "status", + "conclusion", + "head_sha", + "url", + "before", + "after", + "created_at", + "updated_at", + "app", + "head_commit", + "repository", + "latest_check_runs_count", + "check_runs_url", + "pull_requests" + ] + }, + "check-suite-preference": { + "title": "Check Suite Preference", + "description": "Check suite configuration preferences for a repository.", + "type": "object", + "required": [ + "preferences", + "repository" + ], + "properties": { + "preferences": { + "type": "object", + "properties": { + "auto_trigger_checks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "app_id": { + "type": "integer" + }, + "setting": { + "type": "boolean" + } + }, + "required": [ + "app_id", + "setting" + ] + } + } + } + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + } + } + }, + "code-scanning-alert-items": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/alert-updated-at" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "instances_url": { + "$ref": "#/components/schemas/alert-instances-url" + }, + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" + }, + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" + }, + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" + }, + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "rule": { + "$ref": "#/components/schemas/code-scanning-alert-rule-summary" + }, + "tool": { + "$ref": "#/components/schemas/code-scanning-analysis-tool" + }, + "most_recent_instance": { + "$ref": "#/components/schemas/code-scanning-alert-instance" + }, + "dismissal_approved_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "instances_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool", + "most_recent_instance" + ] + }, + "code-scanning-alert-rule": { + "type": "object", + "properties": { + "id": { + "nullable": true, + "type": "string", + "description": "A unique identifier for the rule used to detect the alert." + }, + "name": { + "type": "string", + "description": "The name of the rule used to detect the alert." + }, + "severity": { + "nullable": true, + "type": "string", + "description": "The severity of the alert.", + "enum": [ + "none", + "note", + "warning", + "error" + ] + }, + "security_severity_level": { + "nullable": true, + "type": "string", + "description": "The security severity of the alert.", + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "description": { + "type": "string", + "description": "A short description of the rule used to detect the alert." + }, + "full_description": { + "type": "string", + "description": "A description of the rule used to detect the alert." + }, + "tags": { + "nullable": true, + "type": "array", + "description": "A set of tags applicable for the rule.", + "items": { + "type": "string" + } + }, + "help": { + "nullable": true, + "type": "string", + "description": "Detailed documentation for the rule as GitHub Flavored Markdown." + }, + "help_uri": { + "nullable": true, + "type": "string", + "description": "A link to the documentation for the rule used to detect the alert." + } + } + }, + "code-scanning-alert": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/alert-updated-at" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "instances_url": { + "$ref": "#/components/schemas/alert-instances-url" + }, + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" + }, + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" + }, + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" + }, + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "rule": { + "$ref": "#/components/schemas/code-scanning-alert-rule" + }, + "tool": { + "$ref": "#/components/schemas/code-scanning-analysis-tool" + }, + "most_recent_instance": { + "$ref": "#/components/schemas/code-scanning-alert-instance" + }, + "dismissal_approved_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "instances_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool", + "most_recent_instance" + ] + }, + "code-scanning-alert-set-state": { + "description": "Sets the state of the code scanning alert. You must provide `dismissed_reason` when you set the state to `dismissed`.", + "type": "string", + "enum": [ + "open", + "dismissed" + ] + }, + "code-scanning-alert-create-request": { + "type": "boolean", + "description": "If `true`, attempt to create an alert dismissal request." + }, + "code-scanning-alert-assignees": { + "description": "The list of users to assign to the code scanning alert. An empty array unassigns all previous assignees from the alert.", + "type": "array", + "items": { + "type": "string" + } + }, + "code-scanning-autofix-status": { + "type": "string", + "description": "The status of an autofix.", + "enum": [ + "pending", + "error", + "success", + "outdated" + ] + }, + "code-scanning-autofix-description": { + "type": "string", + "description": "The description of an autofix.", + "nullable": true + }, + "code-scanning-autofix-started-at": { + "type": "string", + "description": "The start time of an autofix in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "code-scanning-autofix": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/code-scanning-autofix-status" + }, + "description": { + "$ref": "#/components/schemas/code-scanning-autofix-description" + }, + "started_at": { + "$ref": "#/components/schemas/code-scanning-autofix-started-at" + } + }, + "required": [ + "status", + "description", + "started_at" + ] + }, + "code-scanning-autofix-commits": { + "description": "Commit an autofix for a code scanning alert", + "type": "object", + "properties": { + "target_ref": { + "description": "The Git reference of target branch for the commit. Branch needs to already exist. For more information, see \"[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)\" in the Git documentation.", + "type": "string" + }, + "message": { + "description": "Commit message to be used.", + "type": "string" + } + }, + "nullable": true + }, + "code-scanning-autofix-commits-response": { + "type": "object", + "properties": { + "target_ref": { + "type": "string", + "description": "The Git reference of target branch for the commit. For more information, see \"[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)\" in the Git documentation." + }, + "sha": { + "type": "string", + "description": "SHA of commit with autofix." + } + } + }, + "code-scanning-alert-instance-state": { + "type": "string", + "description": "State of a code scanning alert instance.", + "nullable": true, + "enum": [ + "open", + "fixed" + ] + }, + "code-scanning-alert-instance-list": { + "type": "object", + "properties": { + "ref": { + "$ref": "#/components/schemas/code-scanning-ref" + }, + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + }, + "environment": { + "$ref": "#/components/schemas/code-scanning-alert-environment" + }, + "category": { + "$ref": "#/components/schemas/code-scanning-analysis-category" + }, + "state": { + "$ref": "#/components/schemas/code-scanning-alert-instance-state" + }, + "commit_sha": { + "type": "string" + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "location": { + "$ref": "#/components/schemas/code-scanning-alert-location" + }, + "html_url": { + "type": "string" + }, + "classifications": { + "type": "array", + "description": "Classifications that have been applied to the file that triggered the alert.\nFor example identifying it as documentation, or a generated file.", + "items": { + "$ref": "#/components/schemas/code-scanning-alert-classification" + } + } + } + }, + "code-scanning-analysis-sarif-id": { + "type": "string", + "description": "An identifier for the upload.", + "example": "6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53" + }, + "code-scanning-analysis-commit-sha": { + "description": "The SHA of the commit to which the analysis you are uploading relates.", + "type": "string", + "minLength": 40, + "maxLength": 40, + "pattern": "^[0-9a-fA-F]+$" + }, + "code-scanning-analysis-environment": { + "type": "string", + "description": "Identifies the variable values associated with the environment in which this analysis was performed." + }, + "code-scanning-analysis-created-at": { + "type": "string", + "description": "The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "code-scanning-analysis-url": { + "type": "string", + "description": "The REST API URL of the analysis resource.", + "format": "uri", + "readOnly": true + }, + "code-scanning-analysis": { + "type": "object", + "properties": { + "ref": { + "$ref": "#/components/schemas/code-scanning-ref" + }, + "commit_sha": { + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" + }, + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + }, + "environment": { + "$ref": "#/components/schemas/code-scanning-analysis-environment" + }, + "category": { + "$ref": "#/components/schemas/code-scanning-analysis-category" + }, + "error": { + "type": "string", + "example": "error reading field xyz" + }, + "created_at": { + "$ref": "#/components/schemas/code-scanning-analysis-created-at" + }, + "results_count": { + "type": "integer", + "description": "The total number of results in the analysis." + }, + "rules_count": { + "type": "integer", + "description": "The total number of rules used in the analysis." + }, + "id": { + "type": "integer", + "description": "Unique identifier for this analysis." + }, + "url": { + "$ref": "#/components/schemas/code-scanning-analysis-url" + }, + "sarif_id": { + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + }, + "tool": { + "$ref": "#/components/schemas/code-scanning-analysis-tool" + }, + "deletable": { + "type": "boolean" + }, + "warning": { + "type": "string", + "description": "Warning generated when processing the analysis", + "example": "123 results were ignored" + } + }, + "required": [ + "ref", + "commit_sha", + "analysis_key", + "environment", + "error", + "created_at", + "results_count", + "rules_count", + "id", + "url", + "sarif_id", + "tool", + "deletable", + "warning" + ] + }, + "code-scanning-analysis-deletion": { + "title": "Analysis deletion", + "description": "Successful deletion of a code scanning analysis", + "type": "object", + "properties": { + "next_analysis_url": { + "type": "string", + "description": "Next deletable analysis in chain, without last analysis deletion confirmation", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "confirm_delete_url": { + "type": "string", + "description": "Next deletable analysis in chain, with last analysis deletion confirmation", + "format": "uri", + "readOnly": true, + "nullable": true + } + }, + "required": [ + "next_analysis_url", + "confirm_delete_url" + ] + }, + "code-scanning-codeql-database": { + "title": "CodeQL Database", + "description": "A CodeQL database.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the CodeQL database." + }, + "name": { + "type": "string", + "description": "The name of the CodeQL database." + }, + "language": { + "type": "string", + "description": "The language of the CodeQL database." + }, + "uploader": { + "$ref": "#/components/schemas/simple-user" + }, + "content_type": { + "type": "string", + "description": "The MIME type of the CodeQL database file." + }, + "size": { + "type": "integer", + "description": "The size of the CodeQL database file in bytes." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time at which the CodeQL database was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time at which the CodeQL database was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL at which to download the CodeQL database. The `Accept` header must be set to the value of the `content_type` property." + }, + "commit_oid": { + "type": "string", + "description": "The commit SHA of the repository at the time the CodeQL database was created.", + "nullable": true + } + }, + "required": [ + "id", + "name", + "language", + "uploader", + "content_type", + "size", + "created_at", + "updated_at", + "url" + ] + }, + "code-scanning-variant-analysis-language": { + "type": "string", + "description": "The language targeted by the CodeQL query", + "enum": [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ] + }, + "code-scanning-variant-analysis-repository": { + "title": "Repository Identifier", + "description": "Repository Identifier", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269, + "description": "A unique identifier of the repository." + }, + "name": { + "type": "string", + "example": "Hello-World", + "description": "The name of the repository." + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World", + "description": "The full, globally unique, name of the repository." + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + } + }, + "required": [ + "full_name", + "id", + "name", + "private", + "stargazers_count", + "updated_at" + ] + }, + "code-scanning-variant-analysis-status": { + "type": "string", + "description": "The new status of the CodeQL variant analysis repository task.", + "enum": [ + "pending", + "in_progress", + "succeeded", + "failed", + "canceled", + "timed_out" + ] + }, + "code-scanning-variant-analysis-skipped-repo-group": { + "type": "object", + "properties": { + "repository_count": { + "type": "integer", + "description": "The total number of repositories that were skipped for this reason.", + "example": 2 + }, + "repositories": { + "type": "array", + "description": "A list of repositories that were skipped. This list may not include all repositories that were skipped. This is only available when the repository was found and the user has access to it.", + "items": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-repository" + } + } + }, + "required": [ + "repository_count", + "repositories" + ] + }, + "code-scanning-variant-analysis": { + "title": "Variant Analysis", + "description": "A run of a CodeQL query against one or more repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the variant analysis." + }, + "controller_repo": { + "$ref": "#/components/schemas/simple-repository" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "query_language": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-language" + }, + "query_pack_url": { + "type": "string", + "description": "The download url for the query pack." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time at which the variant analysis was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time at which the variant analysis was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "completed_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "The date and time at which the variant analysis was completed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the variant analysis has not yet completed or this information is not available." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "succeeded", + "failed", + "cancelled" + ] + }, + "actions_workflow_run_id": { + "type": "integer", + "description": "The GitHub Actions workflow run used to execute this variant analysis. This is only available if the workflow run has started." + }, + "failure_reason": { + "type": "string", + "enum": [ + "no_repos_queried", + "actions_workflow_run_failed", + "internal_error" + ], + "description": "The reason for a failure of the variant analysis. This is only available if the variant analysis has failed." + }, + "scanned_repositories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "repository": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-repository" + }, + "analysis_status": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-status" + }, + "result_count": { + "type": "integer", + "description": "The number of results in the case of a successful analysis. This is only available for successful analyses." + }, + "artifact_size_in_bytes": { + "type": "integer", + "description": "The size of the artifact. This is only available for successful analyses." + }, + "failure_message": { + "type": "string", + "description": "The reason of the failure of this repo task. This is only available if the repository task has failed." + } + }, + "required": [ + "repository", + "analysis_status" + ] + } + }, + "skipped_repositories": { + "type": "object", + "description": "Information about repositories that were skipped from processing. This information is only available to the user that initiated the variant analysis.", + "properties": { + "access_mismatch_repos": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" + }, + "not_found_repos": { + "type": "object", + "properties": { + "repository_count": { + "type": "integer", + "description": "The total number of repositories that were skipped for this reason.", + "example": 2 + }, + "repository_full_names": { + "type": "array", + "description": "A list of full repository names that were skipped. This list may not include all repositories that were skipped.", + "items": { + "type": "string" + } + } + }, + "required": [ + "repository_count", + "repository_full_names" + ] + }, + "no_codeql_db_repos": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" + }, + "over_limit_repos": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" + } + }, + "required": [ + "access_mismatch_repos", + "not_found_repos", + "no_codeql_db_repos", + "over_limit_repos" + ] + } + }, + "required": [ + "id", + "controller_repo", + "actor", + "query_language", + "query_pack_url", + "status" + ] + }, + "code-scanning-variant-analysis-repo-task": { + "type": "object", + "properties": { + "repository": { + "$ref": "#/components/schemas/simple-repository" + }, + "analysis_status": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-status" + }, + "artifact_size_in_bytes": { + "type": "integer", + "description": "The size of the artifact. This is only available for successful analyses." + }, + "result_count": { + "type": "integer", + "description": "The number of results in the case of a successful analysis. This is only available for successful analyses." + }, + "failure_message": { + "type": "string", + "description": "The reason of the failure of this repo task. This is only available if the repository task has failed." + }, + "database_commit_sha": { + "type": "string", + "description": "The SHA of the commit the CodeQL database was built against. This is only available for successful analyses." + }, + "source_location_prefix": { + "type": "string", + "description": "The source location prefix to use. This is only available for successful analyses." + }, + "artifact_url": { + "type": "string", + "description": "The URL of the artifact. This is only available for successful analyses." + } + }, + "required": [ + "repository", + "analysis_status" + ] + }, + "code-scanning-default-setup": { + "description": "Configuration for code scanning default setup.", + "type": "object", + "properties": { + "state": { + "description": "Code scanning default setup has been configured or not.", + "type": "string", + "enum": [ + "configured", + "not-configured" + ] + }, + "languages": { + "description": "Languages to be analyzed.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "actions", + "c-cpp", + "csharp", + "go", + "java-kotlin", + "javascript-typescript", + "javascript", + "python", + "ruby", + "typescript", + "swift" + ] + } + }, + "runner_type": { + "description": "Runner type to be used.", + "nullable": true, + "type": "string", + "enum": [ + "standard", + "labeled" + ] + }, + "runner_label": { + "description": "Runner label to be used if the runner type is labeled.", + "nullable": true, + "type": "string", + "example": "code-scanning" + }, + "query_suite": { + "description": "CodeQL query suite to be used.", + "type": "string", + "enum": [ + "default", + "extended" + ] + }, + "threat_model": { + "description": "Threat model to be used for code scanning analysis. Use `remote` to analyze only network sources and `remote_and_local` to include local sources like filesystem access, command-line arguments, database reads, environment variable and standard input.", + "type": "string", + "enum": [ + "remote", + "remote_and_local" + ] + }, + "updated_at": { + "description": "Timestamp of latest configuration update.", + "nullable": true, + "type": "string", + "format": "date-time", + "example": "2023-12-06T14:20:20.000Z" + }, + "schedule": { + "description": "The frequency of the periodic analysis.", + "nullable": true, + "type": "string", + "enum": [ + "weekly" + ] + } + } + }, + "code-scanning-default-setup-update": { + "description": "Configuration for code scanning default setup.", + "type": "object", + "properties": { + "state": { + "description": "The desired state of code scanning default setup.", + "type": "string", + "enum": [ + "configured", + "not-configured" + ] + }, + "runner_type": { + "description": "Runner type to be used.", + "type": "string", + "enum": [ + "standard", + "labeled" + ] + }, + "runner_label": { + "nullable": true, + "description": "Runner label to be used if the runner type is labeled.", + "type": "string", + "example": "code-scanning" + }, + "query_suite": { + "description": "CodeQL query suite to be used.", + "type": "string", + "enum": [ + "default", + "extended" + ] + }, + "threat_model": { + "description": "Threat model to be used for code scanning analysis. Use `remote` to analyze only network sources and `remote_and_local` to include local sources like filesystem access, command-line arguments, database reads, environment variable and standard input.", + "type": "string", + "enum": [ + "remote", + "remote_and_local" + ] + }, + "languages": { + "description": "CodeQL languages to be analyzed.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "actions", + "c-cpp", + "csharp", + "go", + "java-kotlin", + "javascript-typescript", + "python", + "ruby", + "swift" + ] + } + } + }, + "additionalProperties": false + }, + "code-scanning-default-setup-update-response": { + "description": "You can use `run_url` to track the status of the run. This includes a property status and conclusion.\nYou should not rely on this always being an actions workflow run object.", + "type": "object", + "properties": { + "run_id": { + "description": "ID of the corresponding run.", + "type": "integer" + }, + "run_url": { + "description": "URL of the corresponding run.", + "type": "string" + } + } + }, + "code-scanning-ref-full": { + "type": "string", + "description": "The full Git reference, formatted as `refs/heads/`,\n`refs/tags/`, `refs/pull//merge`, or `refs/pull//head`.", + "pattern": "^refs/(heads|tags|pull)/.*$", + "example": "refs/heads/main" + }, + "code-scanning-analysis-sarif-file": { + "description": "A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string. For more information, see \"[SARIF support for code scanning](https://docs.github.com/code-security/secure-coding/sarif-support-for-code-scanning).\"", + "type": "string" + }, + "code-scanning-sarifs-receipt": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + }, + "url": { + "type": "string", + "description": "The REST API URL for checking the status of the upload.", + "format": "uri", + "readOnly": true + } + } + }, + "code-scanning-sarifs-status": { + "type": "object", + "properties": { + "processing_status": { + "type": "string", + "enum": [ + "pending", + "complete", + "failed" + ], + "description": "`pending` files have not yet been processed, while `complete` means results from the SARIF have been stored. `failed` files have either not been processed at all, or could only be partially processed." + }, + "analyses_url": { + "type": "string", + "description": "The REST API URL for getting the analyses associated with the upload.", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "errors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Any errors that ocurred during processing of the delivery.", + "readOnly": true, + "nullable": true + } + } + }, + "code-security-configuration-for-repository": { + "type": "object", + "description": "Code security configuration associated with a repository and attachment status", + "properties": { + "status": { + "type": "string", + "description": "The attachment status of the code security configuration on the repository.", + "enum": [ + "attached", + "attaching", + "detached", + "removed", + "enforced", + "failed", + "updating", + "removed_by_enterprise" + ] + }, + "configuration": { + "$ref": "#/components/schemas/code-security-configuration" + } + } + }, + "codeowners-errors": { + "title": "CODEOWNERS errors", + "description": "A list of errors found in a repo's CODEOWNERS file", + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "line": { + "description": "The line number where this errors occurs.", + "type": "integer", + "example": 7 + }, + "column": { + "description": "The column number where this errors occurs.", + "type": "integer", + "example": 3 + }, + "source": { + "description": "The contents of the line where the error occurs.", + "type": "string", + "example": "* user" + }, + "kind": { + "description": "The type of error.", + "type": "string", + "example": "Invalid owner" + }, + "suggestion": { + "description": "Suggested action to fix the error. This will usually be `null`, but is provided for some common errors.", + "type": "string", + "nullable": true, + "example": "The pattern `/` will never match anything, did you mean `*` instead?" + }, + "message": { + "description": "A human-readable description of the error, combining information from multiple fields, laid out for display in a monospaced typeface (for example, a command-line setting).", + "type": "string", + "example": "Invalid owner on line 7:\n\n * user\n ^" + }, + "path": { + "description": "The path of the file where the error occured.", + "type": "string", + "example": ".github/CODEOWNERS" + } + }, + "required": [ + "line", + "column", + "kind", + "message", + "path" + ] + } + } + }, + "required": [ + "errors" + ] + }, + "codespace-machine": { + "type": "object", + "title": "Codespace machine", + "description": "A description of the machine powering a codespace.", + "properties": { + "name": { + "type": "string", + "description": "The name of the machine.", + "example": "standardLinux" + }, + "display_name": { + "type": "string", + "description": "The display name of the machine includes cores, memory, and storage.", + "example": "4 cores, 16 GB RAM, 64 GB storage" + }, + "operating_system": { + "type": "string", + "description": "The operating system of the machine.", + "example": "linux" + }, + "storage_in_bytes": { + "type": "integer", + "description": "How much storage is available to the codespace.", + "example": 68719476736 + }, + "memory_in_bytes": { + "type": "integer", + "description": "How much memory is available to the codespace.", + "example": 17179869184 + }, + "cpus": { + "type": "integer", + "description": "How many cores are available to the codespace.", + "example": 4 + }, + "prebuild_availability": { + "type": "string", + "description": "Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be \"null\" if prebuilds are not supported or prebuild availability could not be determined. Value will be \"none\" if no prebuild is available. Latest values \"ready\" and \"in_progress\" indicate the prebuild availability status.", + "example": "ready", + "enum": [ + "none", + "ready", + "in_progress" + ], + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "operating_system", + "storage_in_bytes", + "memory_in_bytes", + "cpus", + "prebuild_availability" + ] + }, + "codespaces-permissions-check-for-devcontainer": { + "title": "Codespaces Permissions Check", + "description": "Permission check result for a given devcontainer config.", + "type": "object", + "properties": { + "accepted": { + "description": "Whether the user has accepted the permissions defined by the devcontainer config", + "example": true, + "type": "boolean" + } + }, + "required": [ + "accepted" + ] + }, + "repo-codespaces-secret": { + "title": "Codespaces Secret", + "description": "Set repository secrets for GitHub Codespaces.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + }, + "collaborator": { + "title": "Collaborator", + "description": "Collaborator", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "email": { + "nullable": true, + "type": "string" + }, + "name": { + "nullable": true, + "type": "string" + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "user_view_type": { + "type": "string", + "example": "public" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "role_name" + ] + }, + "repository-invitation": { + "title": "Repository Invitation", + "description": "Repository invitations let you manage who you collaborate with.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository invitation.", + "example": 42, + "type": "integer", + "format": "int64" + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "invitee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "inviter": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "permissions": { + "description": "The permission associated with the invitation.", + "example": "read", + "type": "string", + "enum": [ + "read", + "write", + "admin", + "triage", + "maintain" + ] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-06-13T14:52:50-05:00" + }, + "expired": { + "description": "Whether or not the invitation has expired", + "type": "boolean" + }, + "url": { + "description": "URL for the repository invitation", + "example": "https://api.github.com/user/repository-invitations/1", + "type": "string" + }, + "html_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World/invitations" + }, + "node_id": { + "type": "string" + } + }, + "required": [ + "id", + "node_id", + "permissions", + "inviter", + "invitee", + "repository", + "url", + "html_url", + "created_at" + ] + }, + "nullable-collaborator": { + "title": "Collaborator", + "description": "Collaborator", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "email": { + "nullable": true, + "type": "string" + }, + "name": { + "nullable": true, + "type": "string" + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "user_view_type": { + "type": "string", + "example": "public" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "role_name" + ], + "nullable": true + }, + "repository-collaborator-permission": { + "title": "Repository Collaborator Permission", + "description": "Repository Collaborator Permission", + "type": "object", + "properties": { + "permission": { + "type": "string" + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "user": { + "$ref": "#/components/schemas/nullable-collaborator" + } + }, + "required": [ + "permission", + "role_name", + "user" + ] + }, + "commit-comment": { + "title": "Commit Comment", + "description": "Commit Comment", + "type": "object", + "properties": { + "html_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "body": { + "type": "string" + }, + "path": { + "type": "string", + "nullable": true + }, + "position": { + "type": "integer", + "nullable": true + }, + "line": { + "type": "integer", + "nullable": true + }, + "commit_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + } + }, + "required": [ + "url", + "html_url", + "id", + "node_id", + "user", + "position", + "line", + "path", + "commit_id", + "body", + "author_association", + "created_at", + "updated_at" + ] + }, + "reaction": { + "title": "Reaction", + "description": "Reactions to conversations provide a way to help people express their feelings more simply and effectively.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDg6UmVhY3Rpb24x" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "content": { + "description": "The reaction to use", + "example": "heart", + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-05-20T20:09:31Z" + } + }, + "required": [ + "id", + "node_id", + "user", + "content", + "created_at" + ] + }, + "branch-short": { + "title": "Branch Short", + "description": "Branch Short", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "commit": { + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "sha", + "url" + ] + }, + "protected": { + "type": "boolean" + } + }, + "required": [ + "name", + "commit", + "protected" + ] + }, + "simple-commit-status": { + "title": "Simple Commit Status", + "type": "object", + "properties": { + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "state": { + "type": "string" + }, + "context": { + "type": "string" + }, + "target_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "required": { + "type": "boolean", + "nullable": true + }, + "avatar_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "description", + "id", + "node_id", + "state", + "context", + "target_url", + "avatar_url", + "url", + "created_at", + "updated_at" + ] + }, + "combined-commit-status": { + "title": "Combined Commit Status", + "description": "Combined Commit Status", + "type": "object", + "properties": { + "state": { + "type": "string" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-commit-status" + } + }, + "sha": { + "type": "string" + }, + "total_count": { + "type": "integer" + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "commit_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "state", + "sha", + "total_count", + "statuses", + "repository", + "commit_url", + "url" + ] + }, + "status": { + "title": "Status", + "description": "The status of a commit.", + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "avatar_url": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "state": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "target_url": { + "type": "string", + "nullable": true + }, + "context": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "creator": { + "$ref": "#/components/schemas/nullable-simple-user" + } + }, + "required": [ + "url", + "avatar_url", + "id", + "node_id", + "state", + "description", + "target_url", + "context", + "created_at", + "updated_at", + "creator" + ] + }, + "nullable-code-of-conduct-simple": { + "title": "Code Of Conduct Simple", + "description": "Code of Conduct Simple", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/github/docs/community/code_of_conduct" + }, + "key": { + "type": "string", + "example": "citizen_code_of_conduct" + }, + "name": { + "type": "string", + "example": "Citizen Code of Conduct" + }, + "html_url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md" + } + }, + "required": [ + "url", + "key", + "name", + "html_url" + ], + "nullable": true + }, + "nullable-community-health-file": { + "title": "Community Health File", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url" + ], + "nullable": true + }, + "community-profile": { + "title": "Community Profile", + "description": "Community Profile", + "type": "object", + "properties": { + "health_percentage": { + "type": "integer", + "example": 100 + }, + "description": { + "type": "string", + "example": "My first repository on GitHub!", + "nullable": true + }, + "documentation": { + "type": "string", + "example": "example.com", + "nullable": true + }, + "files": { + "type": "object", + "properties": { + "code_of_conduct": { + "$ref": "#/components/schemas/nullable-code-of-conduct-simple" + }, + "code_of_conduct_file": { + "$ref": "#/components/schemas/nullable-community-health-file" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "contributing": { + "$ref": "#/components/schemas/nullable-community-health-file" + }, + "readme": { + "$ref": "#/components/schemas/nullable-community-health-file" + }, + "issue_template": { + "$ref": "#/components/schemas/nullable-community-health-file" + }, + "pull_request_template": { + "$ref": "#/components/schemas/nullable-community-health-file" + } + }, + "required": [ + "code_of_conduct", + "code_of_conduct_file", + "license", + "contributing", + "readme", + "issue_template", + "pull_request_template" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-02-28T19:09:29Z", + "nullable": true + }, + "content_reports_enabled": { + "type": "boolean", + "example": true + } + }, + "required": [ + "health_percentage", + "description", + "documentation", + "files", + "updated_at" + ] + }, + "commit-comparison": { + "title": "Commit Comparison", + "description": "Commit Comparison", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/compare/master...topic" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/master...topic" + }, + "permalink_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17" + }, + "diff_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/master...topic.diff" + }, + "patch_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/master...topic.patch" + }, + "base_commit": { + "$ref": "#/components/schemas/commit" + }, + "merge_base_commit": { + "$ref": "#/components/schemas/commit" + }, + "status": { + "type": "string", + "enum": [ + "diverged", + "ahead", + "behind", + "identical" + ], + "example": "ahead" + }, + "ahead_by": { + "type": "integer", + "example": 4 + }, + "behind_by": { + "type": "integer", + "example": 5 + }, + "total_commits": { + "type": "integer", + "example": 6 + }, + "commits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit" + } + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/diff-entry" + } + } + }, + "required": [ + "url", + "html_url", + "permalink_url", + "diff_url", + "patch_url", + "base_commit", + "merge_base_commit", + "status", + "ahead_by", + "behind_by", + "total_commits", + "commits" + ] + }, + "content-tree": { + "title": "Content Tree", + "description": "Content Tree", + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "content": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "entries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "git", + "html", + "self" + ] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url" + ] + } + }, + "encoding": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "git", + "html", + "self" + ] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url" + ] + }, + "content-directory": { + "title": "Content Directory", + "description": "A list of directory items", + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "dir", + "file", + "submodule", + "symlink" + ] + }, + "size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "content": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "git", + "html", + "self" + ] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url" + ] + } + }, + "content-file": { + "title": "Content File", + "description": "Content File", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "file" + ] + }, + "encoding": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "content": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "git", + "html", + "self" + ] + }, + "target": { + "type": "string", + "example": "\"actual/actual.md\"" + }, + "submodule_git_url": { + "type": "string", + "example": "\"git://example.com/defunkt/dotjs.git\"" + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "content", + "encoding" + ] + }, + "content-symlink": { + "title": "Symlink Content", + "description": "An object describing a symlink", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "symlink" + ] + }, + "target": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "git", + "html", + "self" + ] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "target" + ] + }, + "content-submodule": { + "title": "Submodule Content", + "description": "An object describing a submodule", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "submodule" + ] + }, + "submodule_git_url": { + "type": "string", + "format": "uri" + }, + "size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "git", + "html", + "self" + ] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "submodule_git_url" + ] + }, + "file-commit": { + "title": "File Commit", + "description": "File Commit", + "type": "object", + "required": [ + "content", + "commit" + ], + "properties": { + "content": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "git_url": { + "type": "string" + }, + "download_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "string" + }, + "git": { + "type": "string" + }, + "html": { + "type": "string" + } + } + } + }, + "nullable": true + }, + "commit": { + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "author": { + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + } + } + }, + "committer": { + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + } + } + }, + "message": { + "type": "string" + }, + "tree": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "sha": { + "type": "string" + } + } + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "sha": { + "type": "string" + } + } + } + }, + "verification": { + "type": "object", + "properties": { + "verified": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "signature": { + "type": "string", + "nullable": true + }, + "payload": { + "type": "string", + "nullable": true + }, + "verified_at": { + "type": "string", + "nullable": true + } + } + } + } + } + } + }, + "secret-scanning-push-protection-bypass-placeholder-id": { + "description": "The ID of the push protection bypass placeholder. This value is returned on any push protected routes.", + "type": "string" + }, + "repository-rule-violation-error": { + "description": "Repository rule violation was detected", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "status": { + "type": "string" + }, + "metadata": { + "type": "object", + "properties": { + "secret_scanning": { + "type": "object", + "properties": { + "bypass_placeholders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "placeholder_id": { + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-placeholder-id" + }, + "token_type": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "contributor": { + "title": "Contributor", + "description": "Contributor", + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string", + "format": "uri" + }, + "gravatar_id": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "contributions": { + "type": "integer" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "contributions", + "type" + ] + }, + "dependabot-alert": { + "type": "object", + "description": "A Dependabot alert.", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "state": { + "type": "string", + "description": "The state of the Dependabot alert.", + "readOnly": true, + "enum": [ + "auto_dismissed", + "dismissed", + "fixed", + "open" + ] + }, + "dependency": { + "type": "object", + "description": "Details for the vulnerable dependency.", + "readOnly": true, + "properties": { + "package": { + "$ref": "#/components/schemas/dependabot-alert-package" + }, + "manifest_path": { + "type": "string", + "description": "The full path to the dependency manifest file, relative to the root of the repository.", + "readOnly": true + }, + "scope": { + "type": "string", + "description": "The execution scope of the vulnerable dependency.", + "readOnly": true, + "nullable": true, + "enum": [ + "development", + "runtime" + ] + }, + "relationship": { + "type": "string", + "description": "The vulnerable dependency's relationship to your project.\n\n> [!NOTE]\n> We are rolling out support for dependency relationship across ecosystems. This value will be \"unknown\" for all dependencies in unsupported ecosystems.\n", + "readOnly": true, + "nullable": true, + "enum": [ + "unknown", + "direct", + "transitive" + ] + } + } + }, + "security_advisory": { + "$ref": "#/components/schemas/dependabot-alert-security-advisory" + }, + "security_vulnerability": { + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/alert-updated-at" + }, + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" + }, + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "dismissed_reason": { + "type": "string", + "description": "The reason that the alert was dismissed.", + "nullable": true, + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk" + ] + }, + "dismissed_comment": { + "type": "string", + "description": "An optional comment associated with the alert's dismissal.", + "nullable": true, + "maxLength": 280 + }, + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" + }, + "auto_dismissed_at": { + "$ref": "#/components/schemas/alert-auto-dismissed-at" + }, + "dismissal_request": { + "$ref": "#/components/schemas/dependabot-alert-dismissal-request-simple" + } + }, + "required": [ + "number", + "state", + "dependency", + "security_advisory", + "security_vulnerability", + "url", + "html_url", + "created_at", + "updated_at", + "dismissed_at", + "dismissed_by", + "dismissed_reason", + "dismissed_comment", + "fixed_at" + ], + "additionalProperties": false + }, + "dependabot-secret": { + "title": "Dependabot Secret", + "description": "Set secrets for Dependabot.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "MY_ARTIFACTORY_PASSWORD", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + }, + "dependency-graph-diff": { + "title": "Dependency Graph Diff", + "description": "A diff of the dependencies between two commits.", + "type": "array", + "items": { + "type": "object", + "properties": { + "change_type": { + "type": "string", + "enum": [ + "added", + "removed" + ] + }, + "manifest": { + "type": "string", + "example": "path/to/package-lock.json" + }, + "ecosystem": { + "type": "string", + "example": "npm" + }, + "name": { + "type": "string", + "example": "@actions/core" + }, + "version": { + "type": "string", + "example": "1.0.0" + }, + "package_url": { + "type": "string", + "nullable": true, + "example": "pkg:/npm/%40actions/core@1.1.0" + }, + "license": { + "type": "string", + "nullable": true, + "example": "MIT" + }, + "source_repository_url": { + "type": "string", + "nullable": true, + "example": "https://github.com/github/actions" + }, + "vulnerabilities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "severity": { + "type": "string", + "example": "critical" + }, + "advisory_ghsa_id": { + "type": "string", + "example": "GHSA-rf4j-j272-fj86" + }, + "advisory_summary": { + "type": "string", + "example": "A summary of the advisory." + }, + "advisory_url": { + "type": "string", + "example": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + } + }, + "required": [ + "severity", + "advisory_ghsa_id", + "advisory_summary", + "advisory_url" + ] + } + }, + "scope": { + "description": "Where the dependency is utilized. `development` means that the dependency is only utilized in the development environment. `runtime` means that the dependency is utilized at runtime and in the development environment.", + "type": "string", + "enum": [ + "unknown", + "runtime", + "development" + ] + } + }, + "required": [ + "change_type", + "manifest", + "ecosystem", + "name", + "version", + "package_url", + "license", + "source_repository_url", + "vulnerabilities", + "scope" + ] + } + }, + "dependency-graph-spdx-sbom": { + "title": "Dependency Graph SPDX SBOM", + "description": "A schema for the SPDX JSON format returned by the Dependency Graph.", + "type": "object", + "properties": { + "sbom": { + "type": "object", + "properties": { + "SPDXID": { + "type": "string", + "example": "SPDXRef-DOCUMENT", + "description": "The SPDX identifier for the SPDX document." + }, + "spdxVersion": { + "type": "string", + "example": "SPDX-2.3", + "description": "The version of the SPDX specification that this document conforms to." + }, + "comment": { + "type": "string", + "example": "Exact versions could not be resolved for some packages. For more information: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/", + "description": "An optional comment about the SPDX document." + }, + "creationInfo": { + "type": "object", + "properties": { + "created": { + "type": "string", + "example": "2021-11-03T00:00:00Z", + "description": "The date and time the SPDX document was created." + }, + "creators": { + "type": "array", + "items": { + "type": "string", + "example": "GitHub" + }, + "description": "The tools that were used to generate the SPDX document." + } + }, + "required": [ + "created", + "creators" + ] + }, + "name": { + "type": "string", + "example": "github/github", + "description": "The name of the SPDX document." + }, + "dataLicense": { + "type": "string", + "example": "CC0-1.0", + "description": "The license under which the SPDX document is licensed." + }, + "documentNamespace": { + "type": "string", + "example": "https://spdx.org/spdxdocs/protobom/15e41dd2-f961-4f4d-b8dc-f8f57ad70d57", + "description": "The namespace for the SPDX document." + }, + "packages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "SPDXID": { + "type": "string", + "example": "SPDXRef-Package", + "description": "A unique SPDX identifier for the package." + }, + "name": { + "type": "string", + "example": "github/github", + "description": "The name of the package." + }, + "versionInfo": { + "type": "string", + "example": "1.0.0", + "description": "The version of the package. If the package does not have an exact version specified,\na version range is given." + }, + "downloadLocation": { + "type": "string", + "example": "NOASSERTION", + "description": "The location where the package can be downloaded,\nor NOASSERTION if this has not been determined." + }, + "filesAnalyzed": { + "type": "boolean", + "example": false, + "description": "Whether the package's file content has been subjected to\nanalysis during the creation of the SPDX document." + }, + "licenseConcluded": { + "type": "string", + "example": "MIT", + "description": "The license of the package as determined while creating the SPDX document." + }, + "licenseDeclared": { + "type": "string", + "example": "NOASSERTION", + "description": "The license of the package as declared by its author, or NOASSERTION if this information\nwas not available when the SPDX document was created." + }, + "supplier": { + "type": "string", + "example": "NOASSERTION", + "description": "The distribution source of this package, or NOASSERTION if this was not determined." + }, + "copyrightText": { + "type": "string", + "example": "Copyright (c) 1985 GitHub.com", + "description": "The copyright holders of the package, and any dates present with those notices, if available." + }, + "externalRefs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "referenceCategory": { + "type": "string", + "example": "PACKAGE-MANAGER", + "description": "The category of reference to an external resource this reference refers to." + }, + "referenceLocator": { + "type": "string", + "example": "pkg:gem/rails@6.0.1", + "description": "A locator for the particular external resource this reference refers to." + }, + "referenceType": { + "type": "string", + "example": "purl", + "description": "The category of reference to an external resource this reference refers to." + } + }, + "required": [ + "referenceCategory", + "referenceLocator", + "referenceType" + ] + } + } + } + }, + "required": [ + "SPDXID", + "name", + "versionInfo", + "downloadLocation", + "filesAnalyzed" + ] + }, + "relationships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "relationshipType": { + "type": "string", + "example": "DEPENDS_ON", + "description": "The type of relationship between the two SPDX elements." + }, + "spdxElementId": { + "type": "string", + "description": "The SPDX identifier of the package that is the source of the relationship." + }, + "relatedSpdxElement": { + "type": "string", + "description": "The SPDX identifier of the package that is the target of the relationship." + } + } + }, + "required": [ + "relationshipType", + "spdxElementId", + "relatedSpdxElement" + ] + } + }, + "required": [ + "SPDXID", + "spdxVersion", + "creationInfo", + "name", + "dataLicense", + "documentNamespace", + "packages" + ] + } + }, + "required": [ + "sbom" + ] + }, + "metadata": { + "title": "metadata", + "description": "User-defined metadata to store domain-specific information limited to 8 keys with scalar values.", + "type": "object", + "maxProperties": 8, + "additionalProperties": { + "nullable": true, + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + } + }, + "dependency": { + "type": "object", + "properties": { + "package_url": { + "type": "string", + "description": "Package-url (PURL) of dependency. See https://github.com/package-url/purl-spec for more details.", + "example": "pkg:/npm/%40actions/http-client@1.0.11", + "pattern": "^pkg" + }, + "metadata": { + "$ref": "#/components/schemas/metadata" + }, + "relationship": { + "type": "string", + "description": "A notation of whether a dependency is requested directly by this manifest or is a dependency of another dependency.", + "example": "direct", + "enum": [ + "direct", + "indirect" + ] + }, + "scope": { + "type": "string", + "description": "A notation of whether the dependency is required for the primary build artifact (runtime) or is only used for development. Future versions of this specification may allow for more granular scopes.", + "example": "runtime", + "enum": [ + "runtime", + "development" + ] + }, + "dependencies": { + "type": "array", + "description": "Array of package-url (PURLs) of direct child dependencies.", + "example": "@actions/http-client", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "manifest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the manifest.", + "example": "package-lock.json" + }, + "file": { + "type": "object", + "properties": { + "source_location": { + "type": "string", + "description": "The path of the manifest file relative to the root of the Git repository.", + "example": "/src/build/package-lock.json" + } + }, + "additionalProperties": false + }, + "metadata": { + "$ref": "#/components/schemas/metadata" + }, + "resolved": { + "type": "object", + "description": "A collection of resolved package dependencies.", + "additionalProperties": { + "$ref": "#/components/schemas/dependency" + } + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "snapshot": { + "title": "snapshot", + "description": "Create a new snapshot of a repository's dependencies.", + "type": "object", + "properties": { + "version": { + "description": "The version of the repository snapshot submission.", + "type": "integer" + }, + "job": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The external ID of the job.", + "example": "5622a2b0-63f6-4732-8c34-a1ab27e102a11" + }, + "correlator": { + "type": "string", + "description": "Correlator provides a key that is used to group snapshots submitted over time. Only the \"latest\" submitted snapshot for a given combination of `job.correlator` and `detector.name` will be considered when calculating a repository's current dependencies. Correlator should be as unique as it takes to distinguish all detection runs for a given \"wave\" of CI workflow you run. If you're using GitHub Actions, a good default value for this could be the environment variables GITHUB_WORKFLOW and GITHUB_JOB concatenated together. If you're using a build matrix, then you'll also need to add additional key(s) to distinguish between each submission inside a matrix variation.", + "example": "yourworkflowname_yourjobname" + }, + "html_url": { + "type": "string", + "description": "The url for the job.", + "example": "http://example.com/build" + } + }, + "required": [ + "id", + "correlator" + ], + "additionalProperties": false + }, + "sha": { + "description": "The commit SHA associated with this dependency snapshot. Maximum length: 40 characters.", + "type": "string", + "example": "ddc951f4b1293222421f2c8df679786153acf689", + "minLength": 40, + "maxLength": 40 + }, + "ref": { + "description": "The repository branch that triggered this snapshot.", + "type": "string", + "pattern": "^refs/", + "example": "refs/heads/main" + }, + "detector": { + "type": "object", + "description": "A description of the detector used.", + "properties": { + "name": { + "type": "string", + "description": "The name of the detector used.", + "example": "docker buildtime detector" + }, + "version": { + "type": "string", + "description": "The version of the detector used.", + "example": "1.0.0" + }, + "url": { + "type": "string", + "description": "The url of the detector used.", + "example": "http://example.com/docker-buildtimer-detector" + } + }, + "required": [ + "name", + "version", + "url" + ], + "additionalProperties": false + }, + "metadata": { + "$ref": "#/components/schemas/metadata" + }, + "manifests": { + "type": "object", + "description": "A collection of package manifests, which are a collection of related dependencies declared in a file or representing a logical group of dependencies.", + "additionalProperties": { + "$ref": "#/components/schemas/manifest" + } + }, + "scanned": { + "type": "string", + "format": "date-time", + "description": "The time at which the snapshot was scanned.", + "example": "2020-06-13T14:52:50-05:00" + } + }, + "required": [ + "detector", + "version", + "ref", + "sha", + "job", + "scanned" + ], + "additionalProperties": false + }, + "deployment-status": { + "title": "Deployment Status", + "description": "The status of a deployment.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDE2OkRlcGxveW1lbnRTdGF0dXMx" + }, + "state": { + "description": "The state of the status.", + "enum": [ + "error", + "failure", + "inactive", + "pending", + "success", + "queued", + "in_progress" + ], + "example": "success", + "type": "string" + }, + "creator": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "description": { + "description": "A short description of the status.", + "default": "", + "type": "string", + "maxLength": 140, + "example": "Deployment finished successfully." + }, + "environment": { + "description": "The environment of the deployment that the status is for.", + "default": "", + "type": "string", + "example": "production" + }, + "target_url": { + "description": "Closing down notice: the URL to associate with this status.", + "default": "", + "type": "string", + "format": "uri", + "example": "https://example.com/deployment/42/output" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "deployment_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/42" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example" + }, + "environment_url": { + "description": "The URL for accessing your environment.", + "default": "", + "type": "string", + "format": "uri", + "example": "https://staging.example.com/" + }, + "log_url": { + "description": "The URL to associate with this status.", + "default": "", + "type": "string", + "format": "uri", + "example": "https://example.com/deployment/42/output" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + } + }, + "required": [ + "id", + "node_id", + "state", + "creator", + "description", + "deployment_url", + "target_url", + "repository_url", + "url", + "created_at", + "updated_at" + ] + }, + "wait-timer": { + "type": "integer", + "example": 30, + "description": "The amount of time to delay a job after the job is initially triggered. The time (in minutes) must be an integer between 0 and 43,200 (30 days)." + }, + "deployment-branch-policy-settings": { + "type": "object", + "description": "The type of deployment branch policy for this environment. To allow all branches to deploy, set to `null`.", + "properties": { + "protected_branches": { + "type": "boolean", + "description": "Whether only branches with branch protection rules can deploy to this environment. If `protected_branches` is `true`, `custom_branch_policies` must be `false`; if `protected_branches` is `false`, `custom_branch_policies` must be `true`." + }, + "custom_branch_policies": { + "type": "boolean", + "description": "Whether only branches that match the specified name patterns can deploy to this environment. If `custom_branch_policies` is `true`, `protected_branches` must be `false`; if `custom_branch_policies` is `false`, `protected_branches` must be `true`." + } + }, + "nullable": true, + "required": [ + "protected_branches", + "custom_branch_policies" + ] + }, + "environment": { + "title": "Environment", + "description": "Details of a deployment environment", + "type": "object", + "properties": { + "id": { + "description": "The id of the environment.", + "example": 56780428, + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string", + "example": "MDExOkVudmlyb25tZW50NTY3ODA0Mjg=" + }, + "name": { + "description": "The name of the environment.", + "example": "staging", + "type": "string" + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/environments/staging" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging" + }, + "created_at": { + "description": "The time that the environment was created, in ISO 8601 format.", + "example": "2020-11-23T22:00:40Z", + "format": "date-time", + "type": "string" + }, + "updated_at": { + "description": "The time that the environment was last updated, in ISO 8601 format.", + "example": "2020-11-23T22:00:40Z", + "format": "date-time", + "type": "string" + }, + "protection_rules": { + "type": "array", + "description": "Built-in deployment protection rules for the environment.", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 3515 + }, + "node_id": { + "type": "string", + "example": "MDQ6R2F0ZTM1MTU=" + }, + "type": { + "type": "string", + "example": "wait_timer" + }, + "wait_timer": { + "$ref": "#/components/schemas/wait-timer" + } + }, + "required": [ + "id", + "node_id", + "type" + ] + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 3755 + }, + "node_id": { + "type": "string", + "example": "MDQ6R2F0ZTM3NTU=" + }, + "prevent_self_review": { + "type": "boolean", + "example": false, + "description": "Whether deployments to this environment can be approved by the user who created the deployment." + }, + "type": { + "type": "string", + "example": "required_reviewers" + }, + "reviewers": { + "type": "array", + "description": "The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed.", + "items": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/deployment-reviewer-type" + }, + "reviewer": { + "anyOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/team" + } + ] + } + } + } + } + }, + "required": [ + "id", + "node_id", + "type" + ] + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 3515 + }, + "node_id": { + "type": "string", + "example": "MDQ6R2F0ZTM1MTU=" + }, + "type": { + "type": "string", + "example": "branch_policy" + } + }, + "required": [ + "id", + "node_id", + "type" + ] + } + ] + } + }, + "deployment_branch_policy": { + "$ref": "#/components/schemas/deployment-branch-policy-settings" + } + }, + "required": [ + "id", + "node_id", + "name", + "url", + "html_url", + "created_at", + "updated_at" + ] + }, + "prevent-self-review": { + "type": "boolean", + "example": false, + "description": "Whether or not a user who created the job is prevented from approving their own job." + }, + "deployment-branch-policy": { + "title": "Deployment branch policy", + "description": "Details of a deployment branch or tag policy.", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the branch or tag policy.", + "type": "integer", + "example": 361471 + }, + "node_id": { + "type": "string", + "example": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE=" + }, + "name": { + "description": "The name pattern that branches or tags must match in order to deploy to the environment.", + "type": "string", + "example": "release/*" + }, + "type": { + "description": "Whether this rule targets a branch or tag.", + "type": "string", + "example": "branch", + "enum": [ + "branch", + "tag" + ] + } + } + }, + "deployment-branch-policy-name-pattern-with-type": { + "title": "Deployment branch and tag policy name pattern", + "type": "object", + "properties": { + "name": { + "description": "The name pattern that branches or tags must match in order to deploy to the environment.\n\nWildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*/*`.\nFor more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch).", + "type": "string", + "example": "release/*" + }, + "type": { + "description": "Whether this rule targets a branch or tag", + "type": "string", + "example": "branch", + "enum": [ + "branch", + "tag" + ] + } + }, + "required": [ + "name" + ] + }, + "deployment-branch-policy-name-pattern": { + "title": "Deployment branch policy name pattern", + "type": "object", + "properties": { + "name": { + "description": "The name pattern that branches must match in order to deploy to the environment.\n\nWildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*/*`.\nFor more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch).", + "type": "string", + "example": "release/*" + } + }, + "required": [ + "name" + ] + }, + "custom-deployment-rule-app": { + "title": "Custom deployment protection rule app", + "description": "A GitHub App that is providing a custom deployment protection rule.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 3515, + "description": "The unique identifier of the deployment protection rule integration." + }, + "slug": { + "type": "string", + "example": "my-custom-app", + "description": "The slugified name of the deployment protection rule integration." + }, + "integration_url": { + "type": "string", + "example": "https://api.github.com/apps/custom-app-slug", + "description": "The URL for the endpoint to get details about the app." + }, + "node_id": { + "type": "string", + "example": "MDQ6R2F0ZTM1MTU=", + "description": "The node ID for the deployment protection rule integration." + } + }, + "required": [ + "id", + "slug", + "integration_url", + "node_id" + ] + }, + "deployment-protection-rule": { + "title": "Deployment protection rule", + "description": "Deployment protection rule", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 3515, + "description": "The unique identifier for the deployment protection rule." + }, + "node_id": { + "type": "string", + "example": "MDQ6R2F0ZTM1MTU=", + "description": "The node ID for the deployment protection rule." + }, + "enabled": { + "type": "boolean", + "example": true, + "description": "Whether the deployment protection rule is enabled for the environment." + }, + "app": { + "$ref": "#/components/schemas/custom-deployment-rule-app" + } + }, + "required": [ + "id", + "node_id", + "enabled", + "app" + ] + }, + "short-blob": { + "title": "Short Blob", + "description": "Short Blob", + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "sha": { + "type": "string" + } + }, + "required": [ + "url", + "sha" + ] + }, + "blob": { + "title": "Blob", + "description": "Blob", + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "encoding": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "sha": { + "type": "string" + }, + "size": { + "type": "integer", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "highlighted_content": { + "type": "string" + } + }, + "required": [ + "sha", + "url", + "node_id", + "size", + "content", + "encoding" + ] + }, + "git-commit": { + "title": "Git Commit", + "description": "Low-level Git commit operations within a repository", + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "author": { + "description": "Identifying information for the git-user", + "type": "object", + "properties": { + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "email": { + "type": "string", + "description": "Git email address of the user", + "example": "monalisa.octocat@example.com" + }, + "name": { + "description": "Name of the git user", + "example": "Monalisa Octocat", + "type": "string" + } + }, + "required": [ + "email", + "name", + "date" + ] + }, + "committer": { + "description": "Identifying information for the git-user", + "type": "object", + "properties": { + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "email": { + "type": "string", + "description": "Git email address of the user", + "example": "monalisa.octocat@example.com" + }, + "name": { + "description": "Name of the git user", + "example": "Monalisa Octocat", + "type": "string" + } + }, + "required": [ + "email", + "name", + "date" + ] + }, + "message": { + "description": "Message describing the purpose of the commit", + "example": "Fix #42", + "type": "string" + }, + "tree": { + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url" + ] + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url", + "html_url" + ] + } + }, + "verification": { + "type": "object", + "properties": { + "verified": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "signature": { + "type": "string", + "nullable": true + }, + "payload": { + "type": "string", + "nullable": true + }, + "verified_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "verified", + "reason", + "signature", + "payload", + "verified_at" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "node_id", + "url", + "html_url", + "author", + "committer", + "tree", + "message", + "parents", + "verification" + ] + }, + "git-ref": { + "title": "Git Reference", + "description": "Git references within a repository", + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "object": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "sha": { + "description": "SHA for the reference", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string", + "minLength": 40, + "maxLength": 40 + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "type", + "sha", + "url" + ] + } + }, + "required": [ + "ref", + "node_id", + "url", + "object" + ] + }, + "git-tag": { + "title": "Git Tag", + "description": "Metadata for a Git tag", + "type": "object", + "properties": { + "node_id": { + "type": "string", + "example": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==" + }, + "tag": { + "description": "Name of the tag", + "example": "v0.0.1", + "type": "string" + }, + "sha": { + "type": "string", + "example": "940bd336248efae0f9ee5bc7b2d5c985887b16ac" + }, + "url": { + "description": "URL for the tag", + "example": "https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "type": "string", + "format": "uri" + }, + "message": { + "description": "Message describing the purpose of the tag", + "example": "Initial public release", + "type": "string" + }, + "tagger": { + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "date", + "email", + "name" + ] + }, + "object": { + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "type", + "url" + ] + }, + "verification": { + "$ref": "#/components/schemas/verification" + } + }, + "required": [ + "sha", + "url", + "node_id", + "tagger", + "object", + "tag", + "message" + ] + }, + "git-tree": { + "title": "Git Tree", + "description": "The hierarchy between files in a Git repository.", + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "truncated": { + "type": "boolean" + }, + "tree": { + "description": "Objects specifying a tree structure", + "type": "array", + "items": { + "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], + "properties": { + "path": { + "type": "string", + "example": "test/file.rb" + }, + "mode": { + "type": "string", + "example": "040000" + }, + "type": { + "type": "string", + "example": "tree" + }, + "sha": { + "type": "string", + "example": "23f6827669e43831def8a7ad935069c8bd418261" + }, + "size": { + "type": "integer", + "example": 12 + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261" + } + } + }, + "example": [ + { + "path": "file.rb", + "mode": "100644", + "type": "blob", + "size": 30, + "sha": "44b4fc6d56897b048c772eb4087f854f46256132", + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" + } + ] + } + }, + "required": [ + "sha", + "tree", + "truncated" + ] + }, + "hook-response": { + "title": "Hook Response", + "type": "object", + "properties": { + "code": { + "type": "integer", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + } + }, + "required": [ + "code", + "status", + "message" + ] + }, + "hook": { + "title": "Webhook", + "description": "Webhooks for repositories.", + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "id": { + "description": "Unique identifier of the webhook.", + "example": 42, + "type": "integer" + }, + "name": { + "description": "The name of a valid service, use 'web' for a webhook.", + "example": "web", + "type": "string" + }, + "active": { + "description": "Determines whether the hook is actually triggered on pushes.", + "type": "boolean", + "example": true + }, + "events": { + "description": "Determines what events the hook is triggered for. Default: ['push'].", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "push", + "pull_request" + ] + }, + "config": { + "$ref": "#/components/schemas/webhook-config" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T20:39:23Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T17:26:27Z" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1" + }, + "test_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/test" + }, + "ping_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/pings" + }, + "deliveries_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries" + }, + "last_response": { + "$ref": "#/components/schemas/hook-response" + } + }, + "required": [ + "id", + "url", + "type", + "name", + "active", + "events", + "config", + "ping_url", + "created_at", + "updated_at", + "last_response", + "test_url" + ] + }, + "check-immutable-releases": { + "title": "Check immutable releases", + "description": "Check immutable releases", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "example": true, + "description": "Whether immutable releases are enabled for the repository." + }, + "enforced_by_owner": { + "type": "boolean", + "example": false, + "description": "Whether immutable releases are enforced by the repository owner." + } + }, + "required": [ + "enabled", + "enforced_by_owner" + ] + }, + "import": { + "title": "Import", + "description": "A repository import from an external source.", + "type": "object", + "properties": { + "vcs": { + "type": "string", + "nullable": true + }, + "use_lfs": { + "type": "boolean" + }, + "vcs_url": { + "description": "The URL of the originating repository.", + "type": "string" + }, + "svc_root": { + "type": "string" + }, + "tfvc_project": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "auth", + "error", + "none", + "detecting", + "choose", + "auth_failed", + "importing", + "mapping", + "waiting_to_push", + "pushing", + "complete", + "setup", + "unknown", + "detection_found_multiple", + "detection_found_nothing", + "detection_needs_auth" + ] + }, + "status_text": { + "type": "string", + "nullable": true + }, + "failed_step": { + "type": "string", + "nullable": true + }, + "error_message": { + "type": "string", + "nullable": true + }, + "import_percent": { + "type": "integer", + "nullable": true + }, + "commit_count": { + "type": "integer", + "nullable": true + }, + "push_percent": { + "type": "integer", + "nullable": true + }, + "has_large_files": { + "type": "boolean" + }, + "large_files_size": { + "type": "integer" + }, + "large_files_count": { + "type": "integer" + }, + "project_choices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "vcs": { + "type": "string" + }, + "tfvc_project": { + "type": "string" + }, + "human_name": { + "type": "string" + } + } + } + }, + "message": { + "type": "string" + }, + "authors_count": { + "type": "integer", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "authors_url": { + "type": "string", + "format": "uri" + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "svn_root": { + "type": "string" + } + }, + "required": [ + "vcs", + "vcs_url", + "status", + "url", + "repository_url", + "html_url", + "authors_url" + ] + }, + "porter-author": { + "title": "Porter Author", + "description": "Porter Author", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "remote_id": { + "type": "string" + }, + "remote_name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "import_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "remote_id", + "remote_name", + "email", + "name", + "url", + "import_url" + ] + }, + "porter-large-file": { + "title": "Porter Large File", + "description": "Porter Large File", + "type": "object", + "properties": { + "ref_name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "oid": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "required": [ + "oid", + "path", + "ref_name", + "size" + ] + }, + "nullable-issue": { + "title": "Issue", + "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the issue", + "example": "https://api.github.com/repositories/42/issues/1", + "type": "string", + "format": "uri" + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "labels_url": { + "type": "string" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "number": { + "description": "Number uniquely identifying the issue within its repository", + "example": 42, + "type": "integer" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "example": "open", + "type": "string" + }, + "state_reason": { + "description": "The reason for the current state", + "example": "not_planned", + "type": "string", + "nullable": true, + "enum": [ + "completed", + "reopened", + "not_planned", + "duplicate" + ] + }, + "title": { + "description": "Title of the issue", + "example": "Widget creation fails in Safari on OS X 10.8", + "type": "string" + }, + "body": { + "description": "Contents of the issue", + "example": "It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug?", + "type": "string", + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "labels": { + "description": "Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository", + "example": [ + "bug", + "registration" + ], + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "color": { + "type": "string", + "nullable": true + }, + "default": { + "type": "boolean" + } + } + } + ] + } + }, + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + }, + "nullable": true + }, + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "locked": { + "type": "boolean" + }, + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "diff_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "patch_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "diff_url", + "html_url", + "patch_url", + "url" + ] + }, + "closed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "closed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body_html": { + "type": "string" + }, + "body_text": { + "type": "string" + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "repository": { + "$ref": "#/components/schemas/repository" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "parent_issue_url": { + "description": "URL to get the parent issue of this issue, if it is a sub-issue", + "type": "string", + "format": "uri", + "nullable": true + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + } + }, + "required": [ + "assignee", + "closed_at", + "comments", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "labels", + "labels_url", + "milestone", + "number", + "repository_url", + "state", + "locked", + "title", + "url", + "user", + "created_at", + "updated_at" + ], + "nullable": true + }, + "issue-event-label": { + "title": "Issue Event Label", + "description": "Issue Event Label", + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "color": { + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "color" + ] + }, + "issue-event-dismissed-review": { + "title": "Issue Event Dismissed Review", + "type": "object", + "properties": { + "state": { + "type": "string" + }, + "review_id": { + "type": "integer" + }, + "dismissal_message": { + "type": "string", + "nullable": true + }, + "dismissal_commit_id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "state", + "review_id", + "dismissal_message" + ] + }, + "issue-event-milestone": { + "title": "Issue Event Milestone", + "description": "Issue Event Milestone", + "type": "object", + "properties": { + "title": { + "type": "string" + } + }, + "required": [ + "title" + ] + }, + "issue-event-project-card": { + "title": "Issue Event Project Card", + "description": "Issue Event Project Card", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "project_id": { + "type": "integer" + }, + "column_name": { + "type": "string" + }, + "previous_column_name": { + "type": "string" + } + }, + "required": [ + "url", + "id", + "project_url", + "project_id", + "column_name" + ] + }, + "issue-event-rename": { + "title": "Issue Event Rename", + "description": "Issue Event Rename", + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "required": [ + "from", + "to" + ] + }, + "issue-event": { + "title": "Issue Event", + "description": "Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDEwOklzc3VlRXZlbnQx" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/events/1" + }, + "actor": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "event": { + "type": "string", + "example": "closed" + }, + "commit_id": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true + }, + "commit_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "issue": { + "$ref": "#/components/schemas/nullable-issue" + }, + "label": { + "$ref": "#/components/schemas/issue-event-label" + }, + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assigner": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "review_requester": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "requested_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "requested_team": { + "$ref": "#/components/schemas/team" + }, + "dismissed_review": { + "$ref": "#/components/schemas/issue-event-dismissed-review" + }, + "milestone": { + "$ref": "#/components/schemas/issue-event-milestone" + }, + "project_card": { + "$ref": "#/components/schemas/issue-event-project-card" + }, + "rename": { + "$ref": "#/components/schemas/issue-event-rename" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "lock_reason": { + "type": "string", + "nullable": true + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at" + ] + }, + "labeled-issue-event": { + "title": "Labeled Issue Event", + "description": "Labeled Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "label": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "color": { + "type": "string" + } + }, + "required": [ + "name", + "color" + ] + } + }, + "required": [ + "label", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "unlabeled-issue-event": { + "title": "Unlabeled Issue Event", + "description": "Unlabeled Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "label": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "color": { + "type": "string" + } + }, + "required": [ + "name", + "color" + ] + } + }, + "required": [ + "label", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "assigned-issue-event": { + "title": "Assigned Issue Event", + "description": "Assigned Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/integration" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" + }, + "assigner": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app", + "assignee", + "assigner" + ] + }, + "unassigned-issue-event": { + "title": "Unassigned Issue Event", + "description": "Unassigned Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" + }, + "assigner": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app", + "assignee", + "assigner" + ] + }, + "milestoned-issue-event": { + "title": "Milestoned Issue Event", + "description": "Milestoned Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "milestone": { + "type": "object", + "properties": { + "title": { + "type": "string" + } + }, + "required": [ + "title" + ] + } + }, + "required": [ + "milestone", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "demilestoned-issue-event": { + "title": "Demilestoned Issue Event", + "description": "Demilestoned Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "milestone": { + "type": "object", + "properties": { + "title": { + "type": "string" + } + }, + "required": [ + "title" + ] + } + }, + "required": [ + "milestone", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "renamed-issue-event": { + "title": "Renamed Issue Event", + "description": "Renamed Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "rename": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "required": [ + "from", + "to" + ] + } + }, + "required": [ + "rename", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "review-requested-issue-event": { + "title": "Review Requested Issue Event", + "description": "Review Requested Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "review_requester": { + "$ref": "#/components/schemas/simple-user" + }, + "requested_team": { + "$ref": "#/components/schemas/team" + }, + "requested_reviewer": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "review_requester", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "review-request-removed-issue-event": { + "title": "Review Request Removed Issue Event", + "description": "Review Request Removed Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "review_requester": { + "$ref": "#/components/schemas/simple-user" + }, + "requested_team": { + "$ref": "#/components/schemas/team" + }, + "requested_reviewer": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "review_requester", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "review-dismissed-issue-event": { + "title": "Review Dismissed Issue Event", + "description": "Review Dismissed Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "dismissed_review": { + "type": "object", + "properties": { + "state": { + "type": "string" + }, + "review_id": { + "type": "integer" + }, + "dismissal_message": { + "nullable": true, + "type": "string" + }, + "dismissal_commit_id": { + "type": "string" + } + }, + "required": [ + "state", + "review_id", + "dismissal_message" + ] + } + }, + "required": [ + "dismissed_review", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "locked-issue-event": { + "title": "Locked Issue Event", + "description": "Locked Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "lock_reason": { + "type": "string", + "example": "\"off-topic\"", + "nullable": true + } + }, + "required": [ + "lock_reason", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "added-to-project-issue-event": { + "title": "Added to Project Issue Event", + "description": "Added to Project Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "project_card": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + }, + "project_id": { + "type": "integer" + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "column_name": { + "type": "string" + }, + "previous_column_name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "project_id", + "project_url", + "column_name" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "moved-column-in-project-issue-event": { + "title": "Moved Column in Project Issue Event", + "description": "Moved Column in Project Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "project_card": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + }, + "project_id": { + "type": "integer" + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "column_name": { + "type": "string" + }, + "previous_column_name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "project_id", + "project_url", + "column_name" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "removed-from-project-issue-event": { + "title": "Removed from Project Issue Event", + "description": "Removed from Project Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "project_card": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + }, + "project_id": { + "type": "integer" + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "column_name": { + "type": "string" + }, + "previous_column_name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "project_id", + "project_url", + "column_name" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "converted-note-to-issue-issue-event": { + "title": "Converted Note to Issue Issue Event", + "description": "Converted Note to Issue Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/integration" + }, + "project_card": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + }, + "project_id": { + "type": "integer" + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "column_name": { + "type": "string" + }, + "previous_column_name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "project_id", + "project_url", + "column_name" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "issue-event-for-issue": { + "title": "Issue Event for Issue", + "description": "Issue Event for Issue", + "anyOf": [ + { + "$ref": "#/components/schemas/labeled-issue-event" + }, + { + "$ref": "#/components/schemas/unlabeled-issue-event" + }, + { + "$ref": "#/components/schemas/assigned-issue-event" + }, + { + "$ref": "#/components/schemas/unassigned-issue-event" + }, + { + "$ref": "#/components/schemas/milestoned-issue-event" + }, + { + "$ref": "#/components/schemas/demilestoned-issue-event" + }, + { + "$ref": "#/components/schemas/renamed-issue-event" + }, + { + "$ref": "#/components/schemas/review-requested-issue-event" + }, + { + "$ref": "#/components/schemas/review-request-removed-issue-event" + }, + { + "$ref": "#/components/schemas/review-dismissed-issue-event" + }, + { + "$ref": "#/components/schemas/locked-issue-event" + }, + { + "$ref": "#/components/schemas/added-to-project-issue-event" + }, + { + "$ref": "#/components/schemas/moved-column-in-project-issue-event" + }, + { + "$ref": "#/components/schemas/removed-from-project-issue-event" + }, + { + "$ref": "#/components/schemas/converted-note-to-issue-issue-event" + } + ] + }, + "timeline-comment-event": { + "title": "Timeline Comment Event", + "description": "Timeline Comment Event", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "id": { + "description": "Unique identifier of the issue comment", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the issue comment", + "example": "https://api.github.com/repositories/42/issues/comments/1", + "type": "string", + "format": "uri" + }, + "body": { + "description": "Contents of the issue comment", + "example": "What version of Safari were you using when you observed this bug?", + "type": "string" + }, + "body_text": { + "type": "string" + }, + "body_html": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "user": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + }, + "pin": { + "$ref": "#/components/schemas/nullable-pinned-issue-comment" + } + }, + "required": [ + "event", + "actor", + "id", + "node_id", + "html_url", + "issue_url", + "author_association", + "user", + "url", + "created_at", + "updated_at" + ] + }, + "timeline-cross-referenced-event": { + "title": "Timeline Cross Referenced Event", + "description": "Timeline Cross Referenced Event", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "source": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "issue": { + "$ref": "#/components/schemas/issue" + } + } + } + }, + "required": [ + "event", + "created_at", + "updated_at", + "source" + ] + }, + "timeline-committed-event": { + "title": "Timeline Committed Event", + "description": "Timeline Committed Event", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "author": { + "description": "Identifying information for the git-user", + "type": "object", + "properties": { + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "email": { + "type": "string", + "description": "Git email address of the user", + "example": "monalisa.octocat@example.com" + }, + "name": { + "description": "Name of the git user", + "example": "Monalisa Octocat", + "type": "string" + } + }, + "required": [ + "email", + "name", + "date" + ] + }, + "committer": { + "description": "Identifying information for the git-user", + "type": "object", + "properties": { + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "email": { + "type": "string", + "description": "Git email address of the user", + "example": "monalisa.octocat@example.com" + }, + "name": { + "description": "Name of the git user", + "example": "Monalisa Octocat", + "type": "string" + } + }, + "required": [ + "email", + "name", + "date" + ] + }, + "message": { + "description": "Message describing the purpose of the commit", + "example": "Fix #42", + "type": "string" + }, + "tree": { + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url" + ] + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url", + "html_url" + ] + } + }, + "verification": { + "type": "object", + "properties": { + "verified": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "signature": { + "type": "string", + "nullable": true + }, + "payload": { + "type": "string", + "nullable": true + }, + "verified_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "verified", + "reason", + "signature", + "payload", + "verified_at" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "node_id", + "url", + "html_url", + "author", + "committer", + "tree", + "message", + "parents", + "verification" + ] + }, + "timeline-reviewed-event": { + "title": "Timeline Reviewed Event", + "description": "Timeline Reviewed Event", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "id": { + "description": "Unique identifier of the review", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" + }, + "user": { + "$ref": "#/components/schemas/simple-user" + }, + "body": { + "nullable": true, + "description": "The text of the review.", + "example": "This looks great.", + "type": "string" + }, + "state": { + "type": "string", + "example": "CHANGES_REQUESTED" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + }, + "_links": { + "type": "object", + "properties": { + "html": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "html", + "pull_request" + ] + }, + "submitted_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "commit_id": { + "description": "A commit SHA for the review.", + "example": "54bb654c9e6025347f57900a4a5c2313a96b8035", + "type": "string" + }, + "body_html": { + "type": "string" + }, + "body_text": { + "type": "string" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + } + }, + "required": [ + "event", + "id", + "node_id", + "user", + "body", + "state", + "commit_id", + "html_url", + "pull_request_url", + "_links", + "author_association" + ] + }, + "pull-request-review-comment": { + "title": "Pull Request Review Comment", + "description": "Pull Request Review Comments are comments on a portion of the Pull Request's diff.", + "type": "object", + "properties": { + "url": { + "description": "URL for the pull request review comment", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "type": "string" + }, + "pull_request_review_id": { + "description": "The ID of the pull request review to which the comment belongs.", + "type": "integer", + "format": "int64", + "example": 42, + "nullable": true + }, + "id": { + "description": "The ID of the pull request review comment.", + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "description": "The node ID of the pull request review comment.", + "type": "string", + "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" + }, + "diff_hunk": { + "description": "The diff of the line that the comment refers to.", + "type": "string", + "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + }, + "path": { + "description": "The relative path of the file to which the comment applies.", + "example": "config/database.yaml", + "type": "string" + }, + "position": { + "description": "The line index in the diff to which the comment applies. This field is closing down; use `line` instead.", + "example": 1, + "type": "integer" + }, + "original_position": { + "description": "The index of the original line in the diff to which the comment applies. This field is closing down; use `original_line` instead.", + "example": 4, + "type": "integer" + }, + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "type": "string" + }, + "original_commit_id": { + "description": "The SHA of the original commit to which the comment applies.", + "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", + "type": "string" + }, + "in_reply_to_id": { + "description": "The comment ID to reply to.", + "example": 8, + "type": "integer" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body": { + "description": "The text of the comment.", + "example": "We should probably include a check for null values here.", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "html_url": { + "description": "HTML URL for the pull request review comment.", + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request_url": { + "description": "URL for the pull request that the review comment belongs to.", + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + } + }, + "required": [ + "href" + ] + }, + "html": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "pull_request" + ] + }, + "start_line": { + "type": "integer", + "description": "The first line of the range for a multi-line comment.", + "example": 2, + "nullable": true + }, + "original_start_line": { + "type": "integer", + "description": "The first line of the range for a multi-line comment.", + "example": 2, + "nullable": true + }, + "start_side": { + "type": "string", + "description": "The side of the first line of the range for a multi-line comment.", + "enum": [ + "LEFT", + "RIGHT" + ], + "default": "RIGHT", + "nullable": true + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "original_line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "side": { + "description": "The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment", + "enum": [ + "LEFT", + "RIGHT" + ], + "default": "RIGHT", + "type": "string" + }, + "subject_type": { + "description": "The level at which the comment is targeted, can be a diff line or a file.", + "type": "string", + "enum": [ + "line", + "file" + ] + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + }, + "body_html": { + "type": "string", + "example": "\"

comment body

\"" + }, + "body_text": { + "type": "string", + "example": "\"comment body\"" + } + }, + "required": [ + "url", + "id", + "node_id", + "pull_request_review_id", + "diff_hunk", + "path", + "commit_id", + "original_commit_id", + "user", + "body", + "created_at", + "updated_at", + "html_url", + "pull_request_url", + "author_association", + "_links" + ] + }, + "timeline-line-commented-event": { + "title": "Timeline Line Commented Event", + "description": "Timeline Line Commented Event", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "comments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review-comment" + } + } + } + }, + "timeline-commit-commented-event": { + "title": "Timeline Commit Commented Event", + "description": "Timeline Commit Commented Event", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "commit_id": { + "type": "string" + }, + "comments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit-comment" + } + } + } + }, + "timeline-assigned-issue-event": { + "title": "Timeline Assigned Issue Event", + "description": "Timeline Assigned Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app", + "assignee" + ] + }, + "timeline-unassigned-issue-event": { + "title": "Timeline Unassigned Issue Event", + "description": "Timeline Unassigned Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app", + "assignee" + ] + }, + "state-change-issue-event": { + "title": "State Change Issue Event", + "description": "State Change Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "state_reason": { + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "timeline-issue-events": { + "title": "Timeline Event", + "description": "Timeline Event", + "type": "object", + "anyOf": [ + { + "$ref": "#/components/schemas/labeled-issue-event" + }, + { + "$ref": "#/components/schemas/unlabeled-issue-event" + }, + { + "$ref": "#/components/schemas/milestoned-issue-event" + }, + { + "$ref": "#/components/schemas/demilestoned-issue-event" + }, + { + "$ref": "#/components/schemas/renamed-issue-event" + }, + { + "$ref": "#/components/schemas/review-requested-issue-event" + }, + { + "$ref": "#/components/schemas/review-request-removed-issue-event" + }, + { + "$ref": "#/components/schemas/review-dismissed-issue-event" + }, + { + "$ref": "#/components/schemas/locked-issue-event" + }, + { + "$ref": "#/components/schemas/added-to-project-issue-event" + }, + { + "$ref": "#/components/schemas/moved-column-in-project-issue-event" + }, + { + "$ref": "#/components/schemas/removed-from-project-issue-event" + }, + { + "$ref": "#/components/schemas/converted-note-to-issue-issue-event" + }, + { + "$ref": "#/components/schemas/timeline-comment-event" + }, + { + "$ref": "#/components/schemas/timeline-cross-referenced-event" + }, + { + "$ref": "#/components/schemas/timeline-committed-event" + }, + { + "$ref": "#/components/schemas/timeline-reviewed-event" + }, + { + "$ref": "#/components/schemas/timeline-line-commented-event" + }, + { + "$ref": "#/components/schemas/timeline-commit-commented-event" + }, + { + "$ref": "#/components/schemas/timeline-assigned-issue-event" + }, + { + "$ref": "#/components/schemas/timeline-unassigned-issue-event" + }, + { + "$ref": "#/components/schemas/state-change-issue-event" + } + ] + }, + "deploy-key": { + "title": "Deploy Key", + "description": "An SSH key granting access to a single repository.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "verified": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "read_only": { + "type": "boolean" + }, + "added_by": { + "type": "string", + "nullable": true + }, + "last_used": { + "nullable": true, + "type": "string", + "format": "date-time" + }, + "enabled": { + "type": "boolean" + } + }, + "required": [ + "id", + "key", + "url", + "title", + "verified", + "created_at", + "read_only" + ] + }, + "language": { + "title": "Language", + "description": "Language", + "type": "object", + "additionalProperties": { + "type": "integer" + } + }, + "license-content": { + "title": "License Content", + "description": "License Content", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "type": { + "type": "string" + }, + "content": { + "type": "string" + }, + "encoding": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "git", + "html", + "self" + ] + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "content", + "encoding", + "license" + ] + }, + "merged-upstream": { + "title": "Merged upstream", + "description": "Results of a successful merge upstream request", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "merge_type": { + "type": "string", + "enum": [ + "merge", + "fast-forward", + "none" + ] + }, + "base_branch": { + "type": "string" + } + } + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/milestones/v1.0" + }, + "labels_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels" + }, + "id": { + "type": "integer", + "example": 1002604 + }, + "node_id": { + "type": "string", + "example": "MDk6TWlsZXN0b25lMTAwMjYwNA==" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer", + "example": 42 + }, + "state": { + "description": "The state of the milestone.", + "example": "open", + "type": "string", + "enum": [ + "open", + "closed" + ], + "default": "open" + }, + "title": { + "description": "The title of the milestone.", + "example": "v1.0", + "type": "string" + }, + "description": { + "type": "string", + "example": "Tracking milestone for version 1.0", + "nullable": true + }, + "creator": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "open_issues": { + "type": "integer", + "example": 4 + }, + "closed_issues": { + "type": "integer", + "example": 8 + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2013-02-12T13:22:01Z", + "nullable": true + }, + "due_on": { + "type": "string", + "format": "date-time", + "example": "2012-10-09T23:39:01Z", + "nullable": true + } + }, + "required": [ + "closed_issues", + "creator", + "description", + "due_on", + "closed_at", + "id", + "node_id", + "labels_url", + "html_url", + "number", + "open_issues", + "state", + "title", + "url", + "created_at", + "updated_at" + ] + }, + "pages-source-hash": { + "title": "Pages Source Hash", + "type": "object", + "properties": { + "branch": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "branch", + "path" + ] + }, + "pages-https-certificate": { + "title": "Pages Https Certificate", + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": [ + "new", + "authorization_created", + "authorization_pending", + "authorized", + "authorization_revoked", + "issued", + "uploaded", + "approved", + "errored", + "bad_authz", + "destroy_pending", + "dns_changed" + ], + "example": "approved" + }, + "description": { + "type": "string", + "example": "Certificate is approved" + }, + "domains": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of the domain set and its alternate name (if it is configured)", + "example": [ + "example.com", + "www.example.com" + ] + }, + "expires_at": { + "type": "string", + "format": "date" + } + }, + "required": [ + "state", + "description", + "domains" + ] + }, + "page": { + "title": "GitHub Pages", + "description": "The configuration for GitHub Pages for a repository.", + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The API address for accessing this Page resource.", + "format": "uri", + "example": "https://api.github.com/repos/github/hello-world/pages" + }, + "status": { + "type": "string", + "description": "The status of the most recent build of the Page.", + "example": "built", + "enum": [ + "built", + "building", + "errored" + ], + "nullable": true + }, + "cname": { + "description": "The Pages site's custom domain", + "example": "example.com", + "type": "string", + "nullable": true + }, + "protected_domain_state": { + "type": "string", + "description": "The state if the domain is verified", + "example": "pending", + "nullable": true, + "enum": [ + "pending", + "verified", + "unverified" + ] + }, + "pending_domain_unverified_at": { + "type": "string", + "description": "The timestamp when a pending domain becomes unverified.", + "nullable": true, + "format": "date-time" + }, + "custom_404": { + "type": "boolean", + "description": "Whether the Page has a custom 404 page.", + "example": false, + "default": false + }, + "html_url": { + "type": "string", + "description": "The web address the Page can be accessed from.", + "format": "uri", + "example": "https://example.com" + }, + "build_type": { + "type": "string", + "description": "The process in which the Page will be built.", + "example": "legacy", + "nullable": true, + "enum": [ + "legacy", + "workflow" + ] + }, + "source": { + "$ref": "#/components/schemas/pages-source-hash" + }, + "public": { + "type": "boolean", + "description": "Whether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site.", + "example": true + }, + "https_certificate": { + "$ref": "#/components/schemas/pages-https-certificate" + }, + "https_enforced": { + "type": "boolean", + "description": "Whether https is enabled on the domain", + "example": true + } + }, + "required": [ + "url", + "status", + "cname", + "custom_404", + "public" + ] + }, + "page-build": { + "title": "Page Build", + "description": "Page Build", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "status": { + "type": "string" + }, + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "nullable": true + } + }, + "required": [ + "message" + ] + }, + "pusher": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "commit": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "url", + "status", + "error", + "pusher", + "commit", + "duration", + "created_at", + "updated_at" + ] + }, + "page-build-status": { + "title": "Page Build Status", + "description": "Page Build Status", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/github/hello-world/pages/builds/latest" + }, + "status": { + "type": "string", + "example": "queued" + } + }, + "required": [ + "url", + "status" + ] + }, + "page-deployment": { + "title": "GitHub Pages", + "description": "The GitHub Pages deployment status.", + "type": "object", + "properties": { + "id": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "description": "The ID of the GitHub Pages deployment. This is the Git SHA of the deployed commit." + }, + "status_url": { + "type": "string", + "description": "The URI to monitor GitHub Pages deployment status.", + "format": "uri", + "example": "https://api.github.com/repos/github/hello-world/pages/deployments/4fd754f7e594640989b406850d0bc8f06a121251" + }, + "page_url": { + "type": "string", + "description": "The URI to the deployed GitHub Pages.", + "format": "uri", + "example": "hello-world.github.io" + }, + "preview_url": { + "type": "string", + "description": "The URI to the deployed GitHub Pages preview.", + "format": "uri", + "example": "monalisa-1231a2312sa32-23sda74.drafts.github.io" + } + }, + "required": [ + "id", + "status_url", + "page_url" + ] + }, + "pages-deployment-status": { + "title": "GitHub Pages deployment status", + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status of the deployment.", + "enum": [ + "deployment_in_progress", + "syncing_files", + "finished_file_sync", + "updating_pages", + "purging_cdn", + "deployment_cancelled", + "deployment_failed", + "deployment_content_failed", + "deployment_attempt_error", + "deployment_lost", + "succeed" + ] + } + } + }, + "pages-health-check": { + "title": "Pages Health Check Status", + "description": "Pages Health Check Status", + "type": "object", + "properties": { + "domain": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "uri": { + "type": "string" + }, + "nameservers": { + "type": "string" + }, + "dns_resolves": { + "type": "boolean" + }, + "is_proxied": { + "type": "boolean", + "nullable": true + }, + "is_cloudflare_ip": { + "type": "boolean", + "nullable": true + }, + "is_fastly_ip": { + "type": "boolean", + "nullable": true + }, + "is_old_ip_address": { + "type": "boolean", + "nullable": true + }, + "is_a_record": { + "type": "boolean", + "nullable": true + }, + "has_cname_record": { + "type": "boolean", + "nullable": true + }, + "has_mx_records_present": { + "type": "boolean", + "nullable": true + }, + "is_valid_domain": { + "type": "boolean" + }, + "is_apex_domain": { + "type": "boolean" + }, + "should_be_a_record": { + "type": "boolean", + "nullable": true + }, + "is_cname_to_github_user_domain": { + "type": "boolean", + "nullable": true + }, + "is_cname_to_pages_dot_github_dot_com": { + "type": "boolean", + "nullable": true + }, + "is_cname_to_fastly": { + "type": "boolean", + "nullable": true + }, + "is_pointed_to_github_pages_ip": { + "type": "boolean", + "nullable": true + }, + "is_non_github_pages_ip_present": { + "type": "boolean", + "nullable": true + }, + "is_pages_domain": { + "type": "boolean" + }, + "is_served_by_pages": { + "type": "boolean", + "nullable": true + }, + "is_valid": { + "type": "boolean" + }, + "reason": { + "type": "string", + "nullable": true + }, + "responds_to_https": { + "type": "boolean" + }, + "enforces_https": { + "type": "boolean" + }, + "https_error": { + "type": "string", + "nullable": true + }, + "is_https_eligible": { + "type": "boolean", + "nullable": true + }, + "caa_error": { + "type": "string", + "nullable": true + } + } + }, + "alt_domain": { + "type": "object", + "nullable": true, + "properties": { + "host": { + "type": "string" + }, + "uri": { + "type": "string" + }, + "nameservers": { + "type": "string" + }, + "dns_resolves": { + "type": "boolean" + }, + "is_proxied": { + "type": "boolean", + "nullable": true + }, + "is_cloudflare_ip": { + "type": "boolean", + "nullable": true + }, + "is_fastly_ip": { + "type": "boolean", + "nullable": true + }, + "is_old_ip_address": { + "type": "boolean", + "nullable": true + }, + "is_a_record": { + "type": "boolean", + "nullable": true + }, + "has_cname_record": { + "type": "boolean", + "nullable": true + }, + "has_mx_records_present": { + "type": "boolean", + "nullable": true + }, + "is_valid_domain": { + "type": "boolean" + }, + "is_apex_domain": { + "type": "boolean" + }, + "should_be_a_record": { + "type": "boolean", + "nullable": true + }, + "is_cname_to_github_user_domain": { + "type": "boolean", + "nullable": true + }, + "is_cname_to_pages_dot_github_dot_com": { + "type": "boolean", + "nullable": true + }, + "is_cname_to_fastly": { + "type": "boolean", + "nullable": true + }, + "is_pointed_to_github_pages_ip": { + "type": "boolean", + "nullable": true + }, + "is_non_github_pages_ip_present": { + "type": "boolean", + "nullable": true + }, + "is_pages_domain": { + "type": "boolean" + }, + "is_served_by_pages": { + "type": "boolean", + "nullable": true + }, + "is_valid": { + "type": "boolean" + }, + "reason": { + "type": "string", + "nullable": true + }, + "responds_to_https": { + "type": "boolean" + }, + "enforces_https": { + "type": "boolean" + }, + "https_error": { + "type": "string", + "nullable": true + }, + "is_https_eligible": { + "type": "boolean", + "nullable": true + }, + "caa_error": { + "type": "string", + "nullable": true + } + } + } + } + }, + "pull-request": { + "type": "object", + "title": "Pull Request", + "description": "Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary.", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDExOlB1bGxSZXF1ZXN0MQ==" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347" + }, + "diff_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.diff" + }, + "patch_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "issue_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "commits_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "review_comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "statuses_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "example": 42, + "type": "integer" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "enum": [ + "open", + "closed" + ], + "example": "open", + "type": "string" + }, + "locked": { + "type": "boolean", + "example": true + }, + "title": { + "description": "The title of the pull request.", + "example": "Amazing new feature", + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/simple-user" + }, + "body": { + "type": "string", + "example": "Please pull these awesome changes", + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "color": { + "type": "string" + }, + "default": { + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "description", + "color", + "default" + ] + } + }, + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "active_lock_reason": { + "type": "string", + "example": "too heated", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merged_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merge_commit_sha": { + "type": "string", + "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "nullable": true + }, + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + }, + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + }, + "nullable": true + }, + "requested_teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team-simple" + }, + "nullable": true + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "$ref": "#/components/schemas/repository" + }, + "sha": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "label", + "ref", + "repo", + "sha", + "user" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "$ref": "#/components/schemas/repository" + }, + "sha": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "label", + "ref", + "repo", + "sha", + "user" + ] + }, + "_links": { + "type": "object", + "properties": { + "comments": { + "$ref": "#/components/schemas/link" + }, + "commits": { + "$ref": "#/components/schemas/link" + }, + "statuses": { + "$ref": "#/components/schemas/link" + }, + "html": { + "$ref": "#/components/schemas/link" + }, + "issue": { + "$ref": "#/components/schemas/link" + }, + "review_comments": { + "$ref": "#/components/schemas/link" + }, + "review_comment": { + "$ref": "#/components/schemas/link" + }, + "self": { + "$ref": "#/components/schemas/link" + } + }, + "required": [ + "comments", + "commits", + "statuses", + "html", + "issue", + "review_comments", + "review_comment", + "self" + ] + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "auto_merge": { + "$ref": "#/components/schemas/auto-merge" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "example": false, + "type": "boolean" + }, + "merged": { + "type": "boolean" + }, + "mergeable": { + "type": "boolean", + "example": true, + "nullable": true + }, + "rebaseable": { + "type": "boolean", + "example": true, + "nullable": true + }, + "mergeable_state": { + "type": "string", + "example": "clean" + }, + "merged_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "comments": { + "type": "integer", + "example": 10 + }, + "review_comments": { + "type": "integer", + "example": 0 + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "example": true, + "type": "boolean" + }, + "commits": { + "type": "integer", + "example": 3 + }, + "additions": { + "type": "integer", + "example": 100 + }, + "deletions": { + "type": "integer", + "example": 3 + }, + "changed_files": { + "type": "integer", + "example": 5 + } + }, + "required": [ + "_links", + "assignee", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "merge_commit_sha", + "merged_at", + "milestone", + "number", + "patch_url", + "review_comment_url", + "review_comments_url", + "statuses_url", + "state", + "locked", + "title", + "updated_at", + "url", + "user", + "author_association", + "auto_merge", + "additions", + "changed_files", + "comments", + "commits", + "deletions", + "mergeable", + "mergeable_state", + "merged", + "maintainer_can_modify", + "merged_by", + "review_comments" + ] + }, + "pull-request-merge-result": { + "title": "Pull Request Merge Result", + "description": "Pull Request Merge Result", + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "merged": { + "type": "boolean" + }, + "message": { + "type": "string" + } + }, + "required": [ + "merged", + "message", + "sha" + ] + }, + "pull-request-review-request": { + "title": "Pull Request Review Request", + "description": "Pull Request Review Request", + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + } + }, + "required": [ + "users", + "teams" + ] + }, + "pull-request-review": { + "title": "Pull Request Review", + "description": "Pull Request Reviews are reviews on pull requests.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the review", + "example": 42, + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string", + "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body": { + "description": "The text of the review.", + "example": "This looks great.", + "type": "string" + }, + "state": { + "type": "string", + "example": "CHANGES_REQUESTED" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + }, + "_links": { + "type": "object", + "properties": { + "html": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "html", + "pull_request" + ] + }, + "submitted_at": { + "type": "string", + "format": "date-time" + }, + "commit_id": { + "description": "A commit SHA for the review. If the commit object was garbage collected or forcibly deleted, then it no longer exists in Git and this value will be `null`.", + "example": "54bb654c9e6025347f57900a4a5c2313a96b8035", + "type": "string", + "nullable": true + }, + "body_html": { + "type": "string" + }, + "body_text": { + "type": "string" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + } + }, + "required": [ + "id", + "node_id", + "user", + "body", + "state", + "commit_id", + "html_url", + "pull_request_url", + "_links", + "author_association" + ] + }, + "review-comment": { + "title": "Legacy Review Comment", + "description": "Legacy Review Comment", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + }, + "pull_request_review_id": { + "type": "integer", + "format": "int64", + "example": 42, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int64", + "example": 10 + }, + "node_id": { + "type": "string", + "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" + }, + "diff_hunk": { + "type": "string", + "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + }, + "path": { + "type": "string", + "example": "file1.txt" + }, + "position": { + "type": "integer", + "example": 1, + "nullable": true + }, + "original_position": { + "type": "integer", + "example": 4 + }, + "commit_id": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "original_commit_id": { + "type": "string", + "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840" + }, + "in_reply_to_id": { + "type": "integer", + "example": 8 + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body": { + "type": "string", + "example": "Great stuff" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/link" + }, + "html": { + "$ref": "#/components/schemas/link" + }, + "pull_request": { + "$ref": "#/components/schemas/link" + } + }, + "required": [ + "self", + "html", + "pull_request" + ] + }, + "body_text": { + "type": "string" + }, + "body_html": { + "type": "string" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + }, + "side": { + "description": "The side of the first line of the range for a multi-line comment.", + "enum": [ + "LEFT", + "RIGHT" + ], + "default": "RIGHT", + "type": "string" + }, + "start_side": { + "type": "string", + "description": "The side of the first line of the range for a multi-line comment.", + "enum": [ + "LEFT", + "RIGHT" + ], + "default": "RIGHT", + "nullable": true + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "original_line": { + "description": "The original line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "start_line": { + "description": "The first line of the range for a multi-line comment.", + "example": 2, + "type": "integer", + "nullable": true + }, + "original_start_line": { + "description": "The original first line of the range for a multi-line comment.", + "example": 2, + "type": "integer", + "nullable": true + }, + "subject_type": { + "description": "The level at which the comment is targeted, can be a diff line or a file.", + "type": "string", + "enum": [ + "line", + "file" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "body", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "pull_request_review_id", + "html_url", + "pull_request_url", + "_links", + "author_association", + "created_at", + "updated_at" + ] + }, + "release-notes-content": { + "title": "Generated Release Notes Content", + "description": "Generated name and body describing a release", + "type": "object", + "properties": { + "name": { + "description": "The generated name of the release", + "type": "string", + "example": "Release v1.0.0 is now available!" + }, + "body": { + "description": "The generated body describing the contents of the release supporting markdown formatting", + "type": "string" + } + }, + "required": [ + "name", + "body" + ] + }, + "repository-rule-ruleset-info": { + "title": "repository ruleset data for rule", + "description": "User-defined metadata to store domain-specific information limited to 8 keys with scalar values.", + "properties": { + "ruleset_source_type": { + "type": "string", + "description": "The type of source for the ruleset that includes this rule.", + "enum": [ + "Repository", + "Organization" + ] + }, + "ruleset_source": { + "type": "string", + "description": "The name of the source of the ruleset that includes this rule." + }, + "ruleset_id": { + "type": "integer", + "description": "The ID of the ruleset that includes this rule." + } + } + }, + "repository-rule-detailed": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule with ruleset details.", + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-creation" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-update" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-deletion" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-linear-history" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-merge-queue" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-deployments" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-signatures" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-pull-request" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-status-checks" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-non-fast-forward" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-commit-message-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-commit-author-email-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-file-path-restriction" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-max-file-path-length" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-max-file-size" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-workflows" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-code-scanning" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-copilot-code-review" + }, + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + } + ] + }, + "secret-scanning-alert": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/nullable-alert-updated-at" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "locations_url": { + "type": "string", + "format": "uri", + "description": "The REST API URL of the code locations for this alert." + }, + "state": { + "$ref": "#/components/schemas/secret-scanning-alert-state" + }, + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + }, + "resolved_at": { + "type": "string", + "format": "date-time", + "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "resolved_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "resolution_comment": { + "type": "string", + "description": "An optional comment to resolve an alert.", + "nullable": true + }, + "secret_type": { + "type": "string", + "description": "The type of secret that secret scanning detected." + }, + "secret_type_display_name": { + "type": "string", + "description": "User-friendly name for the detected secret, matching the `secret_type`.\nFor a list of built-in patterns, see \"[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"" + }, + "secret": { + "type": "string", + "description": "The secret that was detected." + }, + "push_protection_bypassed": { + "type": "boolean", + "description": "Whether push protection was bypassed for the detected secret.", + "nullable": true + }, + "push_protection_bypassed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "push_protection_bypassed_at": { + "type": "string", + "format": "date-time", + "description": "The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "push_protection_bypass_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "push_protection_bypass_request_reviewer_comment": { + "type": "string", + "description": "An optional comment when reviewing a push protection bypass.", + "nullable": true + }, + "push_protection_bypass_request_comment": { + "type": "string", + "description": "An optional comment when requesting a push protection bypass.", + "nullable": true + }, + "push_protection_bypass_request_html_url": { + "type": "string", + "format": "uri", + "description": "The URL to a push protection bypass request.", + "nullable": true + }, + "validity": { + "type": "string", + "description": "The token status as of the latest validity check.", + "enum": [ + "active", + "inactive", + "unknown" + ] + }, + "publicly_leaked": { + "type": "boolean", + "description": "Whether the detected secret was publicly leaked.", + "nullable": true + }, + "multi_repo": { + "type": "boolean", + "description": "Whether the detected secret was found in multiple repositories under the same organization or enterprise.", + "nullable": true + }, + "is_base64_encoded": { + "type": "boolean", + "description": "A boolean value representing whether or not alert is base64 encoded", + "nullable": true + }, + "first_location_detected": { + "$ref": "#/components/schemas/nullable-secret-scanning-first-detected-location" + }, + "has_more_locations": { + "type": "boolean", + "description": "A boolean value representing whether or not the token in the alert was detected in more than one location." + }, + "assigned_to": { + "$ref": "#/components/schemas/nullable-simple-user" + } + } + }, + "secret-scanning-alert-resolution-comment": { + "description": "An optional comment when closing or reopening an alert. Cannot be updated or deleted.", + "type": "string", + "nullable": true + }, + "secret-scanning-alert-assignee": { + "description": "The username of the user to assign to the alert. Set to `null` to unassign the alert.", + "type": "string", + "nullable": true + }, + "secret-scanning-location": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "commit", + "wiki_commit", + "issue_title", + "issue_body", + "issue_comment", + "discussion_title", + "discussion_body", + "discussion_comment", + "pull_request_title", + "pull_request_body", + "pull_request_comment", + "pull_request_review", + "pull_request_review_comment" + ], + "description": "The location type. Because secrets may be found in different types of resources (ie. code, comments, issues, pull requests, discussions), this field identifies the type of resource where the secret was found.", + "example": "commit" + }, + "details": { + "oneOf": [ + { + "$ref": "#/components/schemas/secret-scanning-location-commit" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-wiki-commit" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-issue-title" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-issue-body" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-issue-comment" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-title" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-body" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-comment" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-title" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-body" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-comment" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-review" + }, + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-review-comment" + } + ] + } + } + }, + "secret-scanning-push-protection-bypass-reason": { + "description": "The reason for bypassing push protection.", + "type": "string", + "enum": [ + "false_positive", + "used_in_tests", + "will_fix_later" + ] + }, + "secret-scanning-push-protection-bypass": { + "type": "object", + "properties": { + "reason": { + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-reason" + }, + "expire_at": { + "type": "string", + "format": "date-time", + "description": "The time that the bypass will expire in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "token_type": { + "type": "string", + "description": "The token type this bypass is for." + } + } + }, + "secret-scanning-scan": { + "description": "Information on a single scan performed by secret scanning on the repository", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of scan" + }, + "status": { + "type": "string", + "description": "The state of the scan. Either \"completed\", \"running\", or \"pending\"" + }, + "completed_at": { + "type": "string", + "format": "date-time", + "description": "The time that the scan was completed. Empty if the scan is running", + "nullable": true + }, + "started_at": { + "type": "string", + "format": "date-time", + "description": "The time that the scan was started. Empty if the scan is pending", + "nullable": true + } + } + }, + "secret-scanning-scan-history": { + "type": "object", + "properties": { + "incremental_scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-scan" + } + }, + "pattern_update_scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-scan" + } + }, + "backfill_scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-scan" + } + }, + "custom_pattern_backfill_scans": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/secret-scanning-scan" + }, + { + "type": "object", + "properties": { + "pattern_name": { + "type": "string", + "description": "Name of the custom pattern for custom pattern scans" + }, + "pattern_scope": { + "type": "string", + "description": "Level at which the custom pattern is defined, one of \"repository\", \"organization\", or \"enterprise\"" + } + } + } + ] + } + } + } + }, + "repository-advisory-create": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "description": "A short summary of the advisory.", + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A detailed description of what the advisory impacts.", + "maxLength": 65535 + }, + "cve_id": { + "type": "string", + "description": "The Common Vulnerabilities and Exposures (CVE) ID.", + "nullable": true + }, + "vulnerabilities": { + "type": "array", + "description": "A product affected by the vulnerability detailed in a repository security advisory.", + "items": { + "type": "object", + "properties": { + "package": { + "description": "The name of the package affected by the vulnerability.", + "type": "object", + "properties": { + "ecosystem": { + "$ref": "#/components/schemas/security-advisory-ecosystems" + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "nullable": true + } + }, + "required": [ + "ecosystem" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "The range of the package versions affected by the vulnerability.", + "nullable": true + }, + "patched_versions": { + "type": "string", + "description": "The package version(s) that resolve the vulnerability.", + "nullable": true + }, + "vulnerable_functions": { + "type": "array", + "description": "The functions in the package that are affected.", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "package" + ], + "additionalProperties": false + } + }, + "cwe_ids": { + "type": "array", + "description": "A list of Common Weakness Enumeration (CWE) IDs.", + "nullable": true, + "items": { + "type": "string" + } + }, + "credits": { + "type": "array", + "description": "A list of users receiving credit for their participation in the security advisory.", + "nullable": true, + "items": { + "type": "object", + "properties": { + "login": { + "type": "string", + "description": "The username of the user credited." + }, + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" + } + }, + "required": [ + "login", + "type" + ], + "additionalProperties": false + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory. You must choose between setting this field or `cvss_vector_string`.", + "nullable": true, + "enum": [ + "critical", + "high", + "medium", + "low" + ] + }, + "cvss_vector_string": { + "type": "string", + "description": "The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`.", + "nullable": true + }, + "start_private_fork": { + "type": "boolean", + "description": "Whether to create a temporary private fork of the repository to collaborate on a fix.", + "default": false + } + }, + "required": [ + "summary", + "description", + "vulnerabilities" + ], + "additionalProperties": false + }, + "private-vulnerability-report-create": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "description": "A short summary of the advisory.", + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A detailed description of what the advisory impacts.", + "maxLength": 65535 + }, + "vulnerabilities": { + "type": "array", + "description": "An array of products affected by the vulnerability detailed in a repository security advisory.", + "nullable": true, + "items": { + "type": "object", + "properties": { + "package": { + "description": "The name of the package affected by the vulnerability.", + "type": "object", + "properties": { + "ecosystem": { + "$ref": "#/components/schemas/security-advisory-ecosystems" + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "nullable": true + } + }, + "required": [ + "ecosystem" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "The range of the package versions affected by the vulnerability.", + "nullable": true + }, + "patched_versions": { + "type": "string", + "description": "The package version(s) that resolve the vulnerability.", + "nullable": true + }, + "vulnerable_functions": { + "type": "array", + "description": "The functions in the package that are affected.", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "package" + ], + "additionalProperties": false + } + }, + "cwe_ids": { + "type": "array", + "description": "A list of Common Weakness Enumeration (CWE) IDs.", + "nullable": true, + "items": { + "type": "string" + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory. You must choose between setting this field or `cvss_vector_string`.", + "nullable": true, + "enum": [ + "critical", + "high", + "medium", + "low" + ] + }, + "cvss_vector_string": { + "type": "string", + "description": "The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`.", + "nullable": true + }, + "start_private_fork": { + "type": "boolean", + "description": "Whether to create a temporary private fork of the repository to collaborate on a fix.", + "default": false + } + }, + "required": [ + "summary", + "description" + ], + "additionalProperties": false + }, + "repository-advisory-update": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "description": "A short summary of the advisory.", + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A detailed description of what the advisory impacts.", + "maxLength": 65535 + }, + "cve_id": { + "type": "string", + "description": "The Common Vulnerabilities and Exposures (CVE) ID.", + "nullable": true + }, + "vulnerabilities": { + "type": "array", + "description": "A product affected by the vulnerability detailed in a repository security advisory.", + "items": { + "type": "object", + "properties": { + "package": { + "description": "The name of the package affected by the vulnerability.", + "type": "object", + "properties": { + "ecosystem": { + "$ref": "#/components/schemas/security-advisory-ecosystems" + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "nullable": true + } + }, + "required": [ + "ecosystem" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "The range of the package versions affected by the vulnerability.", + "nullable": true + }, + "patched_versions": { + "type": "string", + "description": "The package version(s) that resolve the vulnerability.", + "nullable": true + }, + "vulnerable_functions": { + "type": "array", + "description": "The functions in the package that are affected.", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "package" + ], + "additionalProperties": false + } + }, + "cwe_ids": { + "type": "array", + "description": "A list of Common Weakness Enumeration (CWE) IDs.", + "nullable": true, + "items": { + "type": "string" + } + }, + "credits": { + "type": "array", + "description": "A list of users receiving credit for their participation in the security advisory.", + "nullable": true, + "items": { + "type": "object", + "properties": { + "login": { + "type": "string", + "description": "The username of the user credited." + }, + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" + } + }, + "required": [ + "login", + "type" + ], + "additionalProperties": false + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory. You must choose between setting this field or `cvss_vector_string`.", + "nullable": true, + "enum": [ + "critical", + "high", + "medium", + "low" + ] + }, + "cvss_vector_string": { + "type": "string", + "description": "The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`.", + "nullable": true + }, + "state": { + "type": "string", + "description": "The state of the advisory.", + "enum": [ + "published", + "closed", + "draft" + ] + }, + "collaborating_users": { + "type": "array", + "description": "A list of usernames who have been granted write access to the advisory.", + "nullable": true, + "items": { + "type": "string" + } + }, + "collaborating_teams": { + "type": "array", + "description": "A list of team slugs which have been granted write access to the advisory.", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "stargazer": { + "title": "Stargazer", + "description": "Stargazer", + "type": "object", + "properties": { + "starred_at": { + "type": "string", + "format": "date-time" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + } + }, + "required": [ + "starred_at", + "user" + ] + }, + "code-frequency-stat": { + "title": "Code Frequency Stat", + "description": "Code Frequency Stat", + "type": "array", + "items": { + "type": "integer" + } + }, + "commit-activity": { + "title": "Commit Activity", + "description": "Commit Activity", + "type": "object", + "properties": { + "days": { + "type": "array", + "example": [ + 0, + 3, + 26, + 20, + 39, + 1, + 0 + ], + "items": { + "type": "integer" + } + }, + "total": { + "type": "integer", + "example": 89 + }, + "week": { + "type": "integer", + "example": 1336280400 + } + }, + "required": [ + "days", + "total", + "week" + ] + }, + "contributor-activity": { + "title": "Contributor Activity", + "description": "Contributor Activity", + "type": "object", + "properties": { + "author": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "total": { + "type": "integer", + "example": 135 + }, + "weeks": { + "type": "array", + "example": [ + { + "w": "1367712000", + "a": 6898, + "d": 77, + "c": 10 + } + ], + "items": { + "type": "object", + "properties": { + "w": { + "type": "integer" + }, + "a": { + "type": "integer" + }, + "d": { + "type": "integer" + }, + "c": { + "type": "integer" + } + } + } + } + }, + "required": [ + "author", + "total", + "weeks" + ] + }, + "participation-stats": { + "title": "Participation Stats", + "type": "object", + "properties": { + "all": { + "type": "array", + "items": { + "type": "integer" + } + }, + "owner": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "all", + "owner" + ] + }, + "repository-subscription": { + "title": "Repository Invitation", + "description": "Repository invitations let you manage who you collaborate with.", + "type": "object", + "properties": { + "subscribed": { + "description": "Determines if notifications should be received from this repository.", + "type": "boolean", + "example": true + }, + "ignored": { + "description": "Determines if all notifications should be blocked from this repository.", + "type": "boolean" + }, + "reason": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-10-06T21:34:12Z" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/subscription" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example" + } + }, + "required": [ + "created_at", + "ignored", + "reason", + "subscribed", + "url", + "repository_url" + ] + }, + "tag": { + "title": "Tag", + "description": "Tag", + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "v0.1" + }, + "commit": { + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url" + ] + }, + "zipball_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/zipball/v0.1" + }, + "tarball_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/tarball/v0.1" + }, + "node_id": { + "type": "string" + } + }, + "required": [ + "name", + "node_id", + "commit", + "zipball_url", + "tarball_url" + ] + }, + "tag-protection": { + "title": "Tag protection", + "description": "Tag protection", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 2 + }, + "created_at": { + "type": "string", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "example": "2011-01-26T19:01:12Z" + }, + "enabled": { + "type": "boolean", + "example": true + }, + "pattern": { + "type": "string", + "example": "v1.*" + } + }, + "required": [ + "pattern" + ] + }, + "topic": { + "title": "Topic", + "description": "A topic aggregates entities that are related to a subject.", + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "names" + ] + }, + "traffic": { + "title": "Traffic", + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time" + }, + "uniques": { + "type": "integer" + }, + "count": { + "type": "integer" + } + }, + "required": [ + "timestamp", + "uniques", + "count" + ] + }, + "clone-traffic": { + "title": "Clone Traffic", + "description": "Clone Traffic", + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 173 + }, + "uniques": { + "type": "integer", + "example": 128 + }, + "clones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/traffic" + } + } + }, + "required": [ + "uniques", + "count", + "clones" + ] + }, + "content-traffic": { + "title": "Content Traffic", + "description": "Content Traffic", + "type": "object", + "properties": { + "path": { + "type": "string", + "example": "/github/hubot" + }, + "title": { + "type": "string", + "example": "github/hubot: A customizable life embetterment robot." + }, + "count": { + "type": "integer", + "example": 3542 + }, + "uniques": { + "type": "integer", + "example": 2225 + } + }, + "required": [ + "path", + "title", + "uniques", + "count" + ] + }, + "referrer-traffic": { + "title": "Referrer Traffic", + "description": "Referrer Traffic", + "type": "object", + "properties": { + "referrer": { + "type": "string", + "example": "Google" + }, + "count": { + "type": "integer", + "example": 4 + }, + "uniques": { + "type": "integer", + "example": 3 + } + }, + "required": [ + "referrer", + "uniques", + "count" + ] + }, + "view-traffic": { + "title": "View Traffic", + "description": "View Traffic", + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 14850 + }, + "uniques": { + "type": "integer", + "example": 3782 + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/traffic" + } + } + }, + "required": [ + "uniques", + "count", + "views" + ] + }, + "search-result-text-matches": { + "title": "Search Result Text Matches", + "type": "array", + "items": { + "type": "object", + "properties": { + "object_url": { + "type": "string" + }, + "object_type": { + "nullable": true, + "type": "string" + }, + "property": { + "type": "string" + }, + "fragment": { + "type": "string" + }, + "matches": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "indices": { + "type": "array", + "items": { + "type": "integer" + } + } + } + } + } + } + } + }, + "code-search-result-item": { + "title": "Code Search Result Item", + "description": "Code Search Result Item", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "score": { + "type": "number" + }, + "file_size": { + "type": "integer" + }, + "language": { + "type": "string", + "nullable": true + }, + "last_modified_at": { + "type": "string", + "format": "date-time" + }, + "line_numbers": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "73..77", + "77..78" + ] + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + } + }, + "required": [ + "score", + "name", + "path", + "sha", + "git_url", + "html_url", + "url", + "repository" + ] + }, + "commit-search-result-item": { + "title": "Commit Search Result Item", + "description": "Commit Search Result Item", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commit": { + "type": "object", + "properties": { + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "email", + "date" + ] + }, + "committer": { + "$ref": "#/components/schemas/nullable-git-user" + }, + "comment_count": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "tree": { + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "verification": { + "$ref": "#/components/schemas/verification" + } + }, + "required": [ + "author", + "committer", + "comment_count", + "message", + "tree", + "url" + ] + }, + "author": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "committer": { + "$ref": "#/components/schemas/nullable-git-user" + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "sha": { + "type": "string" + } + } + } + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "score": { + "type": "number" + }, + "node_id": { + "type": "string" + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + } + }, + "required": [ + "sha", + "node_id", + "url", + "html_url", + "author", + "committer", + "parents", + "comments_url", + "commit", + "repository", + "score" + ] + }, + "issue-search-result-item": { + "title": "Issue Search Result Item", + "description": "Issue Search Result Item", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "labels_url": { + "type": "string" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "title": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + }, + "nullable": true + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + } + } + } + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "type": "string" + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "comments": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "diff_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "patch_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "diff_url", + "html_url", + "patch_url", + "url" + ] + }, + "body": { + "type": "string" + }, + "score": { + "type": "number" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "draft": { + "type": "boolean" + }, + "repository": { + "$ref": "#/components/schemas/repository" + }, + "body_html": { + "type": "string" + }, + "body_text": { + "type": "string" + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + } + }, + "required": [ + "assignee", + "closed_at", + "comments", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "labels", + "labels_url", + "milestone", + "number", + "repository_url", + "state", + "locked", + "title", + "url", + "user", + "author_association", + "created_at", + "updated_at", + "score" + ] + }, + "label-search-result-item": { + "title": "Label Search Result Item", + "description": "Label Search Result Item", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "score": { + "type": "number" + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description", + "score" + ] + }, + "repo-search-result-item": { + "title": "Repo Search Result Item", + "description": "Repo Search Result Item", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "pushed_at": { + "type": "string", + "format": "date-time" + }, + "homepage": { + "type": "string", + "format": "uri", + "nullable": true + }, + "size": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "default_branch": { + "type": "string" + }, + "score": { + "type": "number" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "keys_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "issue_events_url": { + "type": "string" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "assignees_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "blobs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "archive_url": { + "type": "string" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "issues_url": { + "type": "string" + }, + "pulls_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string" + }, + "ssh_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "forks": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "mirror_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "has_discussions": { + "type": "boolean" + }, + "has_pull_requests": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "type": "string" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_merge_commit": { + "type": "boolean" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "allow_auto_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_forking": { + "type": "boolean" + }, + "is_template": { + "type": "boolean" + }, + "web_commit_signoff_required": { + "type": "boolean", + "example": false + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at", + "score" + ] + }, + "topic-search-result-item": { + "title": "Topic Search Result Item", + "description": "Topic Search Result Item", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "display_name": { + "type": "string", + "nullable": true + }, + "short_description": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "created_by": { + "type": "string", + "nullable": true + }, + "released": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "featured": { + "type": "boolean" + }, + "curated": { + "type": "boolean" + }, + "score": { + "type": "number" + }, + "repository_count": { + "type": "integer", + "nullable": true + }, + "logo_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "related": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "topic_relation": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "topic_id": { + "type": "integer" + }, + "relation_type": { + "type": "string" + } + } + } + } + } + }, + "aliases": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "topic_relation": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "topic_id": { + "type": "integer" + }, + "relation_type": { + "type": "string" + } + } + } + } + } + } + }, + "required": [ + "name", + "display_name", + "short_description", + "description", + "created_by", + "released", + "created_at", + "updated_at", + "featured", + "curated", + "score" + ] + }, + "user-search-result-item": { + "title": "User Search Result Item", + "description": "User Search Result Item", + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string", + "format": "uri" + }, + "gravatar_id": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string" + }, + "score": { + "type": "number" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "public_repos": { + "type": "integer" + }, + "public_gists": { + "type": "integer" + }, + "followers": { + "type": "integer" + }, + "following": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string", + "nullable": true + }, + "bio": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "site_admin": { + "type": "boolean" + }, + "hireable": { + "type": "boolean", + "nullable": true + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "blog": { + "type": "string", + "nullable": true + }, + "company": { + "type": "string", + "nullable": true + }, + "suspended_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "score" + ] + }, + "private-user": { + "title": "Private User", + "description": "Private User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "user_view_type": { + "type": "string" + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "name": { + "type": "string", + "example": "monalisa octocat", + "nullable": true + }, + "company": { + "type": "string", + "example": "GitHub", + "nullable": true + }, + "blog": { + "type": "string", + "example": "https://github.com/blog", + "nullable": true + }, + "location": { + "type": "string", + "example": "San Francisco", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com", + "nullable": true + }, + "notification_email": { + "type": "string", + "format": "email", + "example": "octocat@github.com", + "nullable": true + }, + "hireable": { + "type": "boolean", + "nullable": true + }, + "bio": { + "type": "string", + "example": "There once was...", + "nullable": true + }, + "twitter_username": { + "type": "string", + "example": "monalisa", + "nullable": true + }, + "public_repos": { + "type": "integer", + "example": 2 + }, + "public_gists": { + "type": "integer", + "example": 1 + }, + "followers": { + "type": "integer", + "example": 20 + }, + "following": { + "type": "integer", + "example": 0 + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" + }, + "private_gists": { + "type": "integer", + "example": 81 + }, + "total_private_repos": { + "type": "integer", + "example": 100 + }, + "owned_private_repos": { + "type": "integer", + "example": 100 + }, + "disk_usage": { + "type": "integer", + "example": 10000 + }, + "collaborators": { + "type": "integer", + "example": 8 + }, + "two_factor_authentication": { + "type": "boolean", + "example": true + }, + "plan": { + "type": "object", + "properties": { + "collaborators": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "space": { + "type": "integer" + }, + "private_repos": { + "type": "integer" + } + }, + "required": [ + "collaborators", + "name", + "space", + "private_repos" + ] + }, + "business_plus": { + "type": "boolean" + }, + "ldap_dn": { + "type": "string" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "bio", + "blog", + "company", + "email", + "followers", + "following", + "hireable", + "location", + "name", + "public_gists", + "public_repos", + "created_at", + "updated_at", + "collaborators", + "disk_usage", + "owned_private_repos", + "private_gists", + "total_private_repos", + "two_factor_authentication" + ] + }, + "codespaces-secret": { + "title": "Codespaces Secret", + "description": "Secrets for a GitHub Codespace.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret", + "example": "SECRET_NAME", + "type": "string" + }, + "created_at": { + "description": "The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "updated_at": { + "description": "The date and time at which the secret was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "The type of repositories in the organization that the secret is visible to", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "description": "The API URL at which the list of repositories this secret is visible to can be retrieved", + "type": "string", + "format": "uri", + "example": "https://api.github.com/user/secrets/SECRET_NAME/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility", + "selected_repositories_url" + ] + }, + "codespaces-user-public-key": { + "title": "CodespacesUserPublicKey", + "description": "The public key used for setting user Codespaces' Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "codespace-export-details": { + "type": "object", + "title": "Fetches information about an export of a codespace.", + "description": "An export of a codespace. Also, latest export details for a codespace can be fetched with id = latest", + "properties": { + "state": { + "type": "string", + "description": "State of the latest export", + "nullable": true, + "example": "succeeded | failed | in_progress" + }, + "completed_at": { + "description": "Completion time of the last export operation", + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-01-01T19:01:12Z" + }, + "branch": { + "type": "string", + "description": "Name of the exported branch", + "nullable": true, + "example": "codespace-monalisa-octocat-hello-world-g4wpq6h95q" + }, + "sha": { + "type": "string", + "description": "Git commit SHA of the exported branch", + "nullable": true, + "example": "fd95a81ca01e48ede9f39c799ecbcef817b8a3b2" + }, + "id": { + "type": "string", + "description": "Id for the export details", + "example": "latest" + }, + "export_url": { + "type": "string", + "description": "Url for fetching export details", + "example": "https://api.github.com/user/codespaces/:name/exports/latest" + }, + "html_url": { + "type": "string", + "nullable": true, + "description": "Web url for the exported branch", + "example": "https://github.com/octocat/hello-world/tree/:branch" + } + } + }, + "codespace-with-full-repository": { + "type": "object", + "title": "Codespace", + "description": "A codespace.", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "description": "Automatically generated name of this codespace.", + "type": "string", + "example": "monalisa-octocat-hello-world-g4wpq6h95q" + }, + "display_name": { + "description": "Display name for this codespace.", + "type": "string", + "example": "bookish space pancake", + "nullable": true + }, + "environment_id": { + "description": "UUID identifying this codespace's environment.", + "type": "string", + "example": "26a7c758-7299-4a73-b978-5a92a7ae98a0", + "nullable": true + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "billable_owner": { + "$ref": "#/components/schemas/simple-user" + }, + "repository": { + "$ref": "#/components/schemas/full-repository" + }, + "machine": { + "$ref": "#/components/schemas/nullable-codespace-machine" + }, + "devcontainer_path": { + "description": "Path to devcontainer.json from repo root used to create Codespace.", + "type": "string", + "example": ".devcontainer/example/devcontainer.json", + "nullable": true + }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "last_used_at": { + "description": "Last known time this codespace was started.", + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "state": { + "description": "State of this codespace.", + "enum": [ + "Unknown", + "Created", + "Queued", + "Provisioning", + "Available", + "Awaiting", + "Unavailable", + "Deleted", + "Moved", + "Shutdown", + "Archived", + "Starting", + "ShuttingDown", + "Failed", + "Exporting", + "Updating", + "Rebuilding" + ], + "example": "Available", + "type": "string" + }, + "url": { + "description": "API URL for this codespace.", + "type": "string", + "format": "uri" + }, + "git_status": { + "description": "Details about the codespace's git repository.", + "type": "object", + "properties": { + "ahead": { + "description": "The number of commits the local repository is ahead of the remote.", + "type": "integer", + "example": 0 + }, + "behind": { + "description": "The number of commits the local repository is behind the remote.", + "type": "integer", + "example": 0 + }, + "has_unpushed_changes": { + "description": "Whether the local repository has unpushed changes.", + "type": "boolean" + }, + "has_uncommitted_changes": { + "description": "Whether the local repository has uncommitted changes.", + "type": "boolean" + }, + "ref": { + "description": "The current branch (or SHA if in detached HEAD state) of the local repository.", + "type": "string", + "example": "main" + } + } + }, + "location": { + "description": "The initally assigned location of a new codespace.", + "enum": [ + "EastUs", + "SouthEastAsia", + "WestEurope", + "WestUs2" + ], + "example": "WestUs2", + "type": "string" + }, + "idle_timeout_minutes": { + "description": "The number of minutes of inactivity after which this codespace will be automatically stopped.", + "type": "integer", + "example": 60, + "nullable": true + }, + "web_url": { + "description": "URL to access this codespace on the web.", + "type": "string", + "format": "uri" + }, + "machines_url": { + "description": "API URL to access available alternate machine types for this codespace.", + "type": "string", + "format": "uri" + }, + "start_url": { + "description": "API URL to start this codespace.", + "type": "string", + "format": "uri" + }, + "stop_url": { + "description": "API URL to stop this codespace.", + "type": "string", + "format": "uri" + }, + "publish_url": { + "description": "API URL to publish this codespace to a new repository.", + "type": "string", + "format": "uri", + "nullable": true + }, + "pulls_url": { + "description": "API URL for the Pull Request associated with this codespace, if any.", + "type": "string", + "format": "uri", + "nullable": true + }, + "recent_folders": { + "type": "array", + "items": { + "type": "string" + } + }, + "runtime_constraints": { + "type": "object", + "properties": { + "allowed_port_privacy_settings": { + "description": "The privacy settings a user can select from when forwarding a port.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + }, + "pending_operation": { + "description": "Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it.", + "type": "boolean", + "nullable": true + }, + "pending_operation_disabled_reason": { + "description": "Text to show user when codespace is disabled by a pending operation", + "type": "string", + "nullable": true + }, + "idle_timeout_notice": { + "description": "Text to show user when codespace idle timeout minutes has been overriden by an organization policy", + "type": "string", + "nullable": true + }, + "retention_period_minutes": { + "description": "Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days).", + "type": "integer", + "example": 60, + "nullable": true + }, + "retention_expires_at": { + "description": "When a codespace will be auto-deleted based on the \"retention_period_minutes\" and \"last_used_at\"", + "type": "string", + "format": "date-time", + "example": "2011-01-26T20:01:12Z", + "nullable": true + } + }, + "required": [ + "id", + "name", + "environment_id", + "owner", + "billable_owner", + "repository", + "machine", + "prebuild", + "created_at", + "updated_at", + "last_used_at", + "state", + "url", + "git_status", + "location", + "idle_timeout_minutes", + "web_url", + "machines_url", + "start_url", + "stop_url", + "pulls_url", + "recent_folders" + ] + }, + "email": { + "title": "Email", + "description": "Email", + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com" + }, + "primary": { + "type": "boolean", + "example": true + }, + "verified": { + "type": "boolean", + "example": true + }, + "visibility": { + "type": "string", + "example": "public", + "nullable": true + } + }, + "required": [ + "email", + "primary", + "verified", + "visibility" + ] + }, + "gpg-key": { + "title": "GPG Key", + "description": "A unique encryption key", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 3 + }, + "name": { + "type": "string", + "example": "Octocat's GPG Key", + "nullable": true + }, + "primary_key_id": { + "type": "integer", + "nullable": true + }, + "key_id": { + "type": "string", + "example": "3262EFF25BA0D270" + }, + "public_key": { + "type": "string", + "example": "xsBNBFayYZ..." + }, + "emails": { + "type": "array", + "example": [ + { + "email": "octocat@users.noreply.github.com", + "verified": true + } + ], + "items": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "verified": { + "type": "boolean" + } + } + } + }, + "subkeys": { + "type": "array", + "example": [ + { + "id": 4, + "primary_key_id": 3, + "key_id": "4A595D4C72EE49C7", + "public_key": "zsBNBFayYZ...", + "emails": [], + "can_sign": false, + "can_encrypt_comms": true, + "can_encrypt_storage": true, + "can_certify": false, + "created_at": "2016-03-24T11:31:04-06:00", + "expires_at": null, + "revoked": false + } + ], + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "primary_key_id": { + "type": "integer" + }, + "key_id": { + "type": "string" + }, + "public_key": { + "type": "string" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "verified": { + "type": "boolean" + } + } + } + }, + "subkeys": { + "type": "array", + "items": {} + }, + "can_sign": { + "type": "boolean" + }, + "can_encrypt_comms": { + "type": "boolean" + }, + "can_encrypt_storage": { + "type": "boolean" + }, + "can_certify": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "expires_at": { + "type": "string", + "nullable": true + }, + "raw_key": { + "type": "string", + "nullable": true + }, + "revoked": { + "type": "boolean" + } + } + } + }, + "can_sign": { + "type": "boolean", + "example": true + }, + "can_encrypt_comms": { + "type": "boolean" + }, + "can_encrypt_storage": { + "type": "boolean" + }, + "can_certify": { + "type": "boolean", + "example": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-03-24T11:31:04-06:00" + }, + "expires_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "revoked": { + "type": "boolean", + "example": true + }, + "raw_key": { + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "primary_key_id", + "key_id", + "raw_key", + "public_key", + "created_at", + "expires_at", + "can_sign", + "can_encrypt_comms", + "can_encrypt_storage", + "can_certify", + "emails", + "subkeys", + "revoked" + ] + }, + "key": { + "title": "Key", + "description": "Key", + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "verified": { + "type": "boolean" + }, + "read_only": { + "type": "boolean" + }, + "last_used": { + "nullable": true, + "type": "string", + "format": "date-time" + } + }, + "required": [ + "key", + "id", + "url", + "title", + "created_at", + "verified", + "read_only" + ] + }, + "marketplace-account": { + "title": "Marketplace Account", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "login": { + "type": "string" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "organization_billing_email": { + "type": "string", + "nullable": true, + "format": "email" + } + }, + "required": [ + "url", + "id", + "type", + "login" + ] + }, + "user-marketplace-purchase": { + "title": "User Marketplace Purchase", + "description": "User Marketplace Purchase", + "type": "object", + "properties": { + "billing_cycle": { + "type": "string", + "example": "monthly" + }, + "next_billing_date": { + "type": "string", + "format": "date-time", + "example": "2017-11-11T00:00:00Z", + "nullable": true + }, + "unit_count": { + "type": "integer", + "nullable": true + }, + "on_free_trial": { + "type": "boolean", + "example": true + }, + "free_trial_ends_on": { + "type": "string", + "format": "date-time", + "example": "2017-11-11T00:00:00Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-11-02T01:12:12Z", + "nullable": true + }, + "account": { + "$ref": "#/components/schemas/marketplace-account" + }, + "plan": { + "$ref": "#/components/schemas/marketplace-listing-plan" + } + }, + "required": [ + "billing_cycle", + "next_billing_date", + "unit_count", + "updated_at", + "on_free_trial", + "free_trial_ends_on", + "account", + "plan" + ] + }, + "social-account": { + "title": "Social account", + "description": "Social media account", + "type": "object", + "properties": { + "provider": { + "type": "string", + "example": "linkedin" + }, + "url": { + "type": "string", + "example": "https://www.linkedin.com/company/github/" + } + }, + "required": [ + "provider", + "url" + ] + }, + "ssh-signing-key": { + "title": "SSH Signing Key", + "description": "A public SSH key used to sign Git commits", + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "title": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "key", + "id", + "title", + "created_at" + ] + }, + "starred-repository": { + "title": "Starred Repository", + "description": "Starred Repository", + "type": "object", + "properties": { + "starred_at": { + "type": "string", + "format": "date-time" + }, + "repo": { + "$ref": "#/components/schemas/repository" + } + }, + "required": [ + "starred_at", + "repo" + ] + }, + "hovercard": { + "title": "Hovercard", + "description": "Hovercard", + "type": "object", + "properties": { + "contexts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "octicon": { + "type": "string" + } + }, + "required": [ + "message", + "octicon" + ] + } + } + }, + "required": [ + "contexts" + ] + }, + "key-simple": { + "title": "Key Simple", + "description": "Key Simple", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "last_used": { + "nullable": true, + "type": "string", + "format": "date-time" + } + }, + "required": [ + "key", + "id" + ] + }, + "billing-premium-request-usage-report-user": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "user": { + "type": "string", + "description": "The unique identifier of the user." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "model": { + "type": "string", + "description": "The model for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "model": { + "type": "string", + "description": "Model name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "number", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "number", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "number", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "model", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "user", + "usageItems" + ] + }, + "billing-usage-report-user": { + "type": "object", + "properties": { + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Date of the usage line item." + }, + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the usage line item." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + }, + "repositoryName": { + "type": "string", + "description": "Name of the repository." + } + }, + "required": [ + "date", + "product", + "sku", + "quantity", + "unitType", + "pricePerUnit", + "grossAmount", + "discountAmount", + "netAmount" + ] + } + } + } + }, + "billing-usage-summary-report-user": { + "type": "object", + "properties": { + "timePeriod": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "description": "The year for the usage report." + }, + "month": { + "type": "integer", + "description": "The month for the usage report." + }, + "day": { + "type": "integer", + "description": "The day for the usage report." + } + }, + "required": [ + "year" + ] + }, + "user": { + "type": "string", + "description": "The unique identifier of the user." + }, + "repository": { + "type": "string", + "description": "The name of the repository for the usage report." + }, + "product": { + "type": "string", + "description": "The product for the usage report." + }, + "sku": { + "type": "string", + "description": "The SKU for the usage report." + }, + "usageItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product name." + }, + "sku": { + "type": "string", + "description": "SKU name." + }, + "unitType": { + "type": "string", + "description": "Unit type of the usage line item." + }, + "pricePerUnit": { + "type": "number", + "description": "Price per unit of the usage line item." + }, + "grossQuantity": { + "type": "number", + "description": "Gross quantity of the usage line item." + }, + "grossAmount": { + "type": "number", + "description": "Gross amount of the usage line item." + }, + "discountQuantity": { + "type": "number", + "description": "Discount quantity of the usage line item." + }, + "discountAmount": { + "type": "number", + "description": "Discount amount of the usage line item." + }, + "netQuantity": { + "type": "number", + "description": "Net quantity of the usage line item." + }, + "netAmount": { + "type": "number", + "description": "Net amount of the usage line item." + } + }, + "required": [ + "product", + "sku", + "unitType", + "pricePerUnit", + "grossQuantity", + "grossAmount", + "discountQuantity", + "discountAmount", + "netQuantity", + "netAmount" + ] + } + } + }, + "required": [ + "timePeriod", + "user", + "usageItems" + ] + }, + "enterprise-webhooks": { + "title": "Enterprise", + "description": "An enterprise on GitHub. Webhook payloads contain the `enterprise` property when the webhook is configured\non an enterprise account or an organization that's part of an enterprise account. For more information,\nsee \"[About enterprise accounts](https://docs.github.com/admin/overview/about-enterprise-accounts).\"", + "type": "object", + "properties": { + "description": { + "description": "A short description of the enterprise.", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/enterprises/octo-business" + }, + "website_url": { + "description": "The enterprise's website URL.", + "type": "string", + "nullable": true, + "format": "uri" + }, + "id": { + "description": "Unique identifier of the enterprise", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the enterprise.", + "type": "string", + "example": "Octo Business" + }, + "slug": { + "description": "The slug url identifier for the enterprise.", + "type": "string", + "example": "octo-business" + }, + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:14:43Z" + }, + "avatar_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "name", + "slug", + "html_url", + "created_at", + "updated_at", + "avatar_url" + ] + }, + "simple-installation": { + "title": "Simple Installation", + "description": "The GitHub App installation. Webhook payloads contain the `installation` property when the event is configured\nfor and sent to a GitHub App. For more information,\nsee \"[Using webhooks with GitHub Apps](https://docs.github.com/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps).\"", + "type": "object", + "properties": { + "id": { + "description": "The ID of the installation.", + "type": "integer", + "example": 1 + }, + "node_id": { + "description": "The global node ID of the installation.", + "type": "string", + "example": "MDQ6VXNlcjU4MzIzMQ==" + } + }, + "required": [ + "id", + "node_id" + ] + }, + "organization-simple-webhooks": { + "title": "Organization Simple", + "description": "A GitHub organization. Webhook payloads contain the `organization` property when the webhook is configured for an\norganization, or when the event occurs from activity in a repository owned by an organization.", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "github" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" + }, + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/issues" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/members{/member}" + }, + "public_members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/public_members{/member}" + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "description": { + "type": "string", + "example": "A great organization", + "nullable": true + } + }, + "required": [ + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description" + ] + }, + "repository-webhooks": { + "title": "Repository", + "description": "The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property\nwhen the event occurs from activity in a repository.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "organization": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "default": false, + "type": "boolean", + "example": true + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "template_repository": { + "nullable": true, + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + } + } + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "forks_url": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "language": { + "type": "string" + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "allow_auto_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_update_branch": { + "type": "boolean" + }, + "use_squash_pr_title_as_default": { + "type": "boolean" + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_update_branch": { + "description": "Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.", + "default": false, + "type": "boolean", + "example": false + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "default": false, + "deprecated": true + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + }, + "anonymous_access_enabled": { + "type": "boolean", + "description": "Whether anonymous git access is enabled for this repository" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + }, + "webhooks_rule": { + "title": "branch protection rule", + "description": "The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings.", + "type": "object", + "properties": { + "admin_enforced": { + "type": "boolean" + }, + "allow_deletions_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "allow_force_pushes_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "authorized_actor_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "authorized_actors_only": { + "type": "boolean" + }, + "authorized_dismissal_actors_only": { + "type": "boolean" + }, + "create_protected": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "dismiss_stale_reviews_on_push": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "ignore_approvals_from_contributors": { + "type": "boolean" + }, + "linear_history_requirement_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "lock_branch_enforcement_level": { + "description": "The enforcement level of the branch lock setting. `off` means the branch is not locked, `non_admins` means the branch is read-only for non_admins, and `everyone` means the branch is read-only for everyone.", + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "lock_allows_fork_sync": { + "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow users to pull changes from upstream when the branch is locked. This setting is only applicable for forks.", + "type": "boolean" + }, + "merge_queue_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "name": { + "type": "string" + }, + "pull_request_reviews_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "repository_id": { + "type": "integer" + }, + "require_code_owner_review": { + "type": "boolean" + }, + "require_last_push_approval": { + "description": "Whether the most recent push must be approved by someone other than the person who pushed it", + "type": "boolean" + }, + "required_approving_review_count": { + "type": "integer" + }, + "required_conversation_resolution_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "required_deployments_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "required_status_checks": { + "type": "array", + "items": { + "type": "string" + } + }, + "required_status_checks_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "signature_requirement_enforcement_level": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + }, + "strict_required_status_checks_policy": { + "type": "boolean" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "repository_id", + "name", + "created_at", + "updated_at", + "pull_request_reviews_enforcement_level", + "required_approving_review_count", + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "authorized_dismissal_actors_only", + "ignore_approvals_from_contributors", + "required_status_checks", + "required_status_checks_enforcement_level", + "strict_required_status_checks_policy", + "signature_requirement_enforcement_level", + "linear_history_requirement_enforcement_level", + "lock_branch_enforcement_level", + "admin_enforced", + "allow_force_pushes_enforcement_level", + "allow_deletions_enforcement_level", + "merge_queue_enforcement_level", + "required_deployments_enforcement_level", + "required_conversation_resolution_level", + "authorized_actors_only", + "authorized_actor_names" + ] + }, + "simple-check-suite": { + "description": "A suite of checks performed on the code of a given code change", + "type": "object", + "properties": { + "after": { + "example": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "type": "string", + "nullable": true + }, + "app": { + "$ref": "#/components/schemas/integration" + }, + "before": { + "example": "146e867f55c26428e5f9fade55a9bbf5e95a7912", + "type": "string", + "nullable": true + }, + "conclusion": { + "example": "neutral", + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required", + "stale", + "startup_failure" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "head_branch": { + "example": "master", + "type": "string", + "nullable": true + }, + "head_sha": { + "description": "The SHA of the head commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "id": { + "example": 5, + "type": "integer" + }, + "node_id": { + "example": "MDEwOkNoZWNrU3VpdGU1", + "type": "string" + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-minimal" + } + }, + "repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "status": { + "example": "completed", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "pending", + "waiting" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "example": "https://api.github.com/repos/github/hello-world/check-suites/5", + "type": "string" + } + } + }, + "check-run-with-simple-check-suite": { + "title": "CheckRun", + "description": "A check performed on the code of a given code change", + "type": "object", + "properties": { + "app": { + "$ref": "#/components/schemas/integration" + }, + "check_suite": { + "$ref": "#/components/schemas/simple-check-suite" + }, + "completed_at": { + "example": "2018-05-04T01:14:52Z", + "type": "string", + "nullable": true, + "format": "date-time" + }, + "conclusion": { + "example": "neutral", + "type": "string", + "nullable": true, + "enum": [ + "waiting", + "pending", + "startup_failure", + "stale", + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ] + }, + "deployment": { + "$ref": "#/components/schemas/deployment-simple" + }, + "details_url": { + "example": "https://example.com", + "type": "string" + }, + "external_id": { + "example": "42", + "type": "string" + }, + "head_sha": { + "description": "The SHA of the commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "html_url": { + "example": "https://github.com/github/hello-world/runs/4", + "type": "string" + }, + "id": { + "description": "The id of the check.", + "example": 21, + "type": "integer" + }, + "name": { + "description": "The name of the check.", + "example": "test-coverage", + "type": "string" + }, + "node_id": { + "example": "MDg6Q2hlY2tSdW40", + "type": "string" + }, + "output": { + "type": "object", + "properties": { + "annotations_count": { + "type": "integer" + }, + "annotations_url": { + "type": "string", + "format": "uri" + }, + "summary": { + "type": "string", + "nullable": true + }, + "text": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + } + }, + "required": [ + "title", + "summary", + "text", + "annotations_count", + "annotations_url" + ] + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-minimal" + } + }, + "started_at": { + "example": "2018-05-04T01:14:52Z", + "type": "string", + "format": "date-time" + }, + "status": { + "description": "The phase of the lifecycle that the check is currently in.", + "example": "queued", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "pending" + ] + }, + "url": { + "example": "https://api.github.com/repos/github/hello-world/check-runs/4", + "type": "string" + } + }, + "required": [ + "id", + "node_id", + "head_sha", + "name", + "url", + "html_url", + "details_url", + "status", + "conclusion", + "started_at", + "completed_at", + "external_id", + "check_suite", + "output", + "app", + "pull_requests" + ] + }, + "webhooks_code_scanning_commit_oid": { + "description": "The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty.", + "type": "string" + }, + "webhooks_code_scanning_ref": { + "description": "The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty.", + "type": "string" + }, + "webhooks_deploy_pusher_type": { + "description": "The pusher type for the event. Can be either `user` or a deploy key.", + "type": "string" + }, + "webhooks_ref_0": { + "description": "The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) resource.", + "type": "string" + }, + "webhooks_deploy_key": { + "description": "The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) resource.", + "type": "object", + "properties": { + "added_by": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "last_used": { + "type": "string", + "nullable": true + }, + "read_only": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "verified": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + } + }, + "required": [ + "id", + "key", + "url", + "title", + "verified", + "created_at", + "read_only" + ] + }, + "webhooks_workflow": { + "title": "Workflow", + "type": "object", + "nullable": true, + "properties": { + "badge_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "state": { + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "badge_url", + "created_at", + "html_url", + "id", + "name", + "node_id", + "path", + "state", + "updated_at", + "url" + ] + }, + "webhooks_approver": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "webhooks_reviewers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "reviewer": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + }, + "type": { + "type": "string", + "enum": [ + "User" + ] + } + } + } + }, + "webhooks_workflow_job_run": { + "type": "object", + "properties": { + "conclusion": { + "nullable": true + }, + "created_at": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "nullable": true + }, + "status": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "status", + "conclusion", + "html_url", + "created_at", + "updated_at", + "environment" + ] + }, + "webhooks_user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "webhooks_answer": { + "type": "object", + "properties": { + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "type": "string" + }, + "child_comment_count": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "discussion_id": { + "type": "integer" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "parent_id": { + "nullable": true + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "id", + "node_id", + "html_url", + "parent_id", + "child_comment_count", + "repository_url", + "discussion_id", + "author_association", + "user", + "created_at", + "updated_at", + "body" + ] + }, + "webhooks_comment": { + "type": "object", + "properties": { + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "type": "string" + }, + "child_comment_count": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "discussion_id": { + "type": "integer" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "parent_id": { + "type": "integer", + "nullable": true + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "id", + "node_id", + "html_url", + "parent_id", + "child_comment_count", + "repository_url", + "discussion_id", + "author_association", + "user", + "created_at", + "updated_at", + "body", + "reactions" + ] + }, + "webhooks_label": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + }, + "webhooks_repositories": { + "description": "An array of repository objects that the installation can access.", + "type": "array", + "items": { + "type": "object", + "properties": { + "full_name": { + "type": "string" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private" + ] + } + }, + "webhooks_repositories_added": { + "description": "An array of repository objects, which were added to the installation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "full_name": { + "type": "string" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private" + ] + } + }, + "webhooks_repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": [ + "all", + "selected" + ] + }, + "webhooks_issue_comment": { + "title": "issue comment", + "description": "The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself.", + "type": "object", + "properties": { + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue comment", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the issue comment", + "type": "integer", + "format": "int64" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/integration" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue comment", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "pin": { + "$ref": "#/components/schemas/nullable-pinned-issue-comment" + } + }, + "required": [ + "url", + "html_url", + "issue_url", + "id", + "node_id", + "user", + "created_at", + "updated_at", + "author_association", + "performed_via_github_app", + "body", + "reactions" + ] + }, + "webhooks_changes": { + "description": "The changes to the comment.", + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the body.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "webhooks_issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "reminder", + "pull_request_review_thread" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + "webhooks_milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "webhooks_issue_2": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + "webhooks_user_mannequin": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "webhooks_marketplace_purchase": { + "title": "Marketplace Purchase", + "type": "object", + "required": [ + "account", + "billing_cycle", + "free_trial_ends_on", + "next_billing_date", + "on_free_trial", + "plan", + "unit_count" + ], + "properties": { + "account": { + "type": "object", + "required": [ + "type", + "id", + "node_id", + "login", + "organization_billing_email" + ], + "properties": { + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organization_billing_email": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string" + } + } + }, + "billing_cycle": { + "type": "string" + }, + "free_trial_ends_on": { + "type": "string", + "nullable": true + }, + "next_billing_date": { + "type": "string", + "nullable": true + }, + "on_free_trial": { + "type": "boolean" + }, + "plan": { + "type": "object", + "required": [ + "id", + "name", + "description", + "monthly_price_in_cents", + "yearly_price_in_cents", + "price_model", + "has_free_trial", + "unit_name", + "bullets" + ], + "properties": { + "bullets": { + "type": "array", + "items": { + "type": "string", + "nullable": true + } + }, + "description": { + "type": "string" + }, + "has_free_trial": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "monthly_price_in_cents": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "price_model": { + "type": "string", + "enum": [ + "FREE", + "FLAT_RATE", + "PER_UNIT" + ] + }, + "unit_name": { + "type": "string", + "nullable": true + }, + "yearly_price_in_cents": { + "type": "integer" + } + } + }, + "unit_count": { + "type": "integer" + } + } + }, + "webhooks_previous_marketplace_purchase": { + "title": "Marketplace Purchase", + "type": "object", + "properties": { + "account": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organization_billing_email": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id", + "node_id", + "login", + "organization_billing_email" + ] + }, + "billing_cycle": { + "type": "string" + }, + "free_trial_ends_on": { + "nullable": true + }, + "next_billing_date": { + "type": "string", + "nullable": true + }, + "on_free_trial": { + "type": "boolean" + }, + "plan": { + "type": "object", + "properties": { + "bullets": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "has_free_trial": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "monthly_price_in_cents": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "price_model": { + "type": "string", + "enum": [ + "FREE", + "FLAT_RATE", + "PER_UNIT" + ] + }, + "unit_name": { + "type": "string", + "nullable": true + }, + "yearly_price_in_cents": { + "type": "integer" + } + }, + "required": [ + "id", + "name", + "description", + "monthly_price_in_cents", + "yearly_price_in_cents", + "price_model", + "has_free_trial", + "unit_name", + "bullets" + ] + }, + "unit_count": { + "type": "integer" + } + }, + "required": [ + "account", + "billing_cycle", + "unit_count", + "on_free_trial", + "free_trial_ends_on", + "plan" + ] + }, + "webhooks_team": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "notification_setting": { + "description": "Whether team members will receive notifications when their team is @mentioned", + "type": "string", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "notification_setting", + "url", + "html_url", + "members_url", + "repositories_url", + "permission", + "type" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "notification_setting": { + "type": "string", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "name", + "id" + ] + }, + "merge-group": { + "type": "object", + "title": "Merge Group", + "description": "A group of pull requests that the merge queue has grouped together to be merged.", + "properties": { + "head_sha": { + "description": "The SHA of the merge group.", + "type": "string" + }, + "head_ref": { + "description": "The full ref of the merge group.", + "type": "string" + }, + "base_sha": { + "description": "The SHA of the merge group's parent commit.", + "type": "string" + }, + "base_ref": { + "description": "The full ref of the branch the merge group will be merged into.", + "type": "string" + }, + "head_commit": { + "$ref": "#/components/schemas/simple-commit" + } + }, + "required": [ + "head_sha", + "head_ref", + "base_sha", + "base_ref", + "head_commit" + ] + }, + "nullable-repository-webhooks": { + "title": "Repository", + "description": "The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property\nwhen the event occurs from activity in a repository.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "organization": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "default": false, + "type": "boolean", + "example": true + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "template_repository": { + "nullable": true, + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + } + } + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "forks_url": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "language": { + "type": "string" + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "allow_auto_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_update_branch": { + "type": "boolean" + }, + "use_squash_pr_title_as_default": { + "type": "boolean" + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_update_branch": { + "description": "Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.", + "default": false, + "type": "boolean", + "example": false + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "default": false, + "deprecated": true + }, + "squash_merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ], + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." + }, + "squash_merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ], + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." + }, + "merge_commit_title": { + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ], + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." + }, + "merge_commit_message": { + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ], + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + }, + "anonymous_access_enabled": { + "type": "boolean", + "description": "Whether anonymous git access is enabled for this repository" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ], + "nullable": true + }, + "webhooks_milestone_3": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "webhooks_membership": { + "title": "Membership", + "description": "The membership between the user and the organization. Not present when the action is `member_invited`.", + "type": "object", + "properties": { + "organization_url": { + "type": "string", + "format": "uri" + }, + "role": { + "type": "string" + }, + "direct_membership": { + "type": "boolean", + "description": "Whether the user has direct membership in the organization.", + "example": true + }, + "enterprise_teams_providing_indirect_membership": { + "type": "array", + "description": "The slugs of the enterprise teams providing the user with indirect membership in the organization.\nA limit of 100 enterprise team slugs is returned.", + "maxItems": 100, + "items": { + "type": "string" + }, + "example": [ + "ent:team-one", + "ent:team-two" + ] + }, + "state": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "state", + "role", + "organization_url", + "user" + ] + }, + "personal-access-token-request": { + "title": "Personal Access Token Request", + "description": "Details of a Personal Access Token Request.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Unique identifier of the request for access via fine-grained personal access token. Used as the `pat_request_id` parameter in the list and review API calls." + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "permissions_added": { + "type": "object", + "description": "New requested permissions, categorized by type of permission.", + "properties": { + "organization": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "repository": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "other": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "permissions_upgraded": { + "type": "object", + "description": "Requested permissions that elevate access for a previously approved request for access, categorized by type of permission.", + "properties": { + "organization": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "repository": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "other": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "permissions_result": { + "type": "object", + "description": "Permissions requested, categorized by type of permission. This field incorporates `permissions_added` and `permissions_upgraded`.", + "properties": { + "organization": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "repository": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "other": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "repository_selection": { + "type": "string", + "description": "Type of repository selection requested.", + "enum": [ + "none", + "all", + "subset" + ] + }, + "repository_count": { + "description": "The number of repositories the token is requesting access to. This field is only populated when `repository_selection` is `subset`.", + "type": "integer", + "nullable": true + }, + "repositories": { + "type": "array", + "description": "An array of repository objects the token is requesting access to. This field is only populated when `repository_selection` is `subset`.", + "items": { + "type": "object", + "properties": { + "full_name": { + "type": "string" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private" + ] + }, + "nullable": true + }, + "created_at": { + "type": "string", + "description": "Date and time when the request for access was created." + }, + "token_id": { + "type": "integer", + "description": "Unique identifier of the user's token. This field can also be found in audit log events and the organization's settings for their PAT grants." + }, + "token_name": { + "type": "string", + "description": "The name given to the user's token. This field can also be found in an organization's settings page for Active Tokens." + }, + "token_expired": { + "type": "boolean", + "description": "Whether the associated fine-grained personal access token has expired." + }, + "token_expires_at": { + "type": "string", + "description": "Date and time when the associated fine-grained personal access token expires.", + "nullable": true + }, + "token_last_used_at": { + "type": "string", + "description": "Date and time when the associated fine-grained personal access token was last used for authentication.", + "nullable": true + } + }, + "required": [ + "id", + "owner", + "permissions_added", + "permissions_upgraded", + "permissions_result", + "repository_selection", + "repository_count", + "repositories", + "created_at", + "token_id", + "token_name", + "token_expired", + "token_expires_at", + "token_last_used_at" + ] + }, + "webhooks_project_card": { + "title": "Project Card", + "type": "object", + "properties": { + "after_id": { + "type": "integer", + "nullable": true + }, + "archived": { + "description": "Whether or not the card is archived", + "type": "boolean" + }, + "column_id": { + "type": "integer" + }, + "column_url": { + "type": "string", + "format": "uri" + }, + "content_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "id": { + "description": "The project card's ID", + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "note": { + "type": "string", + "nullable": true + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "project_url", + "column_url", + "column_id", + "id", + "node_id", + "note", + "archived", + "creator", + "created_at", + "updated_at" + ] + }, + "webhooks_project": { + "title": "Project", + "type": "object", + "properties": { + "body": { + "description": "Body of the project", + "type": "string", + "nullable": true + }, + "columns_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "name": { + "description": "Name of the project", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "owner_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of the project; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "owner_url", + "url", + "html_url", + "columns_url", + "id", + "node_id", + "name", + "body", + "number", + "state", + "creator", + "created_at", + "updated_at" + ] + }, + "webhooks_project_column": { + "title": "Project Column", + "type": "object", + "properties": { + "after_id": { + "type": "integer", + "nullable": true + }, + "cards_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "description": "The unique identifier of the project column", + "type": "integer" + }, + "name": { + "description": "Name of the project column", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "project_url", + "cards_url", + "id", + "node_id", + "name", + "created_at", + "updated_at" + ] + }, + "webhooks_project_changes": { + "type": "object", + "properties": { + "archived_at": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "to": { + "type": "string", + "nullable": true, + "format": "date-time" + } + } + } + } + }, + "projects-v2-item": { + "title": "Projects v2 Item", + "description": "An item belonging to a project", + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "The unique identifier of the project item." + }, + "node_id": { + "type": "string", + "description": "The node ID of the project item." + }, + "project_node_id": { + "type": "string", + "description": "The node ID of the project that contains this item." + }, + "content_node_id": { + "type": "string", + "description": "The node ID of the content represented by this item." + }, + "content_type": { + "$ref": "#/components/schemas/projects-v2-item-content-type" + }, + "creator": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was last updated." + }, + "archived_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the item was archived." + } + }, + "required": [ + "id", + "content_node_id", + "content_type", + "created_at", + "updated_at", + "archived_at" + ] + }, + "projects-v2-single-select-option": { + "title": "Projects v2 Single Select Option", + "description": "An option for a single select field", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the option." + }, + "name": { + "type": "string", + "description": "The display name of the option." + }, + "color": { + "type": "string", + "nullable": true, + "description": "The color associated with the option." + }, + "description": { + "type": "string", + "nullable": true, + "description": "A short description of the option." + } + }, + "required": [ + "id", + "name" + ] + }, + "projects-v2-iteration-setting": { + "title": "Projects v2 Iteration Setting", + "description": "An iteration setting for an iteration field", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the iteration setting." + }, + "title": { + "type": "string", + "description": "The iteration title." + }, + "title_html": { + "type": "string", + "description": "The iteration title, rendered as HTML." + }, + "duration": { + "type": "number", + "nullable": true, + "description": "The duration of the iteration in days." + }, + "start_date": { + "type": "string", + "nullable": true, + "description": "The start date of the iteration." + }, + "completed": { + "type": "boolean", + "description": "Whether the iteration has been completed." + } + }, + "required": [ + "id", + "title" + ] + }, + "projects-v2-status-update": { + "title": "Projects v2 Status Update", + "description": "An status update belonging to a project", + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "The unique identifier of the status update." + }, + "node_id": { + "type": "string", + "description": "The node ID of the status update." + }, + "project_node_id": { + "type": "string", + "description": "The node ID of the project that this status update belongs to." + }, + "creator": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the status update was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the status update was last updated." + }, + "status": { + "type": "string", + "enum": [ + "INACTIVE", + "ON_TRACK", + "AT_RISK", + "OFF_TRACK", + "COMPLETE" + ], + "nullable": true, + "description": "The current status." + }, + "start_date": { + "type": "string", + "format": "date", + "example": "2022-04-28", + "description": "The start date of the period covered by the update." + }, + "target_date": { + "type": "string", + "format": "date", + "example": "2022-04-28", + "description": "The target date associated with the update." + }, + "body": { + "description": "Body of the status update", + "example": "The project is off to a great start!", + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "node_id", + "created_at", + "updated_at" + ] + }, + "webhooks_number": { + "description": "The pull request number.", + "type": "integer" + }, + "pull-request-webhook": { + "allOf": [ + { + "$ref": "#/components/schemas/pull-request" + }, + { + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_update_branch": { + "description": "Whether to allow updating the pull request's branch.", + "type": "boolean" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged.", + "type": "boolean", + "default": false + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., \"Merge pull request #123 from branch-name\").", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.**", + "type": "boolean", + "default": false + } + } + } + ] + }, + "webhooks_pull_request_5": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "webhooks_review_comment": { + "title": "Pull Request Review Comment", + "description": "The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself.", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "pull_request" + ] + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "The text of the comment.", + "type": "string" + }, + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "diff_hunk": { + "description": "The diff of the line that the comment refers to.", + "type": "string" + }, + "html_url": { + "description": "HTML URL for the pull request review comment.", + "type": "string", + "format": "uri" + }, + "id": { + "description": "The ID of the pull request review comment.", + "type": "integer" + }, + "in_reply_to_id": { + "description": "The comment ID to reply to.", + "type": "integer" + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer", + "nullable": true + }, + "node_id": { + "description": "The node ID of the pull request review comment.", + "type": "string" + }, + "original_commit_id": { + "description": "The SHA of the original commit to which the comment applies.", + "type": "string" + }, + "original_line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer" + }, + "original_position": { + "description": "The index of the original line in the diff to which the comment applies.", + "type": "integer" + }, + "original_start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "path": { + "description": "The relative path of the file to which the comment applies.", + "type": "string" + }, + "position": { + "description": "The line index in the diff to which the comment applies.", + "type": "integer", + "nullable": true + }, + "pull_request_review_id": { + "description": "The ID of the pull request review to which the comment belongs.", + "type": "integer", + "nullable": true + }, + "pull_request_url": { + "description": "URL for the pull request that the review comment belongs to.", + "type": "string", + "format": "uri" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "enum": [ + "LEFT", + "RIGHT" + ] + }, + "start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "start_side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "nullable": true, + "enum": [ + "LEFT", + "RIGHT", + null + ], + "default": "RIGHT" + }, + "subject_type": { + "description": "The level at which the comment is targeted, can be a diff line or a file.", + "type": "string", + "enum": [ + "line", + "file" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the pull request review comment", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "pull_request_review_id", + "id", + "node_id", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "body", + "created_at", + "updated_at", + "html_url", + "pull_request_url", + "author_association", + "_links", + "start_line", + "original_start_line", + "original_line", + "line", + "start_side", + "side", + "reactions" + ] + }, + "webhooks_review": { + "description": "The review that was affected.", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "html", + "pull_request" + ] + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "The text of the review.", + "type": "string", + "nullable": true + }, + "commit_id": { + "description": "A commit SHA for the review.", + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the review", + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "pull_request_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string" + }, + "submitted_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "id", + "node_id", + "user", + "body", + "commit_id", + "submitted_at", + "state", + "html_url", + "pull_request_url", + "author_association", + "_links" + ] + }, + "webhooks_nullable_string": { + "type": "string", + "nullable": true + }, + "webhooks_release": { + "title": "Release", + "description": "The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object.", + "type": "object", + "properties": { + "assets": { + "type": "array", + "items": { + "title": "Release Asset", + "description": "Data related to a release.", + "type": "object", + "properties": { + "browser_download_url": { + "type": "string", + "format": "uri" + }, + "content_type": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "download_count": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "label": { + "type": "string", + "nullable": true + }, + "name": { + "description": "The file name of the asset.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "digest": { + "type": "string", + "nullable": true + }, + "state": { + "description": "State of the release asset.", + "type": "string", + "enum": [ + "uploaded" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "uploader": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "browser_download_url", + "id", + "node_id", + "name", + "label", + "state", + "digest", + "content_type", + "size", + "download_count", + "created_at", + "updated_at" + ] + } + }, + "assets_url": { + "type": "string", + "format": "uri" + }, + "author": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "discussion_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Whether the release is a draft or published", + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "immutable": { + "description": "Whether or not the release is immutable.", + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "prerelease": { + "description": "Whether the release is identified as a prerelease or a full release.", + "type": "boolean" + }, + "published_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "tag_name": { + "description": "The name of the tag.", + "type": "string" + }, + "tarball_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "target_commitish": { + "description": "Specifies the commitish value that determines where the Git tag is created from.", + "type": "string" + }, + "upload_url": { + "type": "string", + "format": "uri-template" + }, + "url": { + "type": "string", + "format": "uri" + }, + "zipball_url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "url", + "assets_url", + "upload_url", + "html_url", + "id", + "node_id", + "tag_name", + "target_commitish", + "name", + "draft", + "author", + "prerelease", + "immutable", + "created_at", + "published_at", + "assets", + "tarball_url", + "updated_at", + "zipball_url", + "body" + ] + }, + "webhooks_release_1": { + "title": "Release", + "description": "The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object.", + "type": "object", + "required": [ + "assets", + "assets_url", + "author", + "body", + "created_at", + "draft", + "html_url", + "id", + "name", + "node_id", + "prerelease", + "immutable", + "published_at", + "tag_name", + "tarball_url", + "target_commitish", + "updated_at", + "upload_url", + "url", + "zipball_url" + ], + "properties": { + "assets": { + "type": "array", + "items": { + "title": "Release Asset", + "description": "Data related to a release.", + "type": "object", + "required": [ + "url", + "browser_download_url", + "id", + "node_id", + "name", + "label", + "state", + "content_type", + "size", + "digest", + "download_count", + "created_at", + "updated_at" + ], + "nullable": true, + "properties": { + "browser_download_url": { + "type": "string", + "format": "uri" + }, + "content_type": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "download_count": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "label": { + "type": "string", + "nullable": true + }, + "name": { + "description": "The file name of the asset.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "digest": { + "type": "string", + "nullable": true + }, + "state": { + "description": "State of the release asset.", + "type": "string", + "enum": [ + "uploaded" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "uploader": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + }, + "assets_url": { + "type": "string", + "format": "uri" + }, + "author": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "body": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "discussion_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Whether the release is a draft or published", + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "immutable": { + "description": "Whether or not the release is immutable.", + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "prerelease": { + "description": "Whether the release is identified as a prerelease or a full release.", + "type": "boolean" + }, + "published_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ], + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "tag_name": { + "description": "The name of the tag.", + "type": "string" + }, + "tarball_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "target_commitish": { + "description": "Specifies the commitish value that determines where the Git tag is created from.", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "upload_url": { + "type": "string", + "format": "uri-template" + }, + "url": { + "type": "string", + "format": "uri" + }, + "zipball_url": { + "type": "string", + "nullable": true, + "format": "uri" + } + } + }, + "webhooks_alert": { + "title": "Repository Vulnerability Alert Alert", + "description": "The security alert of the vulnerable dependency.", + "type": "object", + "required": [ + "affected_package_name", + "affected_range", + "created_at", + "external_identifier", + "external_reference", + "ghsa_id", + "id", + "node_id", + "number", + "severity", + "state" + ], + "properties": { + "affected_package_name": { + "type": "string" + }, + "affected_range": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "dismiss_reason": { + "type": "string" + }, + "dismissed_at": { + "type": "string" + }, + "dismisser": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "external_identifier": { + "type": "string" + }, + "external_reference": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "fix_reason": { + "type": "string" + }, + "fixed_at": { + "type": "string", + "format": "date-time" + }, + "fixed_in": { + "type": "string" + }, + "ghsa_id": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "severity": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "auto_dismissed", + "open" + ] + } + } + }, + "secret-scanning-alert-resolution-webhook": { + "type": "string", + "description": "The reason for resolving the alert.", + "nullable": true, + "enum": [ + "false_positive", + "wont_fix", + "revoked", + "used_in_tests", + "pattern_deleted", + "pattern_edited" + ] + }, + "secret-scanning-alert-webhook": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" + }, + "created_at": { + "$ref": "#/components/schemas/alert-created-at" + }, + "updated_at": { + "$ref": "#/components/schemas/nullable-alert-updated-at" + }, + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "locations_url": { + "type": "string", + "format": "uri", + "description": "The REST API URL of the code locations for this alert." + }, + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution-webhook" + }, + "resolved_at": { + "type": "string", + "format": "date-time", + "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "resolved_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "resolution_comment": { + "type": "string", + "description": "An optional comment to resolve an alert.", + "nullable": true + }, + "secret_type": { + "type": "string", + "description": "The type of secret that secret scanning detected." + }, + "secret_type_display_name": { + "type": "string", + "description": "User-friendly name for the detected secret, matching the `secret_type`.\nFor a list of built-in patterns, see \"[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"" + }, + "validity": { + "type": "string", + "description": "The token status as of the latest validity check.", + "enum": [ + "active", + "inactive", + "unknown" + ] + }, + "push_protection_bypassed": { + "type": "boolean", + "description": "Whether push protection was bypassed for the detected secret.", + "nullable": true + }, + "push_protection_bypassed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "push_protection_bypassed_at": { + "type": "string", + "format": "date-time", + "description": "The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "push_protection_bypass_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "push_protection_bypass_request_reviewer_comment": { + "type": "string", + "description": "An optional comment when reviewing a push protection bypass.", + "nullable": true + }, + "push_protection_bypass_request_comment": { + "type": "string", + "description": "An optional comment when requesting a push protection bypass.", + "nullable": true + }, + "push_protection_bypass_request_html_url": { + "type": "string", + "format": "uri", + "description": "The URL to a push protection bypass request.", + "nullable": true + }, + "publicly_leaked": { + "type": "boolean", + "description": "Whether the detected secret was publicly leaked.", + "nullable": true + }, + "multi_repo": { + "type": "boolean", + "description": "Whether the detected secret was found in multiple repositories in the same organization or business.", + "nullable": true + }, + "assigned_to": { + "$ref": "#/components/schemas/nullable-simple-user" + } + } + }, + "webhooks_security_advisory": { + "description": "The details of the security advisory, including summary, description, and severity.", + "type": "object", + "properties": { + "cvss": { + "type": "object", + "properties": { + "score": { + "type": "number" + }, + "vector_string": { + "type": "string", + "nullable": true + } + }, + "required": [ + "vector_string", + "score" + ] + }, + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" + }, + "cwes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cwe_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "cwe_id", + "name" + ] + } + }, + "description": { + "type": "string" + }, + "ghsa_id": { + "type": "string" + }, + "identifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "type" + ] + } + }, + "published_at": { + "type": "string" + }, + "references": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" + ] + } + }, + "severity": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "vulnerabilities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "first_patched_version": { + "type": "object", + "nullable": true, + "properties": { + "identifier": { + "type": "string" + } + }, + "required": [ + "identifier" + ] + }, + "package": { + "type": "object", + "properties": { + "ecosystem": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "ecosystem", + "name" + ] + }, + "severity": { + "type": "string" + }, + "vulnerable_version_range": { + "type": "string" + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ] + } + }, + "withdrawn_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "cvss", + "cwes", + "ghsa_id", + "summary", + "description", + "severity", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at", + "vulnerabilities" + ] + }, + "webhooks_sponsorship": { + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "maintainer": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "node_id": { + "type": "string" + }, + "privacy_level": { + "type": "string" + }, + "sponsor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "sponsorable": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "tier": { + "title": "Sponsorship Tier", + "description": "The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload.", + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "type": "string" + }, + "is_custom_ammount": { + "type": "boolean" + }, + "is_custom_amount": { + "type": "boolean" + }, + "is_one_time": { + "type": "boolean" + }, + "monthly_price_in_cents": { + "type": "integer" + }, + "monthly_price_in_dollars": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + } + }, + "required": [ + "node_id", + "created_at", + "description", + "monthly_price_in_cents", + "monthly_price_in_dollars", + "name", + "is_one_time" + ] + } + }, + "required": [ + "node_id", + "created_at", + "sponsorable", + "sponsor", + "privacy_level", + "tier" + ] + }, + "webhooks_effective_date": { + "description": "The `pending_cancellation` and `pending_tier_change` event types will include the date the cancellation or tier change will take effect.", + "type": "string" + }, + "webhooks_changes_8": { + "type": "object", + "properties": { + "tier": { + "type": "object", + "properties": { + "from": { + "title": "Sponsorship Tier", + "description": "The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload.", + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "type": "string" + }, + "is_custom_ammount": { + "type": "boolean" + }, + "is_custom_amount": { + "type": "boolean" + }, + "is_one_time": { + "type": "boolean" + }, + "monthly_price_in_cents": { + "type": "integer" + }, + "monthly_price_in_dollars": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + } + }, + "required": [ + "node_id", + "created_at", + "description", + "monthly_price_in_cents", + "monthly_price_in_dollars", + "name", + "is_one_time" + ] + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "tier" + ] + }, + "webhooks_team_1": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "notification_setting": { + "description": "Whether team members will receive notifications when their team is @mentioned", + "type": "string", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "notification_setting", + "url", + "html_url", + "members_url", + "repositories_url", + "permission", + "type" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "notification_setting": { + "description": "Whether team members will receive notifications when their team is @mentioned", + "type": "string", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + }, + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 + }, + "enterprise_id": { + "type": "integer", + "description": "Unique identifier of the enterprise to which this team belongs", + "example": 42 + } + }, + "required": [ + "name", + "id" + ] + }, + "webhook-branch-protection-configuration-disabled": { + "title": "branch protection configuration disabled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "disabled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-branch-protection-configuration-enabled": { + "title": "branch protection configuration enabled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "enabled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-branch-protection-rule-created": { + "title": "branch protection rule created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "rule": { + "$ref": "#/components/schemas/webhooks_rule" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "rule", + "repository", + "sender" + ] + }, + "webhook-branch-protection-rule-deleted": { + "title": "branch protection rule deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "rule": { + "$ref": "#/components/schemas/webhooks_rule" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "rule", + "repository", + "sender" + ] + }, + "webhook-branch-protection-rule-edited": { + "title": "branch protection rule edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "If the action was `edited`, the changes to the rule.", + "type": "object", + "properties": { + "admin_enforced": { + "type": "object", + "properties": { + "from": { + "type": "boolean", + "nullable": true + } + }, + "required": [ + "from" + ] + }, + "authorized_actor_names": { + "type": "object", + "properties": { + "from": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "from" + ] + }, + "authorized_actors_only": { + "type": "object", + "properties": { + "from": { + "type": "boolean", + "nullable": true + } + }, + "required": [ + "from" + ] + }, + "authorized_dismissal_actors_only": { + "type": "object", + "properties": { + "from": { + "type": "boolean", + "nullable": true + } + }, + "required": [ + "from" + ] + }, + "linear_history_requirement_enforcement_level": { + "type": "object", + "properties": { + "from": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + } + }, + "required": [ + "from" + ] + }, + "lock_branch_enforcement_level": { + "type": "object", + "properties": { + "from": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + } + }, + "required": [ + "from" + ] + }, + "lock_allows_fork_sync": { + "type": "object", + "properties": { + "from": { + "type": "boolean", + "nullable": true + } + }, + "required": [ + "from" + ] + }, + "pull_request_reviews_enforcement_level": { + "type": "object", + "properties": { + "from": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + } + }, + "required": [ + "from" + ] + }, + "require_last_push_approval": { + "type": "object", + "properties": { + "from": { + "type": "boolean", + "nullable": true + } + }, + "required": [ + "from" + ] + }, + "required_status_checks": { + "type": "object", + "properties": { + "from": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "from" + ] + }, + "required_status_checks_enforcement_level": { + "type": "object", + "properties": { + "from": { + "type": "string", + "enum": [ + "off", + "non_admins", + "everyone" + ] + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "rule": { + "$ref": "#/components/schemas/webhooks_rule" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "rule", + "repository", + "sender" + ] + }, + "webhook-check-run-completed": { + "title": "Check Run Completed Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "completed" + ] + }, + "check_run": { + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "check_run", + "repository", + "sender" + ] + }, + "webhook-check-run-completed-form-encoded": { + "title": "Check Run Completed Event", + "description": "The check_run.completed webhook encoded with URL encoding", + "type": "object", + "properties": { + "payload": { + "description": "A URL-encoded string of the check_run.completed JSON payload. The decoded payload is a JSON object.", + "type": "string" + } + }, + "required": [ + "payload" + ] + }, + "webhook-check-run-created": { + "title": "Check Run Created Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "check_run": { + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "check_run", + "repository", + "sender" + ] + }, + "webhook-check-run-created-form-encoded": { + "title": "Check Run Created Event", + "description": "The check_run.created webhook encoded with URL encoding", + "type": "object", + "properties": { + "payload": { + "description": "A URL-encoded string of the check_run.created JSON payload. The decoded payload is a JSON object.", + "type": "string" + } + }, + "required": [ + "payload" + ] + }, + "webhook-check-run-requested-action": { + "title": "Check Run Requested Action Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "requested_action" + ] + }, + "check_run": { + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requested_action": { + "description": "The action requested by the user.", + "type": "object", + "properties": { + "identifier": { + "description": "The integrator reference of the action requested by the user.", + "type": "string" + } + } + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "check_run", + "repository", + "sender" + ] + }, + "webhook-check-run-requested-action-form-encoded": { + "title": "Check Run Requested Action Event", + "description": "The check_run.requested_action webhook encoded with URL encoding", + "type": "object", + "properties": { + "payload": { + "description": "A URL-encoded string of the check_run.requested_action JSON payload. The decoded payload is a JSON object.", + "type": "string" + } + }, + "required": [ + "payload" + ] + }, + "webhook-check-run-rerequested": { + "title": "Check Run Re-Requested Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "rerequested" + ] + }, + "check_run": { + "$ref": "#/components/schemas/check-run-with-simple-check-suite" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "check_run", + "repository", + "sender" + ] + }, + "webhook-check-run-rerequested-form-encoded": { + "title": "Check Run Re-Requested Event", + "description": "The check_run.rerequested webhook encoded with URL encoding", + "type": "object", + "properties": { + "payload": { + "description": "A URL-encoded string of the check_run.rerequested JSON payload. The decoded payload is a JSON object.", + "type": "string" + } + }, + "required": [ + "payload" + ] + }, + "webhook-check-suite-completed": { + "title": "check_suite completed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "completed" + ] + }, + "check_suite": { + "description": "The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite).", + "type": "object", + "properties": { + "after": { + "type": "string", + "nullable": true + }, + "app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "merge_group", + "pull_request_review_thread", + "workflow_job", + "merge_queue_entry", + "security_and_analysis", + "projects_v2_item", + "secret_scanning_alert_location" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "client_id": { + "description": "The client ID of the GitHub app", + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "before": { + "type": "string", + "nullable": true + }, + "check_runs_url": { + "type": "string", + "format": "uri" + }, + "conclusion": { + "description": "The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has `completed`.", + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null, + "skipped", + "startup_failure" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "head_branch": { + "description": "The head branch name the changes are on.", + "type": "string", + "nullable": true + }, + "head_commit": { + "title": "SimpleCommit", + "type": "object", + "properties": { + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "tree_id": { + "type": "string" + } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ] + }, + "head_sha": { + "description": "The SHA of the head commit that is being checked.", + "type": "string" + }, + "id": { + "type": "integer" + }, + "latest_check_runs_count": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "pull_requests": { + "description": "An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty.", + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "rerequestable": { + "type": "boolean" + }, + "runs_rerequestable": { + "type": "boolean" + }, + "status": { + "description": "The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`.", + "type": "string", + "nullable": true, + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + null, + "pending" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL that points to the check suite API resource.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "head_branch", + "head_sha", + "status", + "conclusion", + "url", + "before", + "after", + "pull_requests", + "app", + "created_at", + "updated_at", + "latest_check_runs_count", + "check_runs_url", + "head_commit" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "check_suite", + "repository", + "sender" + ] + }, + "webhook-check-suite-requested": { + "title": "check_suite requested event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "requested" + ] + }, + "check_suite": { + "description": "The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite).", + "type": "object", + "properties": { + "after": { + "type": "string", + "nullable": true + }, + "app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "pull_request_review_thread", + "workflow_job", + "merge_queue_entry", + "security_and_analysis", + "secret_scanning_alert_location", + "projects_v2_item", + "merge_group", + "repository_import" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "client_id": { + "description": "Client ID of the GitHub app", + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "artifact_metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "attestations": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "copilot_requests": { + "type": "string", + "enum": [ + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "merge_queues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "models": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "before": { + "type": "string", + "nullable": true + }, + "check_runs_url": { + "type": "string", + "format": "uri" + }, + "conclusion": { + "description": "The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed.", + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null, + "skipped" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "head_branch": { + "description": "The head branch name the changes are on.", + "type": "string", + "nullable": true + }, + "head_commit": { + "title": "SimpleCommit", + "type": "object", + "properties": { + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "tree_id": { + "type": "string" + } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ] + }, + "head_sha": { + "description": "The SHA of the head commit that is being checked.", + "type": "string" + }, + "id": { + "type": "integer" + }, + "latest_check_runs_count": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "pull_requests": { + "description": "An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty.", + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "rerequestable": { + "type": "boolean" + }, + "runs_rerequestable": { + "type": "boolean" + }, + "status": { + "description": "The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`.", + "type": "string", + "nullable": true, + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + null + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL that points to the check suite API resource.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "head_branch", + "head_sha", + "status", + "conclusion", + "url", + "before", + "after", + "pull_requests", + "app", + "created_at", + "updated_at", + "latest_check_runs_count", + "check_runs_url", + "head_commit" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "check_suite", + "repository", + "sender" + ] + }, + "webhook-check-suite-rerequested": { + "title": "check_suite rerequested event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "rerequested" + ] + }, + "check_suite": { + "description": "The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite).", + "type": "object", + "properties": { + "after": { + "type": "string", + "nullable": true + }, + "app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "pull_request_review_thread", + "merge_queue_entry", + "workflow_job" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "client_id": { + "description": "The Client ID for the GitHub app", + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "artifact_metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "attestations": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "copilot_requests": { + "type": "string", + "enum": [ + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "merge_queues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "models": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "before": { + "type": "string", + "nullable": true + }, + "check_runs_url": { + "type": "string", + "format": "uri" + }, + "conclusion": { + "description": "The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed.", + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "head_branch": { + "description": "The head branch name the changes are on.", + "type": "string", + "nullable": true + }, + "head_commit": { + "title": "SimpleCommit", + "type": "object", + "properties": { + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "tree_id": { + "type": "string" + } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ] + }, + "head_sha": { + "description": "The SHA of the head commit that is being checked.", + "type": "string" + }, + "id": { + "type": "integer" + }, + "latest_check_runs_count": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "pull_requests": { + "description": "An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty.", + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "rerequestable": { + "type": "boolean" + }, + "runs_rerequestable": { + "type": "boolean" + }, + "status": { + "description": "The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`.", + "type": "string", + "nullable": true, + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + null + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL that points to the check suite API resource.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "head_branch", + "head_sha", + "status", + "conclusion", + "url", + "before", + "after", + "pull_requests", + "app", + "created_at", + "updated_at", + "latest_check_runs_count", + "check_runs_url", + "head_commit" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "check_suite", + "repository", + "sender" + ] + }, + "webhook-code-scanning-alert-appeared-in-branch": { + "title": "code_scanning_alert appeared_in_branch event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "appeared_in_branch" + ] + }, + "alert": { + "description": "The code scanning alert involved in the event.", + "type": "object", + "properties": { + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "created_at": { + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.`", + "type": "string", + "format": "date-time" + }, + "dismissed_at": { + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "type": "string", + "nullable": true, + "format": "date-time" + }, + "dismissed_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "dismissed_reason": { + "description": "The reason for dismissing or closing the alert.", + "type": "string", + "nullable": true, + "enum": [ + "false positive", + "won't fix", + "used in tests", + null + ] + }, + "fixed_at": { + "description": "The time that the alert was fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "html_url": { + "description": "The GitHub URL of the alert resource.", + "type": "string", + "format": "uri" + }, + "most_recent_instance": { + "title": "Alert Instance", + "type": "object", + "nullable": true, + "properties": { + "analysis_key": { + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.", + "type": "string" + }, + "category": { + "description": "Identifies the configuration under which the analysis was executed.", + "type": "string" + }, + "classifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commit_sha": { + "type": "string" + }, + "environment": { + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.", + "type": "string" + }, + "location": { + "type": "object", + "properties": { + "end_column": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "start_column": { + "type": "integer" + }, + "start_line": { + "type": "integer" + } + } + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "ref": { + "description": "The full Git reference, formatted as `refs/heads/`.", + "type": "string" + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + } + }, + "required": [ + "ref", + "analysis_key", + "environment", + "state" + ] + }, + "number": { + "description": "The code scanning alert number.", + "type": "integer" + }, + "rule": { + "type": "object", + "properties": { + "description": { + "description": "A short description of the rule used to detect the alert.", + "type": "string" + }, + "id": { + "description": "A unique identifier for the rule used to detect the alert.", + "type": "string" + }, + "severity": { + "description": "The severity of the alert.", + "type": "string", + "nullable": true, + "enum": [ + "none", + "note", + "warning", + "error", + null + ] + } + }, + "required": [ + "id", + "severity", + "description" + ] + }, + "state": { + "description": "State of a code scanning alert. Events for alerts found outside the default branch will return a `null` value until they are dismissed or fixed.", + "nullable": true, + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + }, + "tool": { + "type": "object", + "properties": { + "name": { + "description": "The name of the tool used to generate the code scanning analysis alert.", + "type": "string" + }, + "version": { + "description": "The version of the tool used to detect the alert.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "version" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool" + ] + }, + "commit_oid": { + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "ref": { + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "ref", + "commit_oid", + "repository", + "sender" + ] + }, + "webhook-code-scanning-alert-closed-by-user": { + "title": "code_scanning_alert closed_by_user event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "closed_by_user" + ] + }, + "alert": { + "description": "The code scanning alert involved in the event.", + "type": "object", + "properties": { + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "created_at": { + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.`", + "type": "string", + "format": "date-time" + }, + "dismissed_at": { + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "type": "string", + "format": "date-time" + }, + "dismissed_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "dismissed_reason": { + "description": "The reason for dismissing or closing the alert.", + "type": "string", + "nullable": true, + "enum": [ + "false positive", + "won't fix", + "used in tests", + null + ] + }, + "fixed_at": { + "description": "The time that the alert was fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "html_url": { + "description": "The GitHub URL of the alert resource.", + "type": "string", + "format": "uri" + }, + "most_recent_instance": { + "title": "Alert Instance", + "type": "object", + "nullable": true, + "properties": { + "analysis_key": { + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.", + "type": "string" + }, + "category": { + "description": "Identifies the configuration under which the analysis was executed.", + "type": "string" + }, + "classifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commit_sha": { + "type": "string" + }, + "environment": { + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.", + "type": "string" + }, + "location": { + "type": "object", + "properties": { + "end_column": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "start_column": { + "type": "integer" + }, + "start_line": { + "type": "integer" + } + } + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "ref": { + "description": "The full Git reference, formatted as `refs/heads/`.", + "type": "string" + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + } + }, + "required": [ + "ref", + "analysis_key", + "environment", + "state" + ] + }, + "number": { + "description": "The code scanning alert number.", + "type": "integer" + }, + "rule": { + "type": "object", + "properties": { + "description": { + "description": "A short description of the rule used to detect the alert.", + "type": "string" + }, + "full_description": { + "type": "string" + }, + "help": { + "type": "string", + "nullable": true + }, + "help_uri": { + "description": "A link to the documentation for the rule used to detect the alert.", + "type": "string", + "nullable": true + }, + "id": { + "description": "A unique identifier for the rule used to detect the alert.", + "type": "string" + }, + "name": { + "type": "string" + }, + "severity": { + "description": "The severity of the alert.", + "type": "string", + "nullable": true, + "enum": [ + "none", + "note", + "warning", + "error", + null + ] + }, + "tags": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "severity", + "description" + ] + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "dismissed", + "fixed" + ] + }, + "tool": { + "type": "object", + "properties": { + "guid": { + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the tool used to generate the code scanning analysis alert.", + "type": "string" + }, + "version": { + "description": "The version of the tool used to detect the alert.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "version" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "dismissal_approved_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool" + ] + }, + "commit_oid": { + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "ref": { + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "ref", + "commit_oid", + "repository", + "sender" + ] + }, + "webhook-code-scanning-alert-created": { + "title": "code_scanning_alert created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "alert": { + "description": "The code scanning alert involved in the event.", + "type": "object", + "properties": { + "created_at": { + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.`", + "type": "string", + "nullable": true, + "format": "date-time" + }, + "dismissed_at": { + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "dismissed_by": { + "nullable": true + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "dismissed_reason": { + "description": "The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`.", + "nullable": true + }, + "fixed_at": { + "description": "The time that the alert was fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "html_url": { + "description": "The GitHub URL of the alert resource.", + "type": "string", + "format": "uri" + }, + "instances_url": { + "type": "string" + }, + "most_recent_instance": { + "title": "Alert Instance", + "type": "object", + "nullable": true, + "properties": { + "analysis_key": { + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.", + "type": "string" + }, + "category": { + "description": "Identifies the configuration under which the analysis was executed.", + "type": "string" + }, + "classifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commit_sha": { + "type": "string" + }, + "environment": { + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.", + "type": "string" + }, + "location": { + "type": "object", + "properties": { + "end_column": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "start_column": { + "type": "integer" + }, + "start_line": { + "type": "integer" + } + } + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "ref": { + "description": "The full Git reference, formatted as `refs/heads/`.", + "type": "string" + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + } + }, + "required": [ + "ref", + "analysis_key", + "environment", + "state" + ] + }, + "number": { + "description": "The code scanning alert number.", + "type": "integer" + }, + "rule": { + "type": "object", + "properties": { + "description": { + "description": "A short description of the rule used to detect the alert.", + "type": "string" + }, + "full_description": { + "type": "string" + }, + "help": { + "type": "string", + "nullable": true + }, + "help_uri": { + "description": "A link to the documentation for the rule used to detect the alert.", + "type": "string", + "nullable": true + }, + "id": { + "description": "A unique identifier for the rule used to detect the alert.", + "type": "string" + }, + "name": { + "type": "string" + }, + "severity": { + "description": "The severity of the alert.", + "type": "string", + "nullable": true, + "enum": [ + "none", + "note", + "warning", + "error", + null + ] + }, + "tags": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "severity", + "description" + ] + }, + "state": { + "description": "State of a code scanning alert. Events for alerts found outside the default branch will return a `null` value until they are dismissed or fixed.", + "type": "string", + "nullable": true, + "enum": [ + "open", + "dismissed" + ] + }, + "tool": { + "type": "object", + "nullable": true, + "properties": { + "guid": { + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the tool used to generate the code scanning analysis alert.", + "type": "string" + }, + "version": { + "description": "The version of the tool used to detect the alert.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "version" + ] + }, + "updated_at": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri" + }, + "dismissal_approved_by": { + "nullable": true + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool" + ] + }, + "commit_oid": { + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "ref": { + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "ref", + "commit_oid", + "repository", + "sender" + ] + }, + "webhook-code-scanning-alert-fixed": { + "title": "code_scanning_alert fixed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "fixed" + ] + }, + "alert": { + "description": "The code scanning alert involved in the event.", + "type": "object", + "properties": { + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "created_at": { + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.`", + "type": "string", + "format": "date-time" + }, + "dismissed_at": { + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "type": "string", + "nullable": true, + "format": "date-time" + }, + "dismissed_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "dismissed_reason": { + "description": "The reason for dismissing or closing the alert.", + "type": "string", + "nullable": true, + "enum": [ + "false positive", + "won't fix", + "used in tests", + null + ] + }, + "fixed_at": { + "description": "The time that the alert was fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "html_url": { + "description": "The GitHub URL of the alert resource.", + "type": "string", + "format": "uri" + }, + "instances_url": { + "type": "string", + "format": "uri" + }, + "most_recent_instance": { + "title": "Alert Instance", + "type": "object", + "nullable": true, + "properties": { + "analysis_key": { + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.", + "type": "string" + }, + "category": { + "description": "Identifies the configuration under which the analysis was executed.", + "type": "string" + }, + "classifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commit_sha": { + "type": "string" + }, + "environment": { + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.", + "type": "string" + }, + "location": { + "type": "object", + "properties": { + "end_column": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "start_column": { + "type": "integer" + }, + "start_line": { + "type": "integer" + } + } + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "ref": { + "description": "The full Git reference, formatted as `refs/heads/`.", + "type": "string" + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + } + }, + "required": [ + "ref", + "analysis_key", + "environment", + "state" + ] + }, + "number": { + "description": "The code scanning alert number.", + "type": "integer" + }, + "rule": { + "type": "object", + "properties": { + "description": { + "description": "A short description of the rule used to detect the alert.", + "type": "string" + }, + "full_description": { + "type": "string" + }, + "help": { + "type": "string", + "nullable": true + }, + "help_uri": { + "description": "A link to the documentation for the rule used to detect the alert.", + "type": "string", + "nullable": true + }, + "id": { + "description": "A unique identifier for the rule used to detect the alert.", + "type": "string" + }, + "name": { + "type": "string" + }, + "severity": { + "description": "The severity of the alert.", + "type": "string", + "nullable": true, + "enum": [ + "none", + "note", + "warning", + "error", + null + ] + }, + "tags": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "severity", + "description" + ] + }, + "state": { + "description": "State of a code scanning alert. Events for alerts found outside the default branch will return a `null` value until they are dismissed or fixed.", + "nullable": true, + "type": "string", + "enum": [ + "fixed" + ] + }, + "tool": { + "type": "object", + "properties": { + "guid": { + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the tool used to generate the code scanning analysis alert.", + "type": "string" + }, + "version": { + "description": "The version of the tool used to detect the alert.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "version" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool" + ] + }, + "commit_oid": { + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "ref": { + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "ref", + "commit_oid", + "repository", + "sender" + ] + }, + "webhook-code-scanning-alert-reopened": { + "title": "code_scanning_alert reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "alert": { + "description": "The code scanning alert involved in the event.", + "type": "object", + "properties": { + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "created_at": { + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.`", + "type": "string", + "format": "date-time" + }, + "dismissed_at": { + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "type": "string", + "nullable": true + }, + "dismissed_by": { + "type": "object", + "nullable": true + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "dismissed_reason": { + "description": "The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`.", + "type": "string", + "nullable": true + }, + "fixed_at": { + "description": "The time that the alert was fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "html_url": { + "description": "The GitHub URL of the alert resource.", + "type": "string", + "format": "uri" + }, + "instances_url": { + "type": "string" + }, + "most_recent_instance": { + "title": "Alert Instance", + "type": "object", + "nullable": true, + "properties": { + "analysis_key": { + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.", + "type": "string" + }, + "category": { + "description": "Identifies the configuration under which the analysis was executed.", + "type": "string" + }, + "classifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commit_sha": { + "type": "string" + }, + "environment": { + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.", + "type": "string" + }, + "location": { + "type": "object", + "properties": { + "end_column": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "start_column": { + "type": "integer" + }, + "start_line": { + "type": "integer" + } + } + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "ref": { + "description": "The full Git reference, formatted as `refs/heads/`.", + "type": "string" + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + } + }, + "required": [ + "ref", + "analysis_key", + "environment", + "state" + ] + }, + "number": { + "description": "The code scanning alert number.", + "type": "integer" + }, + "rule": { + "type": "object", + "properties": { + "description": { + "description": "A short description of the rule used to detect the alert.", + "type": "string" + }, + "full_description": { + "type": "string" + }, + "help": { + "type": "string", + "nullable": true + }, + "help_uri": { + "description": "A link to the documentation for the rule used to detect the alert.", + "type": "string", + "nullable": true + }, + "id": { + "description": "A unique identifier for the rule used to detect the alert.", + "type": "string" + }, + "name": { + "type": "string" + }, + "severity": { + "description": "The severity of the alert.", + "type": "string", + "nullable": true, + "enum": [ + "none", + "note", + "warning", + "error", + null + ] + }, + "tags": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "severity", + "description" + ] + }, + "state": { + "description": "State of a code scanning alert. Events for alerts found outside the default branch will return a `null` value until they are dismissed or fixed.", + "nullable": true, + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + }, + "tool": { + "type": "object", + "properties": { + "guid": { + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the tool used to generate the code scanning analysis alert.", + "type": "string" + }, + "version": { + "description": "The version of the tool used to detect the alert.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "version" + ] + }, + "updated_at": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri" + }, + "dismissal_approved_by": { + "nullable": true + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool" + ] + }, + "commit_oid": { + "description": "The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty.", + "type": "string", + "nullable": true + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "ref": { + "description": "The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty.", + "type": "string", + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "ref", + "commit_oid", + "repository", + "sender" + ] + }, + "webhook-code-scanning-alert-reopened-by-user": { + "title": "code_scanning_alert reopened_by_user event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened_by_user" + ] + }, + "alert": { + "description": "The code scanning alert involved in the event.", + "type": "object", + "properties": { + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "created_at": { + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.`", + "type": "string", + "format": "date-time" + }, + "dismissed_at": { + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "dismissed_by": { + "nullable": true + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "dismissed_reason": { + "description": "The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`.", + "nullable": true + }, + "fixed_at": { + "description": "The time that the alert was fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "html_url": { + "description": "The GitHub URL of the alert resource.", + "type": "string", + "format": "uri" + }, + "most_recent_instance": { + "title": "Alert Instance", + "type": "object", + "nullable": true, + "properties": { + "analysis_key": { + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.", + "type": "string" + }, + "category": { + "description": "Identifies the configuration under which the analysis was executed.", + "type": "string" + }, + "classifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commit_sha": { + "type": "string" + }, + "environment": { + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.", + "type": "string" + }, + "location": { + "type": "object", + "properties": { + "end_column": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "start_column": { + "type": "integer" + }, + "start_line": { + "type": "integer" + } + } + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "ref": { + "description": "The full Git reference, formatted as `refs/heads/`.", + "type": "string" + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + } + }, + "required": [ + "ref", + "analysis_key", + "environment", + "state" + ] + }, + "number": { + "description": "The code scanning alert number.", + "type": "integer" + }, + "rule": { + "type": "object", + "properties": { + "description": { + "description": "A short description of the rule used to detect the alert.", + "type": "string" + }, + "id": { + "description": "A unique identifier for the rule used to detect the alert.", + "type": "string" + }, + "severity": { + "description": "The severity of the alert.", + "type": "string", + "nullable": true, + "enum": [ + "none", + "note", + "warning", + "error", + null + ] + } + }, + "required": [ + "id", + "severity", + "description" + ] + }, + "state": { + "description": "State of a code scanning alert. Events for alerts found outside the default branch will return a `null` value until they are dismissed or fixed.", + "nullable": true, + "type": "string", + "enum": [ + "open", + "fixed" + ] + }, + "tool": { + "type": "object", + "properties": { + "name": { + "description": "The name of the tool used to generate the code scanning analysis alert.", + "type": "string" + }, + "version": { + "description": "The version of the tool used to detect the alert.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "version" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool" + ] + }, + "commit_oid": { + "$ref": "#/components/schemas/webhooks_code_scanning_commit_oid" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "ref": { + "$ref": "#/components/schemas/webhooks_code_scanning_ref" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "ref", + "commit_oid", + "repository", + "sender" + ] + }, + "webhook-code-scanning-alert-updated-assignment": { + "title": "code_scanning_alert updated_assignment event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "updated_assignment" + ] + }, + "alert": { + "description": "The code scanning alert involved in the event.", + "type": "object", + "properties": { + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "created_at": { + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.`", + "type": "string", + "format": "date-time" + }, + "dismissed_at": { + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "type": "string", + "nullable": true, + "format": "date-time" + }, + "dismissed_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + }, + "dismissed_reason": { + "description": "The reason for dismissing or closing the alert.", + "type": "string", + "nullable": true, + "enum": [ + "false positive", + "won't fix", + "used in tests", + null + ] + }, + "fixed_at": { + "description": "The time that the alert was fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "html_url": { + "description": "The GitHub URL of the alert resource.", + "type": "string", + "format": "uri" + }, + "most_recent_instance": { + "title": "Alert Instance", + "type": "object", + "nullable": true, + "properties": { + "analysis_key": { + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.", + "type": "string" + }, + "category": { + "description": "Identifies the configuration under which the analysis was executed.", + "type": "string" + }, + "classifications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commit_sha": { + "type": "string" + }, + "environment": { + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.", + "type": "string" + }, + "location": { + "type": "object", + "properties": { + "end_column": { + "type": "integer" + }, + "end_line": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "start_column": { + "type": "integer" + }, + "start_line": { + "type": "integer" + } + } + }, + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } + }, + "ref": { + "description": "The full Git reference, formatted as `refs/heads/`.", + "type": "string" + }, + "state": { + "description": "State of a code scanning alert.", + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + } + }, + "required": [ + "ref", + "analysis_key", + "environment", + "state" + ] + }, + "number": { + "description": "The code scanning alert number.", + "type": "integer" + }, + "rule": { + "type": "object", + "properties": { + "description": { + "description": "A short description of the rule used to detect the alert.", + "type": "string" + }, + "id": { + "description": "A unique identifier for the rule used to detect the alert.", + "type": "string" + }, + "severity": { + "description": "The severity of the alert.", + "type": "string", + "nullable": true, + "enum": [ + "none", + "note", + "warning", + "error", + null + ] + } + }, + "required": [ + "id", + "severity", + "description" + ] + }, + "state": { + "description": "State of a code scanning alert. Events for alerts found outside the default branch will return a `null` value until they are dismissed or fixed.", + "nullable": true, + "type": "string", + "enum": [ + "open", + "dismissed", + "fixed" + ] + }, + "tool": { + "type": "object", + "properties": { + "name": { + "description": "The name of the tool used to generate the code scanning analysis alert.", + "type": "string" + }, + "version": { + "description": "The version of the tool used to detect the alert.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "version" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "number", + "created_at", + "url", + "html_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-commit-comment-created": { + "title": "commit_comment created event", + "type": "object", + "properties": { + "action": { + "description": "The action performed. Can be `created`.", + "type": "string", + "enum": [ + "created" + ] + }, + "comment": { + "description": "The [commit comment](${externalDocsUpapp/api/description/components/schemas/webhooks/issue-comment-created.yamlrl}/rest/commits/comments#get-a-commit-comment) resource.", + "type": "object", + "properties": { + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "The text of the comment.", + "type": "string" + }, + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "type": "string" + }, + "created_at": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "The ID of the commit comment.", + "type": "integer" + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer", + "nullable": true + }, + "node_id": { + "description": "The node ID of the commit comment.", + "type": "string" + }, + "path": { + "description": "The relative path of the file to which the comment applies.", + "type": "string", + "nullable": true + }, + "position": { + "description": "The line index in the diff to which the comment applies.", + "type": "integer", + "nullable": true + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "html_url", + "id", + "node_id", + "user", + "position", + "line", + "path", + "commit_id", + "created_at", + "updated_at", + "author_association", + "body" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "comment", + "repository", + "sender" + ] + }, + "webhook-create": { + "title": "create event", + "type": "object", + "properties": { + "description": { + "description": "The repository's current description.", + "type": "string", + "nullable": true + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "master_branch": { + "description": "The name of the repository's default branch (usually `main`).", + "type": "string" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pusher_type": { + "$ref": "#/components/schemas/webhooks_deploy_pusher_type" + }, + "ref": { + "$ref": "#/components/schemas/webhooks_ref_0" + }, + "ref_type": { + "description": "The type of Git ref object created in the repository.", + "type": "string", + "enum": [ + "tag", + "branch" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "ref", + "ref_type", + "master_branch", + "description", + "pusher_type", + "repository", + "sender" + ] + }, + "webhook-custom-property-created": { + "title": "custom property created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "definition": { + "$ref": "#/components/schemas/custom-property" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "definition" + ] + }, + "webhook-custom-property-deleted": { + "title": "custom property deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "definition": { + "type": "object", + "properties": { + "property_name": { + "type": "string", + "description": "The name of the property that was deleted." + } + }, + "required": [ + "property_name" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "definition" + ] + }, + "webhook-custom-property-promoted-to-enterprise": { + "title": "custom property promoted to business event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "promote_to_enterprise" + ] + }, + "definition": { + "$ref": "#/components/schemas/custom-property" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "definition" + ] + }, + "webhook-custom-property-updated": { + "title": "custom property updated event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "updated" + ] + }, + "definition": { + "$ref": "#/components/schemas/custom-property" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "definition" + ] + }, + "webhook-custom-property-values-updated": { + "title": "Custom property values updated event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "updated" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "new_property_values": { + "type": "array", + "description": "The new custom property values for the repository.", + "items": { + "$ref": "#/components/schemas/custom-property-value" + } + }, + "old_property_values": { + "type": "array", + "description": "The old custom property values for the repository.", + "items": { + "$ref": "#/components/schemas/custom-property-value" + } + } + }, + "required": [ + "action", + "repository", + "organization", + "new_property_values", + "old_property_values" + ] + }, + "webhook-delete": { + "title": "delete event", + "type": "object", + "properties": { + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pusher_type": { + "$ref": "#/components/schemas/webhooks_deploy_pusher_type" + }, + "ref": { + "$ref": "#/components/schemas/webhooks_ref_0" + }, + "ref_type": { + "description": "The type of Git ref object deleted in the repository.", + "type": "string", + "enum": [ + "tag", + "branch" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "ref", + "ref_type", + "pusher_type", + "repository", + "sender" + ] + }, + "webhook-dependabot-alert-auto-dismissed": { + "title": "Dependabot alert auto-dismissed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "auto_dismissed" + ] + }, + "alert": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-dependabot-alert-auto-reopened": { + "title": "Dependabot alert auto-reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "auto_reopened" + ] + }, + "alert": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-dependabot-alert-created": { + "title": "Dependabot alert created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "alert": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-dependabot-alert-dismissed": { + "title": "Dependabot alert dismissed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "dismissed" + ] + }, + "alert": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-dependabot-alert-fixed": { + "title": "Dependabot alert fixed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "fixed" + ] + }, + "alert": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-dependabot-alert-reintroduced": { + "title": "Dependabot alert reintroduced event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reintroduced" + ] + }, + "alert": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-dependabot-alert-reopened": { + "title": "Dependabot alert reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "alert": { + "$ref": "#/components/schemas/dependabot-alert" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-deploy-key-created": { + "title": "deploy_key created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "key": { + "$ref": "#/components/schemas/webhooks_deploy_key" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "key", + "repository", + "sender" + ] + }, + "webhook-deploy-key-deleted": { + "title": "deploy_key deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "key": { + "$ref": "#/components/schemas/webhooks_deploy_key" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "key", + "repository", + "sender" + ] + }, + "webhook-deployment-created": { + "title": "deployment created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "deployment": { + "title": "Deployment", + "description": "The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments).", + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "environment": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "original_environment": { + "type": "string" + }, + "payload": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "workflow_job", + "pull_request_review_thread", + "merge_queue_entry", + "secret_scanning_alert_location", + "merge_group" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "production_environment": { + "type": "boolean" + }, + "ref": { + "type": "string" + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sha": { + "type": "string" + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "task": { + "type": "string" + }, + "transient_environment": { + "type": "boolean" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "node_id", + "sha", + "ref", + "task", + "payload", + "original_environment", + "environment", + "description", + "creator", + "created_at", + "updated_at", + "statuses_url", + "repository_url" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow": { + "$ref": "#/components/schemas/webhooks_workflow" + }, + "workflow_run": { + "title": "Deployment Workflow Run", + "type": "object", + "nullable": true, + "properties": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "artifacts_url": { + "type": "string" + }, + "cancel_url": { + "type": "string" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { + "type": "string" + }, + "check_suite_url": { + "type": "string" + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "display_title": { + "type": "string" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string" + }, + "head_commit": { + "nullable": true + }, + "head_repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "jobs_url": { + "type": "string" + }, + "logs_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "previous_attempt_url": { + "nullable": true + }, + "pull_requests": { + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + } + }, + "required": [ + "path", + "sha" + ] + } + }, + "repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "rerun_url": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_number": { + "type": "integer" + }, + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "waiting", + "pending" + ] + }, + "triggering_actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "workflow_id": { + "type": "integer" + }, + "workflow_url": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "node_id", + "head_branch", + "head_sha", + "run_number", + "event", + "status", + "conclusion", + "workflow_id", + "check_suite_id", + "check_suite_node_id", + "url", + "html_url", + "path", + "pull_requests", + "created_at", + "updated_at", + "actor", + "run_attempt", + "run_started_at", + "display_title" + ] + } + }, + "required": [ + "action", + "deployment", + "workflow", + "workflow_run", + "repository", + "sender" + ] + }, + "webhook-deployment-protection-rule-requested": { + "title": "deployment protection rule requested event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "requested" + ] + }, + "environment": { + "description": "The name of the environment that has the deployment protection rule.", + "type": "string" + }, + "event": { + "description": "The event that triggered the deployment protection rule.", + "type": "string" + }, + "deployment_callback_url": { + "description": "The URL to review the deployment protection rule.", + "type": "string", + "format": "uri" + }, + "deployment": { + "$ref": "#/components/schemas/deployment" + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request" + } + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + } + }, + "webhook-deployment-review-approved": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "approved" + ] + }, + "approver": { + "$ref": "#/components/schemas/webhooks_approver" + }, + "comment": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "reviewers": { + "$ref": "#/components/schemas/webhooks_reviewers" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "since": { + "type": "string" + }, + "workflow_job_run": { + "$ref": "#/components/schemas/webhooks_workflow_job_run" + }, + "workflow_job_runs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conclusion": { + "nullable": true + }, + "created_at": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + }, + "workflow_run": { + "title": "Deployment Workflow Run", + "type": "object", + "nullable": true, + "properties": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "artifacts_url": { + "type": "string" + }, + "cancel_url": { + "type": "string" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { + "type": "string" + }, + "check_suite_url": { + "type": "string" + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "display_title": { + "type": "string" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string" + }, + "head_commit": { + "type": "object", + "nullable": true + }, + "head_repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "jobs_url": { + "type": "string" + }, + "logs_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "previous_attempt_url": { + "type": "string", + "nullable": true + }, + "pull_requests": { + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + } + }, + "required": [ + "path", + "sha" + ] + } + }, + "repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "rerun_url": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_number": { + "type": "integer" + }, + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "waiting", + "pending" + ] + }, + "triggering_actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "workflow_id": { + "type": "integer" + }, + "workflow_url": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "node_id", + "head_branch", + "head_sha", + "run_number", + "event", + "status", + "conclusion", + "workflow_id", + "check_suite_id", + "check_suite_node_id", + "url", + "html_url", + "path", + "pull_requests", + "created_at", + "updated_at", + "actor", + "triggering_actor", + "run_attempt", + "run_started_at", + "display_title" + ] + } + }, + "required": [ + "action", + "workflow_run", + "since", + "repository", + "organization", + "sender" + ] + }, + "webhook-deployment-review-rejected": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "rejected" + ] + }, + "approver": { + "$ref": "#/components/schemas/webhooks_approver" + }, + "comment": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "reviewers": { + "$ref": "#/components/schemas/webhooks_reviewers" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "since": { + "type": "string" + }, + "workflow_job_run": { + "$ref": "#/components/schemas/webhooks_workflow_job_run" + }, + "workflow_job_runs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conclusion": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + }, + "workflow_run": { + "title": "Deployment Workflow Run", + "type": "object", + "nullable": true, + "properties": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "artifacts_url": { + "type": "string" + }, + "cancel_url": { + "type": "string" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { + "type": "string" + }, + "check_suite_url": { + "type": "string" + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string" + }, + "head_commit": { + "type": "object", + "nullable": true + }, + "head_repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "jobs_url": { + "type": "string" + }, + "logs_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "previous_attempt_url": { + "type": "string", + "nullable": true + }, + "pull_requests": { + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + } + }, + "required": [ + "path", + "sha" + ] + } + }, + "repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "rerun_url": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_number": { + "type": "integer" + }, + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "waiting" + ] + }, + "triggering_actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "workflow_id": { + "type": "integer" + }, + "workflow_url": { + "type": "string" + }, + "display_title": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "node_id", + "head_branch", + "head_sha", + "run_number", + "event", + "status", + "conclusion", + "workflow_id", + "check_suite_id", + "check_suite_node_id", + "url", + "html_url", + "path", + "pull_requests", + "created_at", + "updated_at", + "actor", + "triggering_actor", + "run_attempt", + "run_started_at", + "display_title" + ] + } + }, + "required": [ + "action", + "workflow_run", + "since", + "repository", + "organization", + "sender" + ] + }, + "webhook-deployment-review-requested": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "requested" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "environment": { + "type": "string" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requestor": { + "$ref": "#/components/schemas/webhooks_user" + }, + "reviewers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "reviewer": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "type": { + "type": "string", + "enum": [ + "User", + "Team" + ] + } + } + } + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "since": { + "type": "string" + }, + "workflow_job_run": { + "type": "object", + "properties": { + "conclusion": { + "nullable": true + }, + "created_at": { + "type": "string" + }, + "environment": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "status", + "conclusion", + "html_url", + "created_at", + "updated_at", + "environment" + ] + }, + "workflow_run": { + "title": "Deployment Workflow Run", + "type": "object", + "nullable": true, + "properties": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "artifacts_url": { + "type": "string" + }, + "cancel_url": { + "type": "string" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { + "type": "string" + }, + "check_suite_url": { + "type": "string" + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string" + }, + "head_commit": { + "type": "object", + "nullable": true + }, + "head_repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "jobs_url": { + "type": "string" + }, + "logs_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "previous_attempt_url": { + "type": "string", + "nullable": true + }, + "pull_requests": { + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + } + }, + "required": [ + "path", + "sha" + ] + } + }, + "repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "rerun_url": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_number": { + "type": "integer" + }, + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "waiting", + "pending" + ] + }, + "triggering_actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "workflow_id": { + "type": "integer" + }, + "workflow_url": { + "type": "string" + }, + "display_title": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "node_id", + "head_branch", + "head_sha", + "run_number", + "event", + "status", + "conclusion", + "workflow_id", + "check_suite_id", + "check_suite_node_id", + "url", + "html_url", + "path", + "pull_requests", + "created_at", + "updated_at", + "actor", + "triggering_actor", + "run_attempt", + "run_started_at", + "display_title" + ] + } + }, + "required": [ + "action", + "workflow_run", + "since", + "workflow_job_run", + "environment", + "reviewers", + "requestor", + "repository", + "organization", + "sender" + ] + }, + "webhook-deployment-status-created": { + "title": "deployment_status created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "check_run": { + "type": "object", + "nullable": true, + "properties": { + "completed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "conclusion": { + "description": "The result of the completed check run. This value will be `null` until the check run has completed.", + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + "skipped", + null + ] + }, + "details_url": { + "type": "string", + "format": "uri" + }, + "external_id": { + "type": "string" + }, + "head_sha": { + "description": "The SHA of the commit that is being checked.", + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "The id of the check.", + "type": "integer" + }, + "name": { + "description": "The name of the check run.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "description": "The current status of the check run. Can be `queued`, `in_progress`, or `completed`.", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting", + "pending" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "name", + "node_id", + "head_sha", + "external_id", + "url", + "html_url", + "details_url", + "status", + "conclusion", + "started_at", + "completed_at" + ] + }, + "deployment": { + "title": "Deployment", + "description": "The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments).", + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "environment": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "original_environment": { + "type": "string" + }, + "payload": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ], + "nullable": true + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "merge_queue_entry", + "workflow_job", + "pull_request_review_thread", + "secret_scanning_alert_location", + "merge_group" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "production_environment": { + "type": "boolean" + }, + "ref": { + "type": "string" + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sha": { + "type": "string" + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "task": { + "type": "string" + }, + "transient_environment": { + "type": "boolean" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "node_id", + "sha", + "ref", + "task", + "payload", + "original_environment", + "environment", + "description", + "creator", + "created_at", + "updated_at", + "statuses_url", + "repository_url" + ] + }, + "deployment_status": { + "description": "The [deployment status](https://docs.github.com/rest/deployments/statuses#list-deployment-statuses).", + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "deployment_url": { + "type": "string", + "format": "uri" + }, + "description": { + "description": "The optional human-readable description added to the status.", + "type": "string" + }, + "environment": { + "type": "string" + }, + "environment_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "log_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "pull_request_review_thread", + "merge_queue_entry", + "workflow_job", + "merge_group", + "secret_scanning_alert_location" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "The new state. Can be `pending`, `success`, `failure`, or `error`.", + "type": "string" + }, + "target_url": { + "description": "The optional link added to the status.", + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "node_id", + "state", + "creator", + "description", + "environment", + "target_url", + "created_at", + "updated_at", + "deployment_url", + "repository_url" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow": { + "$ref": "#/components/schemas/webhooks_workflow" + }, + "workflow_run": { + "title": "Deployment Workflow Run", + "type": "object", + "nullable": true, + "properties": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "artifacts_url": { + "type": "string" + }, + "cancel_url": { + "type": "string" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { + "type": "string" + }, + "check_suite_url": { + "type": "string" + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null, + "startup_failure" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "display_title": { + "type": "string" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string" + }, + "head_commit": { + "nullable": true + }, + "head_repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "jobs_url": { + "type": "string" + }, + "logs_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "previous_attempt_url": { + "nullable": true + }, + "pull_requests": { + "type": "array", + "items": { + "title": "Check Run Pull Request", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" + ] + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + } + }, + "required": [ + "path", + "sha" + ] + } + }, + "repository": { + "type": "object", + "properties": { + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "nullable": true + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "rerun_url": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_number": { + "type": "integer" + }, + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "waiting", + "pending" + ] + }, + "triggering_actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "workflow_id": { + "type": "integer" + }, + "workflow_url": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "node_id", + "head_branch", + "head_sha", + "run_number", + "event", + "status", + "conclusion", + "workflow_id", + "check_suite_id", + "check_suite_node_id", + "url", + "html_url", + "path", + "pull_requests", + "created_at", + "updated_at", + "actor", + "triggering_actor", + "run_attempt", + "run_started_at", + "display_title" + ] + } + }, + "required": [ + "action", + "deployment_status", + "deployment", + "repository", + "sender" + ] + }, + "webhook-discussion-answered": { + "title": "discussion answered event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "answered" + ] + }, + "answer": { + "$ref": "#/components/schemas/webhooks_answer" + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "answer", + "repository", + "sender" + ] + }, + "webhook-discussion-category-changed": { + "title": "discussion category changed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "category_changed" + ] + }, + "changes": { + "type": "object", + "properties": { + "category": { + "type": "object", + "properties": { + "from": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" + }, + "emoji": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "is_answerable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "repository_id": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "repository_id", + "emoji", + "name", + "description", + "created_at", + "updated_at", + "slug", + "is_answerable" + ] + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "category" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-closed": { + "title": "discussion closed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "closed" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-comment-created": { + "title": "discussion_comment created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "comment": { + "$ref": "#/components/schemas/webhooks_comment" + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "comment", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-comment-deleted": { + "title": "discussion_comment deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "comment": { + "$ref": "#/components/schemas/webhooks_comment" + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "comment", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-comment-edited": { + "title": "discussion_comment edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "body" + ] + }, + "comment": { + "$ref": "#/components/schemas/webhooks_comment" + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "comment", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-created": { + "title": "discussion created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-deleted": { + "title": "discussion deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-edited": { + "title": "discussion edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "title": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-labeled": { + "title": "discussion labeled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "labeled" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "label", + "repository", + "sender" + ] + }, + "webhook-discussion-locked": { + "title": "discussion locked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "locked" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-pinned": { + "title": "discussion pinned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "pinned" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-reopened": { + "title": "discussion reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-transferred": { + "title": "discussion transferred event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "transferred" + ] + }, + "changes": { + "type": "object", + "properties": { + "new_discussion": { + "$ref": "#/components/schemas/discussion" + }, + "new_repository": { + "$ref": "#/components/schemas/repository-webhooks" + } + }, + "required": [ + "new_discussion", + "new_repository" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-unanswered": { + "title": "discussion unanswered event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unanswered" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "old_answer": { + "$ref": "#/components/schemas/webhooks_answer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "old_answer", + "repository" + ] + }, + "webhook-discussion-unlabeled": { + "title": "discussion unlabeled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unlabeled" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "label", + "repository", + "sender" + ] + }, + "webhook-discussion-unlocked": { + "title": "discussion unlocked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unlocked" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-discussion-unpinned": { + "title": "discussion unpinned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unpinned" + ] + }, + "discussion": { + "$ref": "#/components/schemas/discussion" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "discussion", + "repository", + "sender" + ] + }, + "webhook-fork": { + "title": "fork event", + "description": "A user forks a repository.", + "type": "object", + "properties": { + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "forkee": { + "description": "The created [`repository`](https://docs.github.com/rest/repos/repos#get-a-repository) resource.", + "allOf": [ + { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + { + "type": "object", + "properties": { + "allow_forking": { + "type": "boolean" + }, + "archive_url": { + "type": "string" + }, + "archived": { + "type": "boolean" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "default_branch": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "type": "boolean" + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "fork": { + "type": "boolean", + "enum": [ + true + ] + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_url": { + "type": "string" + }, + "has_downloads": { + "type": "boolean" + }, + "has_issues": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "language": { + "nullable": true + }, + "languages_url": { + "type": "string" + }, + "license": { + "type": "object", + "nullable": true + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "mirror_url": { + "nullable": true + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "private": { + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string" + }, + "pushed_at": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "svn_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "topics": { + "type": "array", + "items": { + "nullable": true + } + }, + "trees_url": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + } + } + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "forkee", + "repository", + "sender" + ] + }, + "webhook-github-app-authorization-revoked": { + "title": "github_app_authorization revoked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "revoked" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "sender" + ] + }, + "webhook-gollum": { + "title": "gollum event", + "type": "object", + "properties": { + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pages": { + "description": "The pages that were updated.", + "type": "array", + "items": { + "type": "object", + "properties": { + "action": { + "description": "The action that was performed on the page. Can be `created` or `edited`.", + "type": "string", + "enum": [ + "created", + "edited" + ] + }, + "html_url": { + "description": "Points to the HTML wiki page.", + "type": "string", + "format": "uri" + }, + "page_name": { + "description": "The name of the page.", + "type": "string" + }, + "sha": { + "description": "The latest commit SHA of the page.", + "type": "string" + }, + "summary": { + "type": "string", + "nullable": true + }, + "title": { + "description": "The current page title.", + "type": "string" + } + }, + "required": [ + "page_name", + "title", + "summary", + "action", + "sha", + "html_url" + ] + } + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "pages", + "repository", + "sender" + ] + }, + "webhook-installation-created": { + "title": "installation created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repositories": { + "$ref": "#/components/schemas/webhooks_repositories" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requester": { + "$ref": "#/components/schemas/webhooks_user" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "installation", + "sender" + ] + }, + "webhook-installation-deleted": { + "title": "installation deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repositories": { + "$ref": "#/components/schemas/webhooks_repositories" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requester": { + "nullable": true + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "installation", + "sender" + ] + }, + "webhook-installation-new-permissions-accepted": { + "title": "installation new_permissions_accepted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "new_permissions_accepted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repositories": { + "$ref": "#/components/schemas/webhooks_repositories" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requester": { + "nullable": true + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "installation", + "sender" + ] + }, + "webhook-installation-repositories-added": { + "title": "installation_repositories added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "added" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repositories_added": { + "$ref": "#/components/schemas/webhooks_repositories_added" + }, + "repositories_removed": { + "description": "An array of repository objects, which were removed from the installation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "full_name": { + "type": "string" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + } + } + } + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "repository_selection": { + "$ref": "#/components/schemas/webhooks_repository_selection" + }, + "requester": { + "$ref": "#/components/schemas/webhooks_user" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "installation", + "repository_selection", + "repositories_added", + "repositories_removed", + "requester", + "sender" + ] + }, + "webhook-installation-repositories-removed": { + "title": "installation_repositories removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "removed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repositories_added": { + "$ref": "#/components/schemas/webhooks_repositories_added" + }, + "repositories_removed": { + "description": "An array of repository objects, which were removed from the installation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "full_name": { + "type": "string" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private" + ] + } + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "repository_selection": { + "$ref": "#/components/schemas/webhooks_repository_selection" + }, + "requester": { + "$ref": "#/components/schemas/webhooks_user" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "installation", + "repository_selection", + "repositories_added", + "repositories_removed", + "requester", + "sender" + ] + }, + "webhook-installation-suspend": { + "title": "installation suspend event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "suspend" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repositories": { + "$ref": "#/components/schemas/webhooks_repositories" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requester": { + "nullable": true + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "installation", + "sender" + ] + }, + "webhook-installation-target-renamed": { + "type": "object", + "properties": { + "account": { + "type": "object", + "properties": { + "archived_at": { + "type": "string", + "nullable": true + }, + "avatar_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "description": { + "nullable": true + }, + "events_url": { + "type": "string" + }, + "followers": { + "type": "integer" + }, + "followers_url": { + "type": "string" + }, + "following": { + "type": "integer" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "has_organization_projects": { + "type": "boolean" + }, + "has_repository_projects": { + "type": "boolean" + }, + "hooks_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "is_verified": { + "type": "boolean" + }, + "issues_url": { + "type": "string" + }, + "login": { + "type": "string" + }, + "members_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "public_gists": { + "type": "integer" + }, + "public_members_url": { + "type": "string" + }, + "public_repos": { + "type": "integer" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "website_url": { + "nullable": true + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "id", + "node_id", + "avatar_url", + "html_url" + ] + }, + "action": { + "type": "string", + "enum": [ + "renamed" + ] + }, + "changes": { + "type": "object", + "properties": { + "login": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "slug": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "target_type": { + "type": "string" + } + }, + "required": [ + "action", + "target_type", + "account", + "changes", + "installation" + ] + }, + "webhook-installation-unsuspend": { + "title": "installation unsuspend event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unsuspend" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repositories": { + "$ref": "#/components/schemas/webhooks_repositories" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requester": { + "nullable": true + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "installation", + "sender" + ] + }, + "webhook-issue-comment-created": { + "title": "issue_comment created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "comment": { + "title": "issue comment", + "description": "The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself.", + "type": "object", + "properties": { + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue comment", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the issue comment", + "type": "integer", + "format": "int64" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue comment", + "type": "string", + "format": "uri" + }, + "pin": { + "$ref": "#/components/schemas/nullable-pinned-issue-comment" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "html_url", + "issue_url", + "id", + "node_id", + "user", + "created_at", + "updated_at", + "author_association", + "performed_via_github_app", + "body", + "reactions" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to.", + "allOf": [ + { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "reminder", + "pull_request_review_thread" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + { + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "author_association": { + "type": "string" + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "type": "object", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "type": "object", + "nullable": true + }, + "reactions": { + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string" + } + } + }, + "repository_url": { + "type": "string" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "timeline_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + } + }, + "required": [ + "labels", + "state", + "locked", + "assignee" + ] + } + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "comment", + "repository", + "sender" + ] + }, + "webhook-issue-comment-deleted": { + "title": "issue_comment deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "comment": { + "$ref": "#/components/schemas/webhooks_issue_comment" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to.", + "allOf": [ + { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + { + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "author_association": { + "type": "string" + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "type": "object", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "type": "object", + "nullable": true + }, + "reactions": { + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string" + } + } + }, + "repository_url": { + "type": "string" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "timeline_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + } + }, + "required": [ + "labels", + "state", + "locked", + "assignee" + ] + } + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "comment", + "repository", + "sender" + ] + }, + "webhook-issue-comment-edited": { + "title": "issue_comment edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "$ref": "#/components/schemas/webhooks_changes" + }, + "comment": { + "$ref": "#/components/schemas/webhooks_issue_comment" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to.", + "allOf": [ + { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "reminder", + "pull_request_review_thread" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + { + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "author_association": { + "type": "string" + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "type": "object", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "type": "object", + "nullable": true + }, + "reactions": { + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string" + } + } + }, + "repository_url": { + "type": "string" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "timeline_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + } + }, + "required": [ + "labels", + "state", + "locked", + "assignee" + ] + } + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "issue", + "comment", + "repository", + "sender" + ] + }, + "webhook-issue-comment-pinned": { + "title": "issue_comment pinned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "pinned" + ] + }, + "comment": { + "$ref": "#/components/schemas/webhooks_issue_comment" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to.", + "allOf": [ + { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "team_discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + { + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "author_association": { + "type": "string" + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "type": "object", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "type": "object", + "nullable": true + }, + "reactions": { + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string" + } + } + }, + "repository_url": { + "type": "string" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "timeline_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + } + }, + "required": [ + "labels", + "state", + "locked", + "assignee" + ] + } + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "comment", + "repository", + "sender" + ] + }, + "webhook-issue-comment-unpinned": { + "title": "issue_comment unpinned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unpinned" + ] + }, + "comment": { + "$ref": "#/components/schemas/webhooks_issue_comment" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to.", + "allOf": [ + { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "team_discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + { + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "author_association": { + "type": "string" + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "type": "object", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "type": "object", + "nullable": true + }, + "reactions": { + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string" + } + } + }, + "repository_url": { + "type": "string" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "timeline_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + } + }, + "required": [ + "labels", + "state", + "locked", + "assignee" + ] + } + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "comment", + "repository", + "sender" + ] + }, + "webhook-issue-dependencies-blocked-by-added": { + "title": "blocked by issue added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "blocked_by_added" + ] + }, + "blocked_issue_id": { + "description": "The ID of the blocked issue.", + "type": "number" + }, + "blocked_issue": { + "$ref": "#/components/schemas/issue" + }, + "blocking_issue_id": { + "description": "The ID of the blocking issue.", + "type": "number" + }, + "blocking_issue": { + "$ref": "#/components/schemas/issue" + }, + "blocking_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "organization", + "repository", + "sender" + ] + }, + "webhook-issue-dependencies-blocked-by-removed": { + "title": "blocked by issue removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "blocked_by_removed" + ] + }, + "blocked_issue_id": { + "description": "The ID of the blocked issue.", + "type": "number" + }, + "blocked_issue": { + "$ref": "#/components/schemas/issue" + }, + "blocking_issue_id": { + "description": "The ID of the blocking issue.", + "type": "number" + }, + "blocking_issue": { + "$ref": "#/components/schemas/issue" + }, + "blocking_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "organization", + "repository", + "sender" + ] + }, + "webhook-issue-dependencies-blocking-added": { + "title": "blocking issue added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "blocking_added" + ] + }, + "blocked_issue_id": { + "description": "The ID of the blocked issue.", + "type": "number" + }, + "blocked_issue": { + "$ref": "#/components/schemas/issue" + }, + "blocked_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "blocking_issue_id": { + "description": "The ID of the blocking issue.", + "type": "number" + }, + "blocking_issue": { + "$ref": "#/components/schemas/issue" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "organization", + "repository", + "sender" + ] + }, + "webhook-issue-dependencies-blocking-removed": { + "title": "blocking issue removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "blocking_removed" + ] + }, + "blocked_issue_id": { + "description": "The ID of the blocked issue.", + "type": "number" + }, + "blocked_issue": { + "$ref": "#/components/schemas/issue" + }, + "blocked_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "blocking_issue_id": { + "description": "The ID of the blocking issue.", + "type": "number" + }, + "blocking_issue": { + "$ref": "#/components/schemas/issue" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "organization", + "repository", + "sender" + ] + }, + "webhook-issues-assigned": { + "title": "issues assigned event", + "type": "object", + "properties": { + "action": { + "description": "The action that was performed.", + "type": "string", + "enum": [ + "assigned" + ] + }, + "assignee": { + "$ref": "#/components/schemas/webhooks_user" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-closed": { + "title": "issues closed event", + "type": "object", + "properties": { + "action": { + "description": "The action that was performed.", + "type": "string", + "enum": [ + "closed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "allOf": [ + { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "security_and_analysis", + "reminder", + "pull_request_review_thread" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + { + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "assignee": { + "type": "object", + "nullable": true + }, + "assignees": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "author_association": { + "type": "string" + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "labels_url": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "type": "object", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "type": "object", + "nullable": true + }, + "reactions": { + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string" + } + } + }, + "repository_url": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "closed", + "open" + ] + }, + "timeline_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + } + }, + "required": [ + "state", + "closed_at" + ] + } + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-deleted": { + "title": "issues deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "reminder" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-demilestoned": { + "title": "issues demilestoned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "demilestoned" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "required": [ + "active_lock_reason", + "assignees", + "author_association", + "body", + "closed_at", + "comments", + "comments_url", + "created_at", + "events_url", + "html_url", + "id", + "labels_url", + "milestone", + "node_id", + "number", + "reactions", + "repository_url", + "title", + "updated_at", + "url", + "user" + ], + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ], + "nullable": true, + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + } + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ], + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ], + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + } + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ], + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + } + } + }, + "milestone": { + "$ref": "#/components/schemas/webhooks_milestone" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-edited": { + "title": "issues edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes to the issue.", + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the body.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "title": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the title.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "security_and_analysis", + "pull_request_review_thread", + "reminder" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-labeled": { + "title": "issues labeled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "labeled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "pull_request_review_thread", + "reminder" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-locked": { + "title": "issues locked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "locked" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "required": [ + "active_lock_reason", + "assignees", + "author_association", + "body", + "closed_at", + "comments", + "comments_url", + "created_at", + "events_url", + "html_url", + "id", + "labels_url", + "locked", + "milestone", + "node_id", + "number", + "reactions", + "repository_url", + "title", + "updated_at", + "url", + "user" + ], + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ], + "nullable": true, + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + } + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean", + "enum": [ + true + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ], + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ], + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "reminder", + "security_and_analysis" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + } + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ], + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + } + } + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-milestoned": { + "title": "issues milestoned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "milestoned" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "required": [ + "active_lock_reason", + "assignees", + "author_association", + "body", + "closed_at", + "comments", + "comments_url", + "created_at", + "events_url", + "html_url", + "id", + "labels_url", + "milestone", + "node_id", + "number", + "reactions", + "repository_url", + "title", + "updated_at", + "url", + "user" + ], + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ], + "nullable": true, + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + } + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ], + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ], + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "reminder" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + } + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ], + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + } + } + }, + "milestone": { + "$ref": "#/components/schemas/webhooks_milestone" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "milestone", + "repository", + "sender" + ] + }, + "webhook-issues-opened": { + "title": "issues opened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "opened" + ] + }, + "changes": { + "type": "object", + "properties": { + "old_issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "nullable": true, + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "type": { + "$ref": "#/components/schemas/issue-type" + } + }, + "required": [ + "id", + "number" + ] + }, + "old_repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_discussions": { + "description": "Whether the repository has discussions enabled.", + "type": "boolean" + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require commit signoff.", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + } + }, + "required": [ + "old_issue", + "old_repository" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "security_and_analysis", + "pull_request_review_thread", + "reminder" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-pinned": { + "title": "issues pinned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "pinned" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue_2" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-reopened": { + "title": "issues reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "required": [ + "active_lock_reason", + "assignees", + "author_association", + "body", + "closed_at", + "comments", + "comments_url", + "created_at", + "events_url", + "html_url", + "id", + "labels_url", + "milestone", + "node_id", + "number", + "reactions", + "repository_url", + "state", + "title", + "updated_at", + "url", + "user" + ], + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ], + "nullable": true, + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + } + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ], + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ], + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run", + "pull_request_review_thread", + "reminder" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write", + "admin" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + } + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ], + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "type": { + "$ref": "#/components/schemas/issue-type" + } + } + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-transferred": { + "title": "issues transferred event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "transferred" + ] + }, + "changes": { + "type": "object", + "properties": { + "new_issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean" + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "repository_url", + "labels_url", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "number", + "title", + "user", + "assignees", + "milestone", + "comments", + "created_at", + "updated_at", + "closed_at", + "author_association", + "active_lock_reason", + "body", + "reactions" + ] + }, + "new_repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + } + }, + "required": [ + "new_issue", + "new_repository" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue_2" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-typed": { + "title": "issues typed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "typed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "type", + "repository", + "sender" + ] + }, + "webhook-issues-unassigned": { + "title": "issues unassigned event", + "type": "object", + "properties": { + "action": { + "description": "The action that was performed.", + "type": "string", + "enum": [ + "unassigned" + ] + }, + "assignee": { + "$ref": "#/components/schemas/webhooks_user_mannequin" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-unlabeled": { + "title": "issues unlabeled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unlabeled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-unlocked": { + "title": "issues unlocked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unlocked" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "title": "Issue", + "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "type": "object", + "required": [ + "active_lock_reason", + "assignees", + "author_association", + "body", + "closed_at", + "comments", + "comments_url", + "created_at", + "events_url", + "html_url", + "id", + "labels_url", + "locked", + "milestone", + "node_id", + "number", + "reactions", + "repository_url", + "title", + "updated_at", + "url", + "user" + ], + "properties": { + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "Contents of the issue", + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "draft": { + "type": "boolean" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ], + "nullable": true, + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + } + } + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "locked": { + "type": "boolean", + "enum": [ + false + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ], + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "performed_via_github_app": { + "title": "App", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "nullable": true, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at" + ], + "properties": { + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "events": { + "description": "The list of events for the GitHub app", + "type": "array", + "items": { + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "content_reference", + "create", + "delete", + "deployment", + "deployment_review", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "milestone", + "organization", + "org_block", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "push", + "registry_package", + "release", + "repository", + "repository_dispatch", + "secret_scanning_alert", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_dispatch", + "workflow_run" + ] + } + }, + "external_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the GitHub app", + "type": "integer", + "nullable": true + }, + "name": { + "description": "The name of the GitHub app", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "actions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "checks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "content_references": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "contents": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "deployments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "discussions": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "emails": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "environments": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "issues": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "keys": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "members": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "metadata": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_administration": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_plan": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_self_hosted_runners": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "organization_user_blocking": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "packages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pages": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "pull_requests": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_hooks": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "repository_projects": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secret_scanning_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "secrets": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_events": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "security_scanning_alert": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "single_file": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "statuses": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "vulnerability_alerts": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, + "workflows": { + "type": "string", + "enum": [ + "read", + "write" + ] + } + } + }, + "slug": { + "description": "The slug name of the GitHub app", + "type": "string" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + } + }, + "pull_request": { + "type": "object", + "properties": { + "diff_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "reactions": { + "title": "Reactions", + "type": "object", + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ], + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "repository_url": { + "type": "string", + "format": "uri" + }, + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" + }, + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "state_reason": { + "type": "string", + "nullable": true + }, + "timeline_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "Title of the issue", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the issue", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + } + } + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-unpinned": { + "title": "issues unpinned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unpinned" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue_2" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "repository", + "sender" + ] + }, + "webhook-issues-untyped": { + "title": "issues untyped event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "untyped" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue" + }, + "type": { + "$ref": "#/components/schemas/issue-type" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "type", + "repository", + "sender" + ] + }, + "webhook-label-created": { + "title": "label created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "label", + "repository" + ] + }, + "webhook-label-deleted": { + "title": "label deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "label", + "repository", + "sender" + ] + }, + "webhook-label-edited": { + "title": "label edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes to the label if the action was `edited`.", + "type": "object", + "properties": { + "color": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the color if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "description": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the description if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "name": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the name if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "label", + "repository", + "sender" + ] + }, + "webhook-marketplace-purchase-cancelled": { + "title": "marketplace_purchase cancelled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "cancelled" + ] + }, + "effective_date": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "marketplace_purchase": { + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "previous_marketplace_purchase": { + "$ref": "#/components/schemas/webhooks_previous_marketplace_purchase" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "effective_date", + "sender", + "marketplace_purchase" + ] + }, + "webhook-marketplace-purchase-changed": { + "title": "marketplace_purchase changed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "changed" + ] + }, + "effective_date": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "marketplace_purchase": { + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "previous_marketplace_purchase": { + "title": "Marketplace Purchase", + "type": "object", + "properties": { + "account": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organization_billing_email": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id", + "node_id", + "login", + "organization_billing_email" + ] + }, + "billing_cycle": { + "type": "string" + }, + "free_trial_ends_on": { + "type": "string", + "nullable": true + }, + "next_billing_date": { + "type": "string", + "nullable": true + }, + "on_free_trial": { + "type": "boolean", + "nullable": true + }, + "plan": { + "type": "object", + "properties": { + "bullets": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "has_free_trial": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "monthly_price_in_cents": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "price_model": { + "type": "string", + "enum": [ + "FREE", + "FLAT_RATE", + "PER_UNIT" + ] + }, + "unit_name": { + "type": "string", + "nullable": true + }, + "yearly_price_in_cents": { + "type": "integer" + } + }, + "required": [ + "id", + "name", + "description", + "monthly_price_in_cents", + "yearly_price_in_cents", + "price_model", + "has_free_trial", + "unit_name", + "bullets" + ] + }, + "unit_count": { + "type": "integer" + } + }, + "required": [ + "account", + "billing_cycle", + "unit_count", + "on_free_trial", + "free_trial_ends_on", + "plan" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "effective_date", + "sender", + "marketplace_purchase" + ] + }, + "webhook-marketplace-purchase-pending-change": { + "title": "marketplace_purchase pending_change event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "pending_change" + ] + }, + "effective_date": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "marketplace_purchase": { + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "previous_marketplace_purchase": { + "title": "Marketplace Purchase", + "type": "object", + "properties": { + "account": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organization_billing_email": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id", + "node_id", + "login", + "organization_billing_email" + ] + }, + "billing_cycle": { + "type": "string" + }, + "free_trial_ends_on": { + "type": "string", + "nullable": true + }, + "next_billing_date": { + "type": "string", + "nullable": true + }, + "on_free_trial": { + "type": "boolean" + }, + "plan": { + "type": "object", + "properties": { + "bullets": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "has_free_trial": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "monthly_price_in_cents": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "price_model": { + "type": "string", + "enum": [ + "FREE", + "FLAT_RATE", + "PER_UNIT" + ] + }, + "unit_name": { + "type": "string", + "nullable": true + }, + "yearly_price_in_cents": { + "type": "integer" + } + }, + "required": [ + "id", + "name", + "description", + "monthly_price_in_cents", + "yearly_price_in_cents", + "price_model", + "has_free_trial", + "unit_name", + "bullets" + ] + }, + "unit_count": { + "type": "integer" + } + }, + "required": [ + "account", + "billing_cycle", + "unit_count", + "on_free_trial", + "free_trial_ends_on", + "plan" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "effective_date", + "sender", + "marketplace_purchase" + ] + }, + "webhook-marketplace-purchase-pending-change-cancelled": { + "title": "marketplace_purchase pending_change_cancelled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "pending_change_cancelled" + ] + }, + "effective_date": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "marketplace_purchase": { + "title": "Marketplace Purchase", + "type": "object", + "required": [ + "account", + "billing_cycle", + "free_trial_ends_on", + "next_billing_date", + "on_free_trial", + "plan", + "unit_count" + ], + "properties": { + "account": { + "type": "object", + "required": [ + "type", + "id", + "node_id", + "login", + "organization_billing_email" + ], + "properties": { + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organization_billing_email": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string" + } + } + }, + "billing_cycle": { + "type": "string" + }, + "free_trial_ends_on": { + "nullable": true + }, + "next_billing_date": { + "type": "string", + "nullable": true + }, + "on_free_trial": { + "type": "boolean" + }, + "plan": { + "type": "object", + "required": [ + "id", + "name", + "description", + "monthly_price_in_cents", + "yearly_price_in_cents", + "price_model", + "has_free_trial", + "unit_name", + "bullets" + ], + "properties": { + "bullets": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "has_free_trial": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "monthly_price_in_cents": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "price_model": { + "type": "string", + "enum": [ + "FREE", + "FLAT_RATE", + "PER_UNIT" + ] + }, + "unit_name": { + "type": "string", + "nullable": true + }, + "yearly_price_in_cents": { + "type": "integer" + } + } + }, + "unit_count": { + "type": "integer" + } + } + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "previous_marketplace_purchase": { + "$ref": "#/components/schemas/webhooks_previous_marketplace_purchase" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "effective_date", + "sender", + "marketplace_purchase" + ] + }, + "webhook-marketplace-purchase-purchased": { + "title": "marketplace_purchase purchased event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "purchased" + ] + }, + "effective_date": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "marketplace_purchase": { + "$ref": "#/components/schemas/webhooks_marketplace_purchase" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "previous_marketplace_purchase": { + "$ref": "#/components/schemas/webhooks_previous_marketplace_purchase" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "effective_date", + "sender", + "marketplace_purchase" + ] + }, + "webhook-member-added": { + "title": "member added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "added" + ] + }, + "changes": { + "type": "object", + "properties": { + "permission": { + "description": "This field is included for legacy purposes; use the `role_name` field instead. The `maintain`\nrole is mapped to `write` and the `triage` role is mapped to `read`. To determine the role\nassigned to the collaborator, use the `role_name` field instead, which will provide the full\nrole name, including custom roles.", + "type": "object", + "properties": { + "to": { + "type": "string", + "enum": [ + "write", + "admin", + "read" + ] + } + }, + "required": [ + "to" + ] + }, + "role_name": { + "description": "The role assigned to the collaborator.", + "type": "object", + "properties": { + "to": { + "type": "string" + } + }, + "required": [ + "to" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "member": { + "$ref": "#/components/schemas/webhooks_user" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "member", + "repository", + "sender" + ] + }, + "webhook-member-edited": { + "title": "member edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes to the collaborator permissions", + "type": "object", + "properties": { + "old_permission": { + "type": "object", + "properties": { + "from": { + "description": "The previous permissions of the collaborator if the action was edited.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "permission": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + }, + "to": { + "type": "string", + "nullable": true + } + } + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "member": { + "$ref": "#/components/schemas/webhooks_user" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "member", + "repository", + "sender" + ] + }, + "webhook-member-removed": { + "title": "member removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "removed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "member": { + "$ref": "#/components/schemas/webhooks_user" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "member", + "repository", + "sender" + ] + }, + "webhook-membership-added": { + "title": "membership added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "added" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "member": { + "$ref": "#/components/schemas/webhooks_user" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "scope": { + "description": "The scope of the membership. Currently, can only be `team`.", + "type": "string", + "enum": [ + "team" + ] + }, + "sender": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "team": { + "$ref": "#/components/schemas/webhooks_team" + } + }, + "required": [ + "action", + "scope", + "member", + "sender", + "team", + "organization" + ] + }, + "webhook-membership-removed": { + "title": "membership removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "removed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "member": { + "$ref": "#/components/schemas/webhooks_user" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "scope": { + "description": "The scope of the membership. Currently, can only be `team`.", + "type": "string", + "enum": [ + "team", + "organization" + ] + }, + "sender": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "team": { + "$ref": "#/components/schemas/webhooks_team" + } + }, + "required": [ + "action", + "scope", + "member", + "sender", + "team", + "organization" + ] + }, + "webhook-merge-group-checks-requested": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "checks_requested" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "merge_group": { + "$ref": "#/components/schemas/merge-group" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "merge_group" + ] + }, + "webhook-merge-group-destroyed": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "destroyed" + ] + }, + "reason": { + "type": "string", + "description": "Explains why the merge group is being destroyed. The group could have been merged, removed from the queue (dequeued), or invalidated by an earlier queue entry being dequeued (invalidated).", + "enum": [ + "merged", + "invalidated", + "dequeued" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "merge_group": { + "$ref": "#/components/schemas/merge-group" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "merge_group" + ] + }, + "webhook-meta-deleted": { + "title": "meta deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "hook": { + "description": "The deleted webhook. This will contain different keys based on the type of webhook it is: repository, organization, business, app, or GitHub Marketplace.", + "type": "object", + "properties": { + "active": { + "type": "boolean" + }, + "config": { + "type": "object", + "properties": { + "content_type": { + "type": "string", + "enum": [ + "json", + "form" + ] + }, + "insecure_ssl": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "content_type", + "insecure_ssl", + "url" + ] + }, + "created_at": { + "type": "string" + }, + "events": { + "description": "", + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "branch_protection_rule", + "check_run", + "check_suite", + "code_scanning_alert", + "commit_comment", + "create", + "delete", + "deployment", + "deployment_status", + "deploy_key", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issues", + "issue_comment", + "label", + "member", + "membership", + "meta", + "milestone", + "organization", + "org_block", + "package", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "pull_request_review_thread", + "push", + "registry_package", + "release", + "repository", + "repository_import", + "repository_vulnerability_alert", + "secret_scanning_alert", + "secret_scanning_alert_location", + "security_and_analysis", + "star", + "status", + "team", + "team_add", + "watch", + "workflow_job", + "workflow_run", + "repository_dispatch", + "projects_v2_item" + ], + "minItems": 1 + } + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "type", + "id", + "name", + "active", + "events", + "config", + "updated_at", + "created_at" + ] + }, + "hook_id": { + "description": "The id of the modified webhook.", + "type": "integer" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/nullable-repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "hook_id", + "hook" + ] + }, + "webhook-milestone-closed": { + "title": "milestone closed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "closed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "milestone": { + "$ref": "#/components/schemas/webhooks_milestone" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "milestone", + "repository", + "sender" + ] + }, + "webhook-milestone-created": { + "title": "milestone created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "milestone": { + "$ref": "#/components/schemas/webhooks_milestone_3" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "milestone", + "repository", + "sender" + ] + }, + "webhook-milestone-deleted": { + "title": "milestone deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "milestone": { + "$ref": "#/components/schemas/webhooks_milestone" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "milestone", + "repository", + "sender" + ] + }, + "webhook-milestone-edited": { + "title": "milestone edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes to the milestone if the action was `edited`.", + "type": "object", + "properties": { + "description": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the description if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "due_on": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the due date if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "title": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the title if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "milestone": { + "$ref": "#/components/schemas/webhooks_milestone" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "milestone", + "repository", + "sender" + ] + }, + "webhook-milestone-opened": { + "title": "milestone opened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "opened" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "milestone": { + "$ref": "#/components/schemas/webhooks_milestone_3" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "milestone", + "repository", + "sender" + ] + }, + "webhook-org-block-blocked": { + "title": "org_block blocked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "blocked" + ] + }, + "blocked_user": { + "$ref": "#/components/schemas/webhooks_user" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "blocked_user", + "organization", + "sender" + ] + }, + "webhook-org-block-unblocked": { + "title": "org_block unblocked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unblocked" + ] + }, + "blocked_user": { + "$ref": "#/components/schemas/webhooks_user" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "blocked_user", + "organization", + "sender" + ] + }, + "webhook-organization-deleted": { + "title": "organization deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "membership": { + "$ref": "#/components/schemas/webhooks_membership" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "organization", + "sender" + ] + }, + "webhook-organization-member-added": { + "title": "organization member_added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "member_added" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "membership": { + "$ref": "#/components/schemas/webhooks_membership" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "membership", + "organization", + "sender" + ] + }, + "webhook-organization-member-invited": { + "title": "organization member_invited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "member_invited" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "invitation": { + "description": "The invitation for the user or email if the action is `member_invited`.", + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true + }, + "failed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "failed_reason": { + "type": "string", + "nullable": true + }, + "id": { + "type": "number" + }, + "invitation_teams_url": { + "type": "string", + "format": "uri" + }, + "inviter": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "login": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "role": { + "type": "string" + }, + "team_count": { + "type": "number" + }, + "invitation_source": { + "type": "string" + } + }, + "required": [ + "id", + "node_id", + "login", + "email", + "role", + "created_at", + "failed_at", + "failed_reason", + "inviter", + "team_count", + "invitation_teams_url" + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "user": { + "$ref": "#/components/schemas/webhooks_user" + } + }, + "required": [ + "action", + "invitation", + "organization", + "sender" + ] + }, + "webhook-organization-member-removed": { + "title": "organization member_removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "member_removed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "membership": { + "$ref": "#/components/schemas/webhooks_membership" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "membership", + "organization", + "sender" + ] + }, + "webhook-organization-renamed": { + "title": "organization renamed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "renamed" + ] + }, + "changes": { + "type": "object", + "properties": { + "login": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "membership": { + "$ref": "#/components/schemas/webhooks_membership" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "organization", + "sender" + ] + }, + "webhook-rubygems-metadata": { + "title": "Ruby Gems metadata", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "readme": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "version_info": { + "type": "object", + "properties": { + "version": { + "type": "string" + } + } + }, + "platform": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "repo": { + "type": "string" + }, + "dependencies": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "commit_oid": { + "type": "string" + } + } + }, + "webhook-package-published": { + "title": "package published event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "published" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "package": { + "description": "Information about the package.", + "type": "object", + "properties": { + "created_at": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "ecosystem": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "package_type": { + "type": "string" + }, + "package_version": { + "type": "object", + "nullable": true, + "properties": { + "author": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "body": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "body_html": { + "type": "string" + }, + "container_metadata": { + "type": "object", + "nullable": true, + "properties": { + "labels": { + "type": "object", + "nullable": true + }, + "manifest": { + "type": "object", + "nullable": true + }, + "tag": { + "type": "object", + "properties": { + "digest": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + } + }, + "created_at": { + "type": "string" + }, + "description": { + "type": "string" + }, + "docker_metadata": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "installation_command": { + "type": "string" + }, + "manifest": { + "type": "string" + }, + "metadata": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "name": { + "type": "string" + }, + "npm_metadata": { + "type": "object", + "nullable": true, + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "npm_user": { + "type": "string" + }, + "author": { + "type": "object", + "nullable": true + }, + "bugs": { + "type": "object", + "nullable": true + }, + "dependencies": { + "type": "object" + }, + "dev_dependencies": { + "type": "object" + }, + "peer_dependencies": { + "type": "object" + }, + "optional_dependencies": { + "type": "object" + }, + "description": { + "type": "string" + }, + "dist": { + "type": "object", + "nullable": true + }, + "git_head": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "license": { + "type": "string" + }, + "main": { + "type": "string" + }, + "repository": { + "type": "object", + "nullable": true + }, + "scripts": { + "type": "object" + }, + "id": { + "type": "string" + }, + "node_version": { + "type": "string" + }, + "npm_version": { + "type": "string" + }, + "has_shrinkwrap": { + "type": "boolean" + }, + "maintainers": { + "type": "array", + "items": { + "type": "object" + } + }, + "contributors": { + "type": "array", + "items": { + "type": "object" + } + }, + "engines": { + "type": "object" + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + } + }, + "files": { + "type": "array", + "items": { + "type": "string" + } + }, + "bin": { + "type": "object" + }, + "man": { + "type": "object" + }, + "directories": { + "type": "object", + "nullable": true + }, + "os": { + "type": "array", + "items": { + "type": "string" + } + }, + "cpu": { + "type": "array", + "items": { + "type": "string" + } + }, + "readme": { + "type": "string" + }, + "installation_command": { + "type": "string" + }, + "release_id": { + "type": "integer" + }, + "commit_oid": { + "type": "string" + }, + "published_via_actions": { + "type": "boolean" + }, + "deleted_by_id": { + "type": "integer" + } + } + }, + "nuget_metadata": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "id": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "name": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "commit": { + "type": "string" + }, + "type": { + "type": "string" + } + } + } + ] + } + } + } + }, + "package_files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "content_type": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "download_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "md5": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "sha1": { + "type": "string", + "nullable": true + }, + "sha256": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "state": { + "type": "string", + "nullable": true + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "download_url", + "id", + "name", + "sha256", + "sha1", + "md5", + "content_type", + "state", + "size", + "created_at", + "updated_at" + ] + } + }, + "package_url": { + "type": "string" + }, + "prerelease": { + "type": "boolean" + }, + "release": { + "type": "object", + "properties": { + "author": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "created_at": { + "type": "string" + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string", + "nullable": true + }, + "prerelease": { + "type": "boolean" + }, + "published_at": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "id", + "tag_name", + "target_commitish", + "name", + "draft", + "author", + "prerelease", + "created_at", + "published_at" + ] + }, + "rubygems_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/webhook-rubygems-metadata" + } + }, + "source_url": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "target_oid": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "id", + "version", + "summary", + "name", + "description", + "html_url", + "metadata", + "package_files", + "installation_command" + ] + }, + "registry": { + "type": "object", + "nullable": true, + "properties": { + "about_url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "vendor": { + "type": "string" + } + }, + "required": [ + "about_url", + "name", + "type", + "url", + "vendor" + ] + }, + "updated_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "name", + "namespace", + "description", + "ecosystem", + "package_type", + "html_url", + "created_at", + "updated_at", + "owner", + "package_version", + "registry" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "package", + "sender" + ] + }, + "webhook-package-updated": { + "title": "package updated event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "updated" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "package": { + "description": "Information about the package.", + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "ecosystem": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "package_type": { + "type": "string" + }, + "package_version": { + "type": "object", + "properties": { + "author": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "body": { + "type": "string" + }, + "body_html": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "description": { + "type": "string" + }, + "docker_metadata": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "installation_command": { + "type": "string" + }, + "manifest": { + "type": "string" + }, + "metadata": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "name": { + "type": "string" + }, + "package_files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "content_type": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "download_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "md5": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "sha1": { + "type": "string", + "nullable": true + }, + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "state": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "download_url", + "id", + "name", + "sha256", + "sha1", + "md5", + "content_type", + "state", + "size", + "created_at", + "updated_at" + ] + } + }, + "package_url": { + "type": "string" + }, + "prerelease": { + "type": "boolean" + }, + "release": { + "type": "object", + "properties": { + "author": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "created_at": { + "type": "string" + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "prerelease": { + "type": "boolean" + }, + "published_at": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "id", + "tag_name", + "target_commitish", + "name", + "draft", + "author", + "prerelease", + "created_at", + "published_at" + ] + }, + "rubygems_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/webhook-rubygems-metadata" + } + }, + "source_url": { + "type": "string", + "format": "uri" + }, + "summary": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "target_oid": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "id", + "version", + "summary", + "name", + "description", + "body", + "body_html", + "html_url", + "target_commitish", + "target_oid", + "created_at", + "updated_at", + "metadata", + "package_files", + "author", + "installation_command" + ] + }, + "registry": { + "type": "object", + "nullable": true, + "properties": { + "about_url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "vendor": { + "type": "string" + } + }, + "required": [ + "about_url", + "name", + "type", + "url", + "vendor" + ] + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "namespace", + "description", + "ecosystem", + "package_type", + "html_url", + "created_at", + "updated_at", + "owner", + "package_version", + "registry" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "package", + "repository", + "sender" + ] + }, + "webhook-page-build": { + "title": "page_build event", + "type": "object", + "properties": { + "build": { + "description": "The [List GitHub Pages builds](https://docs.github.com/rest/pages/pages#list-github-pages-builds) itself.", + "type": "object", + "properties": { + "commit": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "nullable": true + } + }, + "required": [ + "message" + ] + }, + "pusher": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "status": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "status", + "error", + "pusher", + "commit", + "duration", + "created_at", + "updated_at" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "id": { + "type": "integer" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "id", + "build", + "repository", + "sender" + ] + }, + "webhook-personal-access-token-request-approved": { + "title": "personal_access_token_request approved event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "approved" + ] + }, + "personal_access_token_request": { + "$ref": "#/components/schemas/personal-access-token-request" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + } + }, + "required": [ + "action", + "personal_access_token_request", + "organization", + "sender", + "installation" + ] + }, + "webhook-personal-access-token-request-cancelled": { + "title": "personal_access_token_request cancelled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "cancelled" + ] + }, + "personal_access_token_request": { + "$ref": "#/components/schemas/personal-access-token-request" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + } + }, + "required": [ + "action", + "personal_access_token_request", + "organization", + "sender", + "installation" + ] + }, + "webhook-personal-access-token-request-created": { + "title": "personal_access_token_request created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "personal_access_token_request": { + "$ref": "#/components/schemas/personal-access-token-request" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + } + }, + "required": [ + "action", + "personal_access_token_request", + "organization", + "sender" + ] + }, + "webhook-personal-access-token-request-denied": { + "title": "personal_access_token_request denied event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "denied" + ] + }, + "personal_access_token_request": { + "$ref": "#/components/schemas/personal-access-token-request" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + } + }, + "required": [ + "action", + "personal_access_token_request", + "organization", + "sender", + "installation" + ] + }, + "webhook-ping": { + "type": "object", + "properties": { + "hook": { + "title": "Webhook", + "description": "The webhook that is being pinged", + "type": "object", + "properties": { + "active": { + "description": "Determines whether the hook is actually triggered for the events it subscribes to.", + "type": "boolean" + }, + "app_id": { + "description": "Only included for GitHub Apps. When you register a new GitHub App, GitHub sends a ping event to the webhook URL you specified during registration. The GitHub App ID sent in this field is required for authenticating an app.", + "type": "integer" + }, + "config": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "url": { + "$ref": "#/components/schemas/webhook-config-url" + } + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deliveries_url": { + "type": "string", + "format": "uri" + }, + "events": { + "description": "Determines what events the hook is triggered for. Default: ['push'].", + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "description": "Unique identifier of the webhook.", + "type": "integer" + }, + "last_response": { + "$ref": "#/components/schemas/hook-response" + }, + "name": { + "description": "The type of webhook. The only valid value is 'web'.", + "type": "string", + "enum": [ + "web" + ] + }, + "ping_url": { + "type": "string", + "format": "uri" + }, + "test_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "type", + "name", + "active", + "events", + "config", + "created_at", + "updated_at" + ] + }, + "hook_id": { + "description": "The ID of the webhook that triggered the ping.", + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "zen": { + "description": "Random string of GitHub zen.", + "type": "string" + } + } + }, + "webhook-ping-form-encoded": { + "description": "The webhooks ping payload encoded with URL encoding.", + "type": "object", + "properties": { + "payload": { + "description": "A URL-encoded string of the ping JSON payload. The decoded payload is a JSON object.", + "type": "string" + } + }, + "required": [ + "payload" + ] + }, + "webhook-project-card-converted": { + "title": "project_card converted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "converted" + ] + }, + "changes": { + "type": "object", + "properties": { + "note": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "note" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_card": { + "$ref": "#/components/schemas/webhooks_project_card" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "project_card", + "sender" + ] + }, + "webhook-project-card-created": { + "title": "project_card created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_card": { + "$ref": "#/components/schemas/webhooks_project_card" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project_card", + "sender" + ] + }, + "webhook-project-card-deleted": { + "title": "project_card deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_card": { + "title": "Project Card", + "type": "object", + "properties": { + "after_id": { + "type": "integer", + "nullable": true + }, + "archived": { + "description": "Whether or not the card is archived", + "type": "boolean" + }, + "column_id": { + "type": "integer", + "nullable": true + }, + "column_url": { + "type": "string", + "format": "uri" + }, + "content_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "id": { + "description": "The project card's ID", + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "note": { + "type": "string", + "nullable": true + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "project_url", + "column_url", + "column_id", + "id", + "node_id", + "note", + "archived", + "creator", + "created_at", + "updated_at" + ] + }, + "repository": { + "$ref": "#/components/schemas/nullable-repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project_card", + "sender" + ] + }, + "webhook-project-card-edited": { + "title": "project_card edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "note": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "note" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_card": { + "$ref": "#/components/schemas/webhooks_project_card" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "project_card", + "sender" + ] + }, + "webhook-project-card-moved": { + "title": "project_card moved event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "moved" + ] + }, + "changes": { + "type": "object", + "properties": { + "column_id": { + "type": "object", + "properties": { + "from": { + "type": "integer" + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "column_id" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_card": { + "allOf": [ + { + "title": "Project Card", + "type": "object", + "properties": { + "after_id": { + "type": "integer", + "nullable": true + }, + "archived": { + "description": "Whether or not the card is archived", + "type": "boolean" + }, + "column_id": { + "type": "integer" + }, + "column_url": { + "type": "string", + "format": "uri" + }, + "content_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "id": { + "description": "The project card's ID", + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "note": { + "type": "string", + "nullable": true + }, + "project_url": { + "type": "string", + "format": "uri" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "project_url", + "column_url", + "column_id", + "id", + "node_id", + "note", + "archived", + "creator", + "created_at", + "updated_at" + ] + }, + { + "type": "object", + "properties": { + "after_id": { + "type": "number", + "nullable": true + }, + "archived": { + "type": "boolean" + }, + "column_id": { + "type": "integer" + }, + "column_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "creator": { + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "note": { + "type": "string", + "nullable": true + }, + "project_url": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "after_id" + ] + } + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project_card", + "sender" + ] + }, + "webhook-project-closed": { + "title": "project closed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "closed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project": { + "$ref": "#/components/schemas/webhooks_project" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project", + "sender" + ] + }, + "webhook-project-column-created": { + "title": "project_column created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_column": { + "$ref": "#/components/schemas/webhooks_project_column" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project_column" + ] + }, + "webhook-project-column-deleted": { + "title": "project_column deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_column": { + "$ref": "#/components/schemas/webhooks_project_column" + }, + "repository": { + "$ref": "#/components/schemas/nullable-repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project_column" + ] + }, + "webhook-project-column-edited": { + "title": "project_column edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "name": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_column": { + "$ref": "#/components/schemas/webhooks_project_column" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "project_column" + ] + }, + "webhook-project-column-moved": { + "title": "project_column moved event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "moved" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project_column": { + "$ref": "#/components/schemas/webhooks_project_column" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project_column", + "sender" + ] + }, + "webhook-project-created": { + "title": "project created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project": { + "$ref": "#/components/schemas/webhooks_project" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project", + "sender" + ] + }, + "webhook-project-deleted": { + "title": "project deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project": { + "$ref": "#/components/schemas/webhooks_project" + }, + "repository": { + "$ref": "#/components/schemas/nullable-repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project" + ] + }, + "webhook-project-edited": { + "title": "project edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes to the project if the action was `edited`.", + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the body if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "name": { + "type": "object", + "properties": { + "from": { + "description": "The changes to the project if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project": { + "$ref": "#/components/schemas/webhooks_project" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project" + ] + }, + "webhook-project-reopened": { + "title": "project reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "project": { + "$ref": "#/components/schemas/webhooks_project" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "project", + "sender" + ] + }, + "webhook-projects-v2-project-closed": { + "title": "Projects v2 Project Closed Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "closed" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2": { + "$ref": "#/components/schemas/projects-v2" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2", + "organization", + "sender" + ] + }, + "webhook-projects-v2-project-created": { + "description": "A project was created", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2": { + "$ref": "#/components/schemas/projects-v2" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2", + "organization", + "sender" + ] + }, + "webhook-projects-v2-project-deleted": { + "title": "Projects v2 Project Deleted Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2": { + "$ref": "#/components/schemas/projects-v2" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2", + "organization", + "sender" + ] + }, + "webhook-projects-v2-project-edited": { + "title": "Projects v2 Project Edited Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "description": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + }, + "to": { + "type": "string", + "nullable": true + } + } + }, + "public": { + "type": "object", + "properties": { + "from": { + "type": "boolean" + }, + "to": { + "type": "boolean" + } + } + }, + "short_description": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + }, + "to": { + "type": "string", + "nullable": true + } + } + }, + "title": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "to": { + "type": "string" + } + } + } + } + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2": { + "$ref": "#/components/schemas/projects-v2" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2", + "organization", + "sender", + "changes" + ] + }, + "webhook-projects-v2-item-archived": { + "title": "Projects v2 Item Archived Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "archived" + ] + }, + "changes": { + "$ref": "#/components/schemas/webhooks_project_changes" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_item": { + "$ref": "#/components/schemas/projects-v2-item" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_item", + "organization", + "sender", + "changes" + ] + }, + "webhook-projects-v2-item-converted": { + "title": "Projects v2 Item Converted Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "converted" + ] + }, + "changes": { + "type": "object", + "properties": { + "content_type": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + }, + "to": { + "type": "string" + } + } + } + } + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_item": { + "$ref": "#/components/schemas/projects-v2-item" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_item", + "organization", + "sender", + "changes" + ] + }, + "webhook-projects-v2-item-created": { + "title": "Projects v2 Item Created Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_item": { + "$ref": "#/components/schemas/projects-v2-item" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_item", + "organization", + "sender" + ] + }, + "webhook-projects-v2-item-deleted": { + "title": "Projects v2 Item Deleted Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_item": { + "$ref": "#/components/schemas/projects-v2-item" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_item", + "organization", + "sender" + ] + }, + "webhook-projects-v2-item-edited": { + "title": "Projects v2 Item Edited Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes made to the item may involve modifications in the item's fields and draft issue body.\nIt includes altered values for text, number, date, single select, and iteration fields, along with the GraphQL node ID of the changed field.", + "oneOf": [ + { + "type": "object", + "properties": { + "field_value": { + "type": "object", + "properties": { + "field_node_id": { + "type": "string" + }, + "field_type": { + "type": "string" + }, + "field_name": { + "type": "string" + }, + "project_number": { + "type": "integer" + }, + "from": { + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/projects-v2-single-select-option" + }, + { + "$ref": "#/components/schemas/projects-v2-iteration-setting" + } + ] + }, + "to": { + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/projects-v2-single-select-option" + }, + { + "$ref": "#/components/schemas/projects-v2-iteration-setting" + } + ] + } + } + } + }, + "required": [ + "field_value" + ] + }, + { + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + }, + "to": { + "type": "string", + "nullable": true + } + } + } + }, + "required": [ + "body" + ] + } + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_item": { + "$ref": "#/components/schemas/projects-v2-item" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_item", + "organization", + "sender" + ] + }, + "webhook-projects-v2-item-reordered": { + "title": "Projects v2 Item Reordered Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reordered" + ] + }, + "changes": { + "type": "object", + "properties": { + "previous_projects_v2_item_node_id": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + }, + "to": { + "type": "string", + "nullable": true + } + } + } + } + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_item": { + "$ref": "#/components/schemas/projects-v2-item" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_item", + "organization", + "sender", + "changes" + ] + }, + "webhook-projects-v2-item-restored": { + "title": "Projects v2 Item Restored Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "restored" + ] + }, + "changes": { + "$ref": "#/components/schemas/webhooks_project_changes" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_item": { + "$ref": "#/components/schemas/projects-v2-item" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_item", + "organization", + "sender", + "changes" + ] + }, + "webhook-projects-v2-project-reopened": { + "title": "Projects v2 Project Reopened Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2": { + "$ref": "#/components/schemas/projects-v2" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2", + "organization", + "sender" + ] + }, + "webhook-projects-v2-status-update-created": { + "title": "Projects v2 Status Update Created Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_status_update": { + "$ref": "#/components/schemas/projects-v2-status-update" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_status_update", + "organization", + "sender" + ] + }, + "webhook-projects-v2-status-update-deleted": { + "title": "Projects v2 Status Update Deleted Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_status_update": { + "$ref": "#/components/schemas/projects-v2-status-update" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_status_update", + "organization", + "sender" + ] + }, + "webhook-projects-v2-status-update-edited": { + "title": "Projects v2 Status Update Edited Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + }, + "to": { + "type": "string", + "nullable": true + } + } + }, + "status": { + "type": "object", + "properties": { + "from": { + "type": "string", + "enum": [ + "INACTIVE", + "ON_TRACK", + "AT_RISK", + "OFF_TRACK", + "COMPLETE" + ], + "nullable": true + }, + "to": { + "type": "string", + "enum": [ + "INACTIVE", + "ON_TRACK", + "AT_RISK", + "OFF_TRACK", + "COMPLETE" + ], + "nullable": true + } + } + }, + "start_date": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date", + "nullable": true + }, + "to": { + "type": "string", + "format": "date", + "nullable": true + } + } + }, + "target_date": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date", + "nullable": true + }, + "to": { + "type": "string", + "format": "date", + "nullable": true + } + } + } + } + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "projects_v2_status_update": { + "$ref": "#/components/schemas/projects-v2-status-update" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "projects_v2_status_update", + "organization", + "sender" + ] + }, + "webhook-public": { + "title": "public event", + "type": "object", + "properties": { + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "repository", + "sender" + ] + }, + "webhook-pull-request-assigned": { + "title": "pull_request assigned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "assigned" + ] + }, + "assignee": { + "$ref": "#/components/schemas/webhooks_user" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "assignee", + "repository", + "sender" + ] + }, + "webhook-pull-request-auto-merge-disabled": { + "title": "pull_request auto_merge_disabled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "auto_merge_disabled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "reason": { + "type": "string" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "reason", + "repository", + "sender" + ] + }, + "webhook-pull-request-auto-merge-enabled": { + "title": "pull_request auto_merge_enabled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "auto_merge_enabled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "reason": { + "type": "string" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-closed": { + "title": "pull_request closed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "closed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/pull-request-webhook" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-converted-to-draft": { + "title": "pull_request converted_to_draft event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "converted_to_draft" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/pull-request-webhook" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-demilestoned": { + "title": "pull_request demilestoned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "demilestoned" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "milestone": { + "$ref": "#/components/schemas/milestone" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/webhooks_pull_request_5" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository" + ] + }, + "webhook-pull-request-dequeued": { + "title": "pull_request dequeued event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "dequeued" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "reason": { + "type": "string", + "enum": [ + "UNKNOWN_REMOVAL_REASON", + "MANUAL", + "MERGE", + "MERGE_CONFLICT", + "CI_FAILURE", + "CI_TIMEOUT", + "ALREADY_MERGED", + "QUEUE_CLEARED", + "ROLL_BACK", + "BRANCH_PROTECTIONS", + "GIT_TREE_INVALID", + "INVALID_MERGE_COMMIT" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender", + "reason" + ] + }, + "webhook-pull-request-edited": { + "title": "pull_request edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes to the comment if the action was `edited`.", + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "sha": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "ref", + "sha" + ] + }, + "body": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the body if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "title": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the title if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/pull-request-webhook" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "number", + "pull_request", + "repository" + ] + }, + "webhook-pull-request-enqueued": { + "title": "pull_request enqueued event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "enqueued" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_discussions", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-labeled": { + "title": "pull_request labeled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "labeled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-locked": { + "title": "pull_request locked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "locked" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-milestoned": { + "title": "pull_request milestoned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "milestoned" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "milestone": { + "$ref": "#/components/schemas/milestone" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/webhooks_pull_request_5" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository" + ] + }, + "webhook-pull-request-opened": { + "title": "pull_request opened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "opened" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/pull-request-webhook" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-ready-for-review": { + "title": "pull_request ready_for_review event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "ready_for_review" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/pull-request-webhook" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-reopened": { + "title": "pull_request reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "$ref": "#/components/schemas/pull-request-webhook" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-review-comment-created": { + "title": "pull_request_review_comment created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "comment": { + "title": "Pull Request Review Comment", + "description": "The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself.", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "pull_request" + ] + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "The text of the comment.", + "type": "string" + }, + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "diff_hunk": { + "description": "The diff of the line that the comment refers to.", + "type": "string" + }, + "html_url": { + "description": "HTML URL for the pull request review comment.", + "type": "string", + "format": "uri" + }, + "id": { + "description": "The ID of the pull request review comment.", + "type": "integer" + }, + "in_reply_to_id": { + "description": "The comment ID to reply to.", + "type": "integer" + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer", + "nullable": true + }, + "node_id": { + "description": "The node ID of the pull request review comment.", + "type": "string" + }, + "original_commit_id": { + "description": "The SHA of the original commit to which the comment applies.", + "type": "string" + }, + "original_line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer", + "nullable": true + }, + "original_position": { + "description": "The index of the original line in the diff to which the comment applies.", + "type": "integer" + }, + "original_start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "path": { + "description": "The relative path of the file to which the comment applies.", + "type": "string" + }, + "position": { + "description": "The line index in the diff to which the comment applies.", + "type": "integer", + "nullable": true + }, + "pull_request_review_id": { + "description": "The ID of the pull request review to which the comment belongs.", + "type": "integer", + "nullable": true + }, + "pull_request_url": { + "description": "URL for the pull request that the review comment belongs to.", + "type": "string", + "format": "uri" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "enum": [ + "LEFT", + "RIGHT" + ] + }, + "start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "start_side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "nullable": true, + "enum": [ + "LEFT", + "RIGHT", + null + ], + "default": "RIGHT" + }, + "subject_type": { + "description": "The level at which the comment is targeted, can be a diff line or a file.", + "type": "string", + "enum": [ + "line", + "file" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the pull request review comment", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "pull_request_review_id", + "id", + "node_id", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "body", + "created_at", + "updated_at", + "html_url", + "pull_request_url", + "author_association", + "_links", + "start_line", + "original_start_line", + "original_line", + "line", + "start_side", + "side", + "reactions" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "comment", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-review-comment-deleted": { + "title": "pull_request_review_comment deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "comment": { + "$ref": "#/components/schemas/webhooks_review_comment" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "comment", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-review-comment-edited": { + "title": "pull_request_review_comment edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "$ref": "#/components/schemas/webhooks_changes" + }, + "comment": { + "$ref": "#/components/schemas/webhooks_review_comment" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "user_view_type": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "comment", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-review-dismissed": { + "title": "pull_request_review dismissed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "dismissed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Simple Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "draft", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "review": { + "description": "The review that was affected.", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "html", + "pull_request" + ] + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "The text of the review.", + "type": "string", + "nullable": true + }, + "commit_id": { + "description": "A commit SHA for the review.", + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the review", + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "pull_request_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "dismissed", + "approved", + "changes_requested" + ] + }, + "submitted_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "id", + "node_id", + "user", + "body", + "commit_id", + "submitted_at", + "state", + "html_url", + "pull_request_url", + "author_association", + "_links" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "review", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-review-edited": { + "title": "pull_request_review edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the body if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Simple Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "draft", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "review": { + "$ref": "#/components/schemas/webhooks_review" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "review", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-review-request-removed": { + "title": "pull_request review_request_removed event", + "oneOf": [ + { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "review_request_removed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "description": "The pull request number.", + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title.", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requested_reviewer": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "requested_reviewer", + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "review_request_removed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "description": "The pull request number.", + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requested_team": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "requested_team", + "action", + "number", + "pull_request", + "repository", + "sender" + ] + } + ] + }, + "webhook-pull-request-review-requested": { + "title": "pull_request review_requested event", + "oneOf": [ + { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "review_requested" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "description": "The pull request number.", + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requested_reviewer": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "requested_reviewer", + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "review_requested" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "description": "The pull request number.", + "type": "integer" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "requested_team": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "requested_team", + "action", + "number", + "pull_request", + "repository", + "sender" + ] + } + ] + }, + "webhook-pull-request-review-submitted": { + "title": "pull_request_review submitted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "submitted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Simple Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "draft", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "review": { + "$ref": "#/components/schemas/webhooks_review" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "review", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-review-thread-resolved": { + "title": "pull_request_review_thread resolved event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "resolved" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Simple Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "draft", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "thread": { + "type": "object", + "properties": { + "comments": { + "type": "array", + "items": { + "title": "Pull Request Review Comment", + "description": "The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself.", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "pull_request" + ] + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "The text of the comment.", + "type": "string" + }, + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "diff_hunk": { + "description": "The diff of the line that the comment refers to.", + "type": "string" + }, + "html_url": { + "description": "HTML URL for the pull request review comment.", + "type": "string", + "format": "uri" + }, + "id": { + "description": "The ID of the pull request review comment.", + "type": "integer" + }, + "in_reply_to_id": { + "description": "The comment ID to reply to.", + "type": "integer" + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer", + "nullable": true + }, + "node_id": { + "description": "The node ID of the pull request review comment.", + "type": "string" + }, + "original_commit_id": { + "description": "The SHA of the original commit to which the comment applies.", + "type": "string" + }, + "original_line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer", + "nullable": true + }, + "original_position": { + "description": "The index of the original line in the diff to which the comment applies.", + "type": "integer" + }, + "original_start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "path": { + "description": "The relative path of the file to which the comment applies.", + "type": "string" + }, + "position": { + "description": "The line index in the diff to which the comment applies.", + "type": "integer", + "nullable": true + }, + "pull_request_review_id": { + "description": "The ID of the pull request review to which the comment belongs.", + "type": "integer", + "nullable": true + }, + "pull_request_url": { + "description": "URL for the pull request that the review comment belongs to.", + "type": "string", + "format": "uri" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "enum": [ + "LEFT", + "RIGHT" + ] + }, + "start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "start_side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "nullable": true, + "enum": [ + "LEFT", + "RIGHT", + null + ], + "default": "RIGHT" + }, + "subject_type": { + "description": "The level at which the comment is targeted, can be a diff line or a file.", + "type": "string", + "enum": [ + "line", + "file" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the pull request review comment", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "pull_request_review_id", + "id", + "node_id", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "body", + "created_at", + "updated_at", + "html_url", + "pull_request_url", + "author_association", + "_links", + "start_line", + "original_start_line", + "original_line", + "line", + "start_side", + "side", + "reactions" + ] + } + }, + "node_id": { + "type": "string" + } + }, + "required": [ + "node_id", + "comments" + ] + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "action", + "thread", + "pull_request", + "repository" + ] + }, + "webhook-pull-request-review-thread-unresolved": { + "title": "pull_request_review_thread unresolved event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unresolved" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Simple Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string" + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "closed_at": { + "type": "string", + "nullable": true + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "draft", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "thread": { + "type": "object", + "properties": { + "comments": { + "type": "array", + "items": { + "title": "Pull Request Review Comment", + "description": "The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself.", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "pull_request" + ] + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "body": { + "description": "The text of the comment.", + "type": "string" + }, + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "diff_hunk": { + "description": "The diff of the line that the comment refers to.", + "type": "string" + }, + "html_url": { + "description": "HTML URL for the pull request review comment.", + "type": "string", + "format": "uri" + }, + "id": { + "description": "The ID of the pull request review comment.", + "type": "integer" + }, + "in_reply_to_id": { + "description": "The comment ID to reply to.", + "type": "integer" + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer", + "nullable": true + }, + "node_id": { + "description": "The node ID of the pull request review comment.", + "type": "string" + }, + "original_commit_id": { + "description": "The SHA of the original commit to which the comment applies.", + "type": "string" + }, + "original_line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "type": "integer" + }, + "original_position": { + "description": "The index of the original line in the diff to which the comment applies.", + "type": "integer" + }, + "original_start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "path": { + "description": "The relative path of the file to which the comment applies.", + "type": "string" + }, + "position": { + "description": "The line index in the diff to which the comment applies.", + "type": "integer", + "nullable": true + }, + "pull_request_review_id": { + "description": "The ID of the pull request review to which the comment belongs.", + "type": "integer", + "nullable": true + }, + "pull_request_url": { + "description": "URL for the pull request that the review comment belongs to.", + "type": "string", + "format": "uri" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "enum": [ + "LEFT", + "RIGHT" + ] + }, + "start_line": { + "description": "The first line of the range for a multi-line comment.", + "type": "integer", + "nullable": true + }, + "start_side": { + "description": "The side of the first line of the range for a multi-line comment.", + "type": "string", + "nullable": true, + "enum": [ + "LEFT", + "RIGHT", + null + ], + "default": "RIGHT" + }, + "subject_type": { + "description": "The level at which the comment is targeted, can be a diff line or a file.", + "type": "string", + "enum": [ + "line", + "file" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "description": "URL for the pull request review comment", + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "pull_request_review_id", + "id", + "node_id", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "body", + "created_at", + "updated_at", + "html_url", + "pull_request_url", + "author_association", + "_links", + "start_line", + "original_start_line", + "original_line", + "line", + "start_side", + "side", + "reactions" + ] + } + }, + "node_id": { + "type": "string" + } + }, + "required": [ + "node_id", + "comments" + ] + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + } + }, + "required": [ + "action", + "thread", + "pull_request", + "repository" + ] + }, + "webhook-pull-request-synchronize": { + "title": "pull_request synchronize event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "synchronize" + ] + }, + "after": { + "type": "string" + }, + "before": { + "type": "string" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit message title.", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "before", + "after", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-unassigned": { + "title": "pull_request unassigned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unassigned" + ] + }, + "assignee": { + "$ref": "#/components/schemas/webhooks_user_mannequin" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository" + ] + }, + "webhook-pull-request-unlabeled": { + "title": "pull_request unlabeled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unlabeled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "label": { + "$ref": "#/components/schemas/webhooks_label" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string", + "nullable": true + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit message title.", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization", + "Mannequin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-pull-request-unlocked": { + "title": "pull_request unlocked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unlocked" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pull_request": { + "title": "Pull Request", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "commits": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "issue": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comment": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "review_comments": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "statuses": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "issue", + "comments", + "review_comments", + "review_comment", + "commits", + "statuses" + ] + }, + "active_lock_reason": { + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "off-topic", + "too heated", + "spam", + null + ] + }, + "additions": { + "type": "integer" + }, + "assignee": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "assignees": { + "type": "array", + "items": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "author_association": { + "title": "AuthorAssociation", + "description": "How the author is associated with the repository.", + "type": "string", + "enum": [ + "COLLABORATOR", + "CONTRIBUTOR", + "FIRST_TIMER", + "FIRST_TIME_CONTRIBUTOR", + "MANNEQUIN", + "MEMBER", + "NONE", + "OWNER" + ] + }, + "auto_merge": { + "title": "PullRequestAutoMerge", + "description": "The status of auto merging a pull request.", + "type": "object", + "nullable": true, + "properties": { + "commit_message": { + "description": "Commit message for the merge commit.", + "type": "string", + "nullable": true + }, + "commit_title": { + "description": "Title for the merge commit message.", + "type": "string" + }, + "enabled_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "merge_method": { + "description": "The merge method to use.", + "type": "string", + "enum": [ + "merge", + "squash", + "rebase" + ] + } + }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ] + }, + "base": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "body": { + "type": "string", + "nullable": true + }, + "changed_files": { + "type": "integer" + }, + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "comments": { + "type": "integer" + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commits": { + "type": "integer" + }, + "commits_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "deletions": { + "type": "integer" + }, + "diff_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "type": "boolean" + }, + "head": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "nullable": true, + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merge_commit_message": { + "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "PR_TITLE", + "BLANK" + ] + }, + "merge_commit_title": { + "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).", + "type": "string", + "enum": [ + "PR_TITLE", + "MERGE_MESSAGE" + ] + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "squash_merge_commit_message": { + "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.", + "type": "string", + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] + }, + "squash_merge_commit_title": { + "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).", + "type": "string", + "enum": [ + "PR_TITLE", + "COMMIT_OR_PR_TITLE" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "use_squash_pr_title_as_default": { + "description": "Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.", + "type": "boolean", + "default": false + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sha": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "label", + "ref", + "sha", + "user", + "repo" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issue_url": { + "type": "string", + "format": "uri" + }, + "labels": { + "type": "array", + "items": { + "title": "Label", + "type": "object", + "properties": { + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer" + }, + "name": { + "description": "The name of the label.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "url": { + "description": "URL for the label", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description" + ] + } + }, + "locked": { + "type": "boolean" + }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "type": "boolean" + }, + "merge_commit_sha": { + "type": "string", + "nullable": true + }, + "mergeable": { + "type": "boolean", + "nullable": true + }, + "mergeable_state": { + "type": "string" + }, + "merged": { + "type": "boolean", + "nullable": true + }, + "merged_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "merged_by": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "nullable": true, + "properties": { + "closed_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "closed_issues": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "creator": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "due_on": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "state": { + "description": "The state of the milestone.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "title": { + "description": "The title of the milestone.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "labels_url", + "id", + "node_id", + "number", + "title", + "description", + "creator", + "open_issues", + "closed_issues", + "state", + "created_at", + "updated_at", + "due_on", + "closed_at" + ] + }, + "node_id": { + "type": "string" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "type": "integer" + }, + "patch_url": { + "type": "string", + "format": "uri" + }, + "rebaseable": { + "type": "boolean", + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + ] + } + }, + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", + "nullable": true, + "properties": { + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", + "type": "integer" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" + }, + "privacy": { + "type": "string", + "enum": [ + "open", + "closed", + "secret" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "slug": { + "type": "string" + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "id" + ] + } + }, + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments": { + "type": "integer" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "statuses_url": { + "type": "string", + "format": "uri" + }, + "title": { + "description": "The title of the pull request.", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + }, + "required": [ + "url", + "id", + "node_id", + "html_url", + "diff_url", + "patch_url", + "issue_url", + "number", + "state", + "locked", + "title", + "user", + "body", + "created_at", + "updated_at", + "closed_at", + "merged_at", + "merge_commit_sha", + "assignee", + "assignees", + "requested_reviewers", + "requested_teams", + "labels", + "milestone", + "commits_url", + "review_comments_url", + "review_comment_url", + "comments_url", + "statuses_url", + "head", + "base", + "_links", + "author_association", + "auto_merge", + "active_lock_reason", + "draft" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "number", + "pull_request", + "repository", + "sender" + ] + }, + "webhook-push": { + "title": "push event", + "type": "object", + "properties": { + "after": { + "description": "The SHA of the most recent commit on `ref` after the push.", + "type": "string" + }, + "base_ref": { + "$ref": "#/components/schemas/webhooks_nullable_string" + }, + "before": { + "description": "The SHA of the most recent commit on `ref` before the push.", + "type": "string" + }, + "commits": { + "description": "An array of commit objects describing the pushed commits. (Pushed commits are all commits that are included in the `compare` between the `before` commit and the `after` commit.) The array includes a maximum of 2048 commits. If necessary, you can use the [Commits API](https://docs.github.com/rest/commits) to fetch additional commits.", + "type": "array", + "items": { + "title": "Commit", + "type": "object", + "properties": { + "added": { + "description": "An array of files added in the commit. A maximum of 3000 changed files will be reported per commit.", + "type": "array", + "items": { + "type": "string" + } + }, + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "distinct": { + "description": "Whether this commit is distinct from any that have been pushed before.", + "type": "boolean" + }, + "id": { + "type": "string" + }, + "message": { + "description": "The commit message.", + "type": "string" + }, + "modified": { + "description": "An array of files modified by the commit. A maximum of 3000 changed files will be reported per commit.", + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "description": "An array of files removed in the commit. A maximum of 3000 changed files will be reported per commit.", + "type": "array", + "items": { + "type": "string" + } + }, + "timestamp": { + "description": "The ISO 8601 timestamp of the commit.", + "type": "string", + "format": "date-time" + }, + "tree_id": { + "type": "string" + }, + "url": { + "description": "URL that points to the commit API resource.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "tree_id", + "distinct", + "message", + "timestamp", + "url", + "author", + "committer" + ] + } + }, + "compare": { + "description": "URL that shows the changes in this `ref` update, from the `before` commit to the `after` commit. For a newly created `ref` that is directly based on the default branch, this is the comparison between the head of the default branch and the `after` commit. Otherwise, this shows all commits until the `after` commit.", + "type": "string" + }, + "created": { + "description": "Whether this push created the `ref`.", + "type": "boolean" + }, + "deleted": { + "description": "Whether this push deleted the `ref`.", + "type": "boolean" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "forced": { + "description": "Whether this push was a force push of the `ref`.", + "type": "boolean" + }, + "head_commit": { + "title": "Commit", + "type": "object", + "nullable": true, + "properties": { + "added": { + "description": "An array of files added in the commit.", + "type": "array", + "items": { + "type": "string" + } + }, + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "distinct": { + "description": "Whether this commit is distinct from any that have been pushed before.", + "type": "boolean" + }, + "id": { + "type": "string" + }, + "message": { + "description": "The commit message.", + "type": "string" + }, + "modified": { + "description": "An array of files modified by the commit.", + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "description": "An array of files removed in the commit.", + "type": "array", + "items": { + "type": "string" + } + }, + "timestamp": { + "description": "The ISO 8601 timestamp of the commit.", + "type": "string", + "format": "date-time" + }, + "tree_id": { + "type": "string" + }, + "url": { + "description": "URL that points to the commit API resource.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "tree_id", + "distinct", + "message", + "timestamp", + "url", + "author", + "committer" + ] + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "pusher": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "ref": { + "description": "The full git ref that was pushed. Example: `refs/heads/main` or `refs/tags/v3.14.1`.", + "type": "string" + }, + "repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "has_discussions": { + "description": "Whether discussions are enabled.", + "type": "boolean", + "default": false + }, + "has_pull_requests": { + "description": "Whether pull requests are enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "type": "boolean" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "has_discussions", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "ref", + "before", + "after", + "created", + "deleted", + "forced", + "base_ref", + "compare", + "commits", + "head_commit", + "repository", + "pusher" + ] + }, + "webhook-registry-package-published": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "published" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "registry_package": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "ecosystem": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id", + "node_id", + "avatar_url", + "gravatar_id", + "url", + "html_url", + "followers_url", + "following_url", + "gists_url", + "starred_url", + "subscriptions_url", + "organizations_url", + "repos_url", + "events_url", + "received_events_url", + "type", + "site_admin" + ] + }, + "package_type": { + "type": "string" + }, + "package_version": { + "type": "object", + "nullable": true, + "properties": { + "author": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id", + "node_id", + "avatar_url", + "gravatar_id", + "url", + "html_url", + "followers_url", + "following_url", + "gists_url", + "starred_url", + "subscriptions_url", + "organizations_url", + "repos_url", + "events_url", + "received_events_url", + "type", + "site_admin" + ] + }, + "body": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "body_html": { + "type": "string" + }, + "container_metadata": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "nullable": true + }, + "manifest": { + "type": "object", + "nullable": true + }, + "tag": { + "type": "object", + "properties": { + "digest": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + } + }, + "created_at": { + "type": "string" + }, + "description": { + "type": "string" + }, + "docker_metadata": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "installation_command": { + "type": "string" + }, + "manifest": { + "type": "string" + }, + "metadata": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "name": { + "type": "string" + }, + "npm_metadata": { + "type": "object", + "nullable": true, + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "npm_user": { + "type": "string" + }, + "author": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ], + "nullable": true + }, + "bugs": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ], + "nullable": true + }, + "dependencies": { + "type": "object" + }, + "dev_dependencies": { + "type": "object" + }, + "peer_dependencies": { + "type": "object" + }, + "optional_dependencies": { + "type": "object" + }, + "description": { + "type": "string" + }, + "dist": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ], + "nullable": true + }, + "git_head": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "license": { + "type": "string" + }, + "main": { + "type": "string" + }, + "repository": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ], + "nullable": true + }, + "scripts": { + "type": "object" + }, + "id": { + "type": "string" + }, + "node_version": { + "type": "string" + }, + "npm_version": { + "type": "string" + }, + "has_shrinkwrap": { + "type": "boolean" + }, + "maintainers": { + "type": "array", + "items": { + "type": "string" + } + }, + "contributors": { + "type": "array", + "items": { + "type": "string" + } + }, + "engines": { + "type": "object" + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + } + }, + "files": { + "type": "array", + "items": { + "type": "string" + } + }, + "bin": { + "type": "object" + }, + "man": { + "type": "object" + }, + "directories": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ], + "nullable": true + }, + "os": { + "type": "array", + "items": { + "type": "string" + } + }, + "cpu": { + "type": "array", + "items": { + "type": "string" + } + }, + "readme": { + "type": "string" + }, + "installation_command": { + "type": "string" + }, + "release_id": { + "type": "integer" + }, + "commit_oid": { + "type": "string" + }, + "published_via_actions": { + "type": "boolean" + }, + "deleted_by_id": { + "type": "integer" + } + } + }, + "nuget_metadata": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "id": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "integer" + } + ], + "nullable": true + }, + "name": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "commit": { + "type": "string" + }, + "type": { + "type": "string" + } + } + } + ] + } + } + } + }, + "package_files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "content_type": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "download_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "md5": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "sha1": { + "type": "string", + "nullable": true + }, + "sha256": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "state": { + "type": "string", + "nullable": true + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "download_url", + "id", + "name", + "sha256", + "sha1", + "md5", + "content_type", + "state", + "size", + "created_at", + "updated_at" + ] + } + }, + "package_url": { + "type": "string" + }, + "prerelease": { + "type": "boolean" + }, + "release": { + "type": "object", + "properties": { + "author": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + } + }, + "created_at": { + "type": "string" + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string", + "nullable": true + }, + "prerelease": { + "type": "boolean" + }, + "published_at": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "rubygems_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/webhook-rubygems-metadata" + } + }, + "summary": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "target_oid": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "id", + "version", + "name", + "description", + "summary", + "html_url", + "metadata", + "package_files", + "installation_command", + "package_url" + ] + }, + "registry": { + "type": "object", + "nullable": true, + "properties": { + "about_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "vendor": { + "type": "string" + } + } + }, + "updated_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "name", + "namespace", + "description", + "ecosystem", + "package_type", + "html_url", + "created_at", + "updated_at", + "owner", + "package_version", + "registry" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "registry_package", + "sender" + ] + }, + "webhook-registry-package-updated": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "updated" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "registry_package": { + "type": "object", + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "nullable": true + }, + "ecosystem": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id", + "node_id", + "avatar_url", + "gravatar_id", + "url", + "html_url", + "followers_url", + "following_url", + "gists_url", + "starred_url", + "subscriptions_url", + "organizations_url", + "repos_url", + "events_url", + "received_events_url", + "type", + "site_admin" + ] + }, + "package_type": { + "type": "string" + }, + "package_version": { + "type": "object", + "properties": { + "author": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id", + "node_id", + "avatar_url", + "gravatar_id", + "url", + "html_url", + "followers_url", + "following_url", + "gists_url", + "starred_url", + "subscriptions_url", + "organizations_url", + "repos_url", + "events_url", + "received_events_url", + "type", + "site_admin" + ] + }, + "body": { + "type": "string" + }, + "body_html": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "description": { + "type": "string" + }, + "docker_metadata": { + "type": "array", + "items": { + "type": "object", + "nullable": true, + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "installation_command": { + "type": "string" + }, + "manifest": { + "type": "string" + }, + "metadata": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "name": { + "type": "string" + }, + "package_files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "content_type": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "download_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "md5": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "sha1": { + "type": "string", + "nullable": true + }, + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "state": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + }, + "package_url": { + "type": "string" + }, + "prerelease": { + "type": "boolean" + }, + "release": { + "type": "object", + "properties": { + "author": { + "type": "object", + "properties": { + "avatar_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id", + "node_id", + "avatar_url", + "gravatar_id", + "url", + "html_url", + "followers_url", + "following_url", + "gists_url", + "starred_url", + "subscriptions_url", + "organizations_url", + "repos_url", + "events_url", + "received_events_url", + "type", + "site_admin" + ] + }, + "created_at": { + "type": "string" + }, + "draft": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "prerelease": { + "type": "boolean" + }, + "published_at": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "url", + "html_url", + "id", + "tag_name", + "target_commitish", + "name", + "draft", + "author", + "prerelease", + "created_at", + "published_at" + ] + }, + "rubygems_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/webhook-rubygems-metadata" + } + }, + "summary": { + "type": "string" + }, + "tag_name": { + "type": "string" + }, + "target_commitish": { + "type": "string" + }, + "target_oid": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "id", + "version", + "name", + "description", + "summary", + "body", + "body_html", + "html_url", + "target_commitish", + "target_oid", + "created_at", + "updated_at", + "metadata", + "package_files", + "author", + "installation_command", + "package_url" + ] + }, + "registry": { + "type": "object", + "nullable": true + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "namespace", + "description", + "ecosystem", + "package_type", + "html_url", + "created_at", + "updated_at", + "owner", + "package_version", + "registry" + ] + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "registry_package", + "sender" + ] + }, + "webhook-release-created": { + "title": "release created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "release": { + "$ref": "#/components/schemas/webhooks_release" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "release", + "repository", + "sender" + ] + }, + "webhook-release-deleted": { + "title": "release deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "release": { + "$ref": "#/components/schemas/webhooks_release" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "release", + "repository", + "sender" + ] + }, + "webhook-release-edited": { + "title": "release edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "body": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the body if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "name": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the name if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "tag_name": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the tag_name if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "make_latest": { + "type": "object", + "properties": { + "to": { + "description": "Whether this release was explicitly `edited` to be the latest.", + "type": "boolean" + } + }, + "required": [ + "to" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "release": { + "$ref": "#/components/schemas/webhooks_release" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "release", + "repository" + ] + }, + "webhook-release-prereleased": { + "title": "release prereleased event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "prereleased" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "release": { + "title": "Release", + "description": "The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object.", + "type": "object", + "required": [ + "assets", + "assets_url", + "author", + "body", + "created_at", + "draft", + "html_url", + "id", + "immutable", + "name", + "node_id", + "prerelease", + "published_at", + "tag_name", + "tarball_url", + "target_commitish", + "updated_at", + "upload_url", + "url", + "zipball_url" + ], + "properties": { + "assets": { + "type": "array", + "items": { + "title": "Release Asset", + "description": "Data related to a release.", + "type": "object", + "required": [ + "url", + "browser_download_url", + "id", + "node_id", + "name", + "label", + "state", + "digest", + "content_type", + "size", + "download_count", + "created_at", + "updated_at" + ], + "nullable": true, + "properties": { + "browser_download_url": { + "type": "string", + "format": "uri" + }, + "content_type": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "download_count": { + "type": "integer" + }, + "id": { + "type": "integer" + }, + "label": { + "type": "string", + "nullable": true + }, + "name": { + "description": "The file name of the asset.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "digest": { + "type": "string", + "nullable": true + }, + "state": { + "description": "State of the release asset.", + "type": "string", + "enum": [ + "uploaded" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "uploader": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + }, + "assets_url": { + "type": "string", + "format": "uri" + }, + "author": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "body": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "discussion_url": { + "type": "string", + "format": "uri" + }, + "draft": { + "description": "Whether the release is a draft or published", + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "immutable": { + "description": "Whether or not the release is immutable.", + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "prerelease": { + "description": "Whether the release is identified as a prerelease or a full release.", + "type": "boolean", + "enum": [ + true + ] + }, + "published_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ], + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "tag_name": { + "description": "The name of the tag.", + "type": "string" + }, + "tarball_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "target_commitish": { + "description": "Specifies the commitish value that determines where the Git tag is created from.", + "type": "string" + }, + "upload_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "zipball_url": { + "type": "string", + "nullable": true, + "format": "uri" + } + } + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "release", + "repository" + ] + }, + "webhook-release-published": { + "title": "release published event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "published" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "release": { + "$ref": "#/components/schemas/webhooks_release_1" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "release", + "repository" + ] + }, + "webhook-release-released": { + "title": "release released event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "released" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "release": { + "$ref": "#/components/schemas/webhooks_release" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "release", + "repository" + ] + }, + "webhook-release-unpublished": { + "title": "release unpublished event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unpublished" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "release": { + "$ref": "#/components/schemas/webhooks_release_1" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "release", + "repository" + ] + }, + "webhook-repository-advisory-published": { + "title": "Repository advisory published event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "published" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "repository_advisory": { + "$ref": "#/components/schemas/repository-advisory" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "repository_advisory" + ] + }, + "webhook-repository-advisory-reported": { + "title": "Repository advisory reported event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reported" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "repository_advisory": { + "$ref": "#/components/schemas/repository-advisory" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "repository_advisory" + ] + }, + "webhook-repository-archived": { + "title": "repository archived event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "archived" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-repository-created": { + "title": "repository created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-repository-deleted": { + "title": "repository deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-repository-dispatch-sample": { + "title": "repository_dispatch event", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The `event_type` that was specified in the `POST /repos/{owner}/{repo}/dispatches` request body." + }, + "branch": { + "type": "string" + }, + "client_payload": { + "type": "object", + "nullable": true, + "additionalProperties": true, + "description": "The `client_payload` that was specified in the `POST /repos/{owner}/{repo}/dispatches` request body." + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "branch", + "client_payload", + "repository", + "sender", + "installation" + ] + }, + "webhook-repository-edited": { + "title": "repository edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "default_branch": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "description": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + } + }, + "required": [ + "from" + ] + }, + "homepage": { + "type": "object", + "properties": { + "from": { + "type": "string", + "nullable": true + } + }, + "required": [ + "from" + ] + }, + "topics": { + "type": "object", + "properties": { + "from": { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } + } + } + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "repository", + "sender" + ] + }, + "webhook-repository-import": { + "title": "repository_import event", + "type": "object", + "properties": { + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "status": { + "type": "string", + "enum": [ + "success", + "cancelled", + "failure" + ] + } + }, + "required": [ + "status", + "repository", + "sender" + ] + }, + "webhook-repository-privatized": { + "title": "repository privatized event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "privatized" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-repository-publicized": { + "title": "repository publicized event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "publicized" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-repository-renamed": { + "title": "repository renamed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "renamed" + ] + }, + "changes": { + "type": "object", + "properties": { + "repository": { + "type": "object", + "properties": { + "name": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "name" + ] + } + }, + "required": [ + "repository" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "repository", + "sender" + ] + }, + "webhook-repository-ruleset-created": { + "title": "repository ruleset created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "repository_ruleset": { + "$ref": "#/components/schemas/repository-ruleset" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository_ruleset", + "sender" + ] + }, + "webhook-repository-ruleset-deleted": { + "title": "repository ruleset deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "repository_ruleset": { + "$ref": "#/components/schemas/repository-ruleset" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository_ruleset", + "sender" + ] + }, + "webhook-repository-ruleset-edited": { + "title": "repository ruleset edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "repository_ruleset": { + "$ref": "#/components/schemas/repository-ruleset" + }, + "changes": { + "type": "object", + "properties": { + "name": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + }, + "enforcement": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + }, + "conditions": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-ruleset-conditions" + } + }, + "deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-ruleset-conditions" + } + }, + "updated": { + "type": "array", + "items": { + "type": "object", + "properties": { + "condition": { + "$ref": "#/components/schemas/repository-ruleset-conditions" + }, + "changes": { + "type": "object", + "properties": { + "condition_type": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + }, + "target": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + }, + "include": { + "type": "object", + "properties": { + "from": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "exclude": { + "type": "object", + "properties": { + "from": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "rules": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-rule" + } + }, + "deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-rule" + } + }, + "updated": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rule": { + "$ref": "#/components/schemas/repository-rule" + }, + "changes": { + "type": "object", + "properties": { + "configuration": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + }, + "rule_type": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + }, + "pattern": { + "type": "object", + "properties": { + "from": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository_ruleset", + "sender" + ] + }, + "webhook-repository-transferred": { + "title": "repository transferred event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "transferred" + ] + }, + "changes": { + "type": "object", + "properties": { + "owner": { + "type": "object", + "properties": { + "from": { + "type": "object", + "properties": { + "organization": { + "title": "Organization", + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "issues_url": { + "type": "string", + "format": "uri" + }, + "login": { + "type": "string" + }, + "members_url": { + "type": "string", + "format": "uri-template" + }, + "node_id": { + "type": "string" + }, + "public_members_url": { + "type": "string", + "format": "uri-template" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "login", + "id", + "node_id", + "url", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description" + ] + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + } + } + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "owner" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "changes", + "repository", + "sender" + ] + }, + "webhook-repository-unarchived": { + "title": "repository unarchived event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unarchived" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-repository-vulnerability-alert-create": { + "title": "repository_vulnerability_alert create event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "create" + ] + }, + "alert": { + "$ref": "#/components/schemas/webhooks_alert" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-repository-vulnerability-alert-dismiss": { + "title": "repository_vulnerability_alert dismiss event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "dismiss" + ] + }, + "alert": { + "title": "Repository Vulnerability Alert Alert", + "description": "The security alert of the vulnerable dependency.", + "type": "object", + "required": [ + "affected_package_name", + "affected_range", + "created_at", + "dismiss_reason", + "dismissed_at", + "dismisser", + "external_identifier", + "external_reference", + "ghsa_id", + "id", + "node_id", + "number", + "severity", + "state" + ], + "properties": { + "affected_package_name": { + "type": "string" + }, + "affected_range": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "dismiss_comment": { + "type": "string", + "nullable": true + }, + "dismiss_reason": { + "type": "string" + }, + "dismissed_at": { + "type": "string" + }, + "dismisser": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "external_identifier": { + "type": "string" + }, + "external_reference": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "fix_reason": { + "type": "string" + }, + "fixed_at": { + "type": "string", + "format": "date-time" + }, + "fixed_in": { + "type": "string" + }, + "ghsa_id": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "severity": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "dismissed" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-repository-vulnerability-alert-reopen": { + "title": "repository_vulnerability_alert reopen event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopen" + ] + }, + "alert": { + "$ref": "#/components/schemas/webhooks_alert" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-repository-vulnerability-alert-resolve": { + "title": "repository_vulnerability_alert resolve event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "resolve" + ] + }, + "alert": { + "title": "Repository Vulnerability Alert Alert", + "description": "The security alert of the vulnerable dependency.", + "type": "object", + "required": [ + "affected_package_name", + "affected_range", + "created_at", + "external_identifier", + "external_reference", + "ghsa_id", + "id", + "node_id", + "number", + "severity", + "state" + ], + "properties": { + "affected_package_name": { + "type": "string" + }, + "affected_range": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "dismiss_reason": { + "type": "string" + }, + "dismissed_at": { + "type": "string" + }, + "dismisser": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "external_identifier": { + "type": "string" + }, + "external_reference": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "fix_reason": { + "type": "string" + }, + "fixed_at": { + "type": "string", + "format": "date-time" + }, + "fixed_in": { + "type": "string" + }, + "ghsa_id": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "severity": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "fixed", + "open" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository", + "sender" + ] + }, + "webhook-secret-scanning-alert-assigned": { + "title": "secret_scanning_alert assigned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "assigned" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository" + ] + }, + "webhook-secret-scanning-alert-created": { + "title": "secret_scanning_alert created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository" + ] + }, + "webhook-secret-scanning-alert-location-created": { + "title": "Secret Scanning Alert Location Created Event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "location": { + "$ref": "#/components/schemas/secret-scanning-location" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "location", + "alert", + "repository", + "sender" + ] + }, + "webhook-secret-scanning-alert-location-created-form-encoded": { + "title": "Secret Scanning Alert Location Created Event", + "type": "object", + "properties": { + "payload": { + "description": "A URL-encoded string of the secret_scanning_alert_location.created JSON payload. The decoded payload is a JSON object.", + "type": "string" + } + }, + "required": [ + "payload" + ] + }, + "webhook-secret-scanning-alert-publicly-leaked": { + "title": "secret_scanning_alert publicly leaked event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "publicly_leaked" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository" + ] + }, + "webhook-secret-scanning-alert-reopened": { + "title": "secret_scanning_alert reopened event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "reopened" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository" + ] + }, + "webhook-secret-scanning-alert-resolved": { + "title": "secret_scanning_alert resolved event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "resolved" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository" + ] + }, + "webhook-secret-scanning-alert-unassigned": { + "title": "secret_scanning_alert unassigned event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "unassigned" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository" + ] + }, + "webhook-secret-scanning-alert-validated": { + "title": "secret_scanning_alert validated event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "validated" + ] + }, + "alert": { + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "alert", + "repository" + ] + }, + "webhook-secret-scanning-scan-completed": { + "title": "secret_scanning_scan completed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "completed" + ] + }, + "type": { + "type": "string", + "description": "What type of scan was completed", + "enum": [ + "backfill", + "custom-pattern-backfill", + "pattern-version-backfill" + ] + }, + "source": { + "type": "string", + "description": "What type of content was scanned", + "enum": [ + "git", + "issues", + "pull-requests", + "discussions", + "wiki" + ] + }, + "started_at": { + "type": "string", + "format": "date-time", + "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "completed_at": { + "type": "string", + "format": "date-time", + "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "secret_types": { + "type": "array", + "description": "List of patterns that were updated. This will be empty for normal backfill scans or custom pattern updates", + "items": { + "type": "string" + }, + "nullable": true + }, + "custom_pattern_name": { + "type": "string", + "description": "If the scan was triggered by a custom pattern update, this will be the name of the pattern that was updated", + "nullable": true + }, + "custom_pattern_scope": { + "type": "string", + "description": "If the scan was triggered by a custom pattern update, this will be the scope of the pattern that was updated", + "enum": [ + "repository", + "organization", + "enterprise" + ], + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "source", + "type", + "started_at", + "completed_at" + ] + }, + "webhook-security-advisory-published": { + "title": "security_advisory published event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "published" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "security_advisory": { + "$ref": "#/components/schemas/webhooks_security_advisory" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "security_advisory" + ] + }, + "webhook-security-advisory-updated": { + "title": "security_advisory updated event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "updated" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "security_advisory": { + "$ref": "#/components/schemas/webhooks_security_advisory" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "security_advisory" + ] + }, + "webhook-security-advisory-withdrawn": { + "title": "security_advisory withdrawn event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "withdrawn" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "security_advisory": { + "description": "The details of the security advisory, including summary, description, and severity.", + "type": "object", + "properties": { + "cvss": { + "type": "object", + "properties": { + "score": { + "type": "number" + }, + "vector_string": { + "type": "string", + "nullable": true + } + }, + "required": [ + "vector_string", + "score" + ] + }, + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" + }, + "cwes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cwe_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "cwe_id", + "name" + ] + } + }, + "description": { + "type": "string" + }, + "ghsa_id": { + "type": "string" + }, + "identifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "type" + ] + } + }, + "published_at": { + "type": "string" + }, + "references": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" + ] + } + }, + "severity": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "vulnerabilities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "first_patched_version": { + "type": "object", + "nullable": true, + "properties": { + "identifier": { + "type": "string" + } + }, + "required": [ + "identifier" + ] + }, + "package": { + "type": "object", + "properties": { + "ecosystem": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "ecosystem", + "name" + ] + }, + "severity": { + "type": "string" + }, + "vulnerable_version_range": { + "type": "string" + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ] + } + }, + "withdrawn_at": { + "type": "string" + } + }, + "required": [ + "cvss", + "cwes", + "ghsa_id", + "summary", + "description", + "severity", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at", + "vulnerabilities" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "security_advisory" + ] + }, + "webhook-security-and-analysis": { + "title": "security_and_analysis event", + "type": "object", + "properties": { + "changes": { + "type": "object", + "properties": { + "from": { + "type": "object", + "properties": { + "security_and_analysis": { + "$ref": "#/components/schemas/security-and-analysis" + } + } + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/full-repository" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "changes", + "repository" + ] + }, + "webhook-sponsorship-cancelled": { + "title": "sponsorship cancelled event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "cancelled" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "sponsorship": { + "$ref": "#/components/schemas/webhooks_sponsorship" + } + }, + "required": [ + "action", + "sponsorship", + "sender" + ] + }, + "webhook-sponsorship-created": { + "title": "sponsorship created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "sponsorship": { + "$ref": "#/components/schemas/webhooks_sponsorship" + } + }, + "required": [ + "action", + "sponsorship", + "sender" + ] + }, + "webhook-sponsorship-edited": { + "title": "sponsorship edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "type": "object", + "properties": { + "privacy_level": { + "type": "object", + "properties": { + "from": { + "description": "The `edited` event types include the details about the change when someone edits a sponsorship to change the privacy.", + "type": "string" + } + }, + "required": [ + "from" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "sponsorship": { + "$ref": "#/components/schemas/webhooks_sponsorship" + } + }, + "required": [ + "action", + "changes", + "sponsorship", + "sender" + ] + }, + "webhook-sponsorship-pending-cancellation": { + "title": "sponsorship pending_cancellation event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "pending_cancellation" + ] + }, + "effective_date": { + "$ref": "#/components/schemas/webhooks_effective_date" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "sponsorship": { + "$ref": "#/components/schemas/webhooks_sponsorship" + } + }, + "required": [ + "action", + "sponsorship", + "sender" + ] + }, + "webhook-sponsorship-pending-tier-change": { + "title": "sponsorship pending_tier_change event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "pending_tier_change" + ] + }, + "changes": { + "$ref": "#/components/schemas/webhooks_changes_8" + }, + "effective_date": { + "$ref": "#/components/schemas/webhooks_effective_date" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "sponsorship": { + "$ref": "#/components/schemas/webhooks_sponsorship" + } + }, + "required": [ + "action", + "changes", + "sponsorship", + "sender" + ] + }, + "webhook-sponsorship-tier-changed": { + "title": "sponsorship tier_changed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "tier_changed" + ] + }, + "changes": { + "$ref": "#/components/schemas/webhooks_changes_8" + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "sponsorship": { + "$ref": "#/components/schemas/webhooks_sponsorship" + } + }, + "required": [ + "action", + "changes", + "sponsorship", + "sender" + ] + }, + "webhook-star-created": { + "title": "star created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "starred_at": { + "description": "The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action.", + "type": "string", + "nullable": true + } + }, + "required": [ + "action", + "starred_at", + "repository", + "sender" + ] + }, + "webhook-star-deleted": { + "title": "star deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "starred_at": { + "description": "The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action.", + "nullable": true + } + }, + "required": [ + "action", + "starred_at", + "repository", + "sender" + ] + }, + "webhook-status": { + "title": "status event", + "type": "object", + "properties": { + "avatar_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "branches": { + "description": "An array of branch objects containing the status' SHA. Each branch contains the given SHA, but the SHA may or may not be the head of the branch. The array includes a maximum of 10 branches.", + "type": "array", + "items": { + "type": "object", + "properties": { + "commit": { + "type": "object", + "properties": { + "sha": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "sha", + "url" + ] + }, + "name": { + "type": "string" + }, + "protected": { + "type": "boolean" + } + }, + "required": [ + "name", + "commit", + "protected" + ] + } + }, + "commit": { + "type": "object", + "properties": { + "author": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "comments_url": { + "type": "string", + "format": "uri" + }, + "commit": { + "type": "object", + "properties": { + "author": { + "allOf": [ + { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + { + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "date" + ] + } + ] + }, + "comment_count": { + "type": "integer" + }, + "committer": { + "allOf": [ + { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + { + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "date" + ] + } + ] + }, + "message": { + "type": "string" + }, + "tree": { + "type": "object", + "properties": { + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "verification": { + "type": "object", + "properties": { + "payload": { + "type": "string", + "nullable": true + }, + "reason": { + "type": "string", + "enum": [ + "expired_key", + "not_signing_key", + "gpgverify_error", + "gpgverify_unavailable", + "unsigned", + "unknown_signature_type", + "no_user", + "unverified_email", + "bad_email", + "unknown_key", + "malformed_signature", + "invalid", + "valid", + "bad_cert", + "ocsp_pending" + ] + }, + "signature": { + "type": "string", + "nullable": true + }, + "verified": { + "type": "boolean" + }, + "verified_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "verified", + "reason", + "signature", + "payload", + "verified_at" + ] + } + }, + "required": [ + "author", + "committer", + "message", + "tree", + "url", + "comment_count", + "verification" + ] + }, + "committer": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "node_id": { + "type": "string" + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "html_url": { + "type": "string", + "format": "uri" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "url", + "html_url" + ] + } + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "sha", + "node_id", + "commit", + "url", + "html_url", + "comments_url", + "author", + "committer", + "parents" + ] + }, + "context": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "description": { + "description": "The optional human-readable description added to the status.", + "type": "string", + "nullable": true + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "id": { + "description": "The unique identifier of the status.", + "type": "integer" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "name": { + "type": "string" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "sha": { + "description": "The Commit SHA.", + "type": "string" + }, + "state": { + "description": "The new state. Can be `pending`, `success`, `failure`, or `error`.", + "type": "string", + "enum": [ + "pending", + "success", + "failure", + "error" + ] + }, + "target_url": { + "description": "The optional link added to the status.", + "type": "string", + "nullable": true + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "sha", + "name", + "target_url", + "context", + "description", + "state", + "commit", + "branches", + "created_at", + "updated_at", + "repository", + "sender" + ] + }, + "webhook-sub-issues-parent-issue-added": { + "title": "parent issue added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "parent_issue_added" + ] + }, + "parent_issue_id": { + "description": "The ID of the parent issue.", + "type": "number" + }, + "parent_issue": { + "$ref": "#/components/schemas/issue" + }, + "parent_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "sub_issue_id": { + "description": "The ID of the sub-issue.", + "type": "number" + }, + "sub_issue": { + "$ref": "#/components/schemas/issue" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "parent_issue_id", + "parent_issue", + "parent_issue_repo", + "sub_issue_id", + "sub_issue" + ] + }, + "webhook-sub-issues-parent-issue-removed": { + "title": "parent issue removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "parent_issue_removed" + ] + }, + "parent_issue_id": { + "description": "The ID of the parent issue.", + "type": "number" + }, + "parent_issue": { + "$ref": "#/components/schemas/issue" + }, + "parent_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "sub_issue_id": { + "description": "The ID of the sub-issue.", + "type": "number" + }, + "sub_issue": { + "$ref": "#/components/schemas/issue" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "parent_issue_id", + "parent_issue", + "parent_issue_repo", + "sub_issue_id", + "sub_issue" + ] + }, + "webhook-sub-issues-sub-issue-added": { + "title": "sub-issue added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "sub_issue_added" + ] + }, + "sub_issue_id": { + "description": "The ID of the sub-issue.", + "type": "number" + }, + "sub_issue": { + "$ref": "#/components/schemas/issue" + }, + "sub_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "parent_issue_id": { + "description": "The ID of the parent issue.", + "type": "number" + }, + "parent_issue": { + "$ref": "#/components/schemas/issue" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "sub_issue_id", + "sub_issue", + "sub_issue_repo", + "parent_issue_id", + "parent_issue" + ] + }, + "webhook-sub-issues-sub-issue-removed": { + "title": "sub-issue removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "sub_issue_removed" + ] + }, + "sub_issue_id": { + "description": "The ID of the sub-issue.", + "type": "number" + }, + "sub_issue": { + "$ref": "#/components/schemas/issue" + }, + "sub_issue_repo": { + "$ref": "#/components/schemas/repository" + }, + "parent_issue_id": { + "description": "The ID of the parent issue.", + "type": "number" + }, + "parent_issue": { + "$ref": "#/components/schemas/issue" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "sub_issue_id", + "sub_issue", + "sub_issue_repo", + "parent_issue_id", + "parent_issue" + ] + }, + "webhook-team-add": { + "title": "team_add event", + "type": "object", + "properties": { + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "team": { + "$ref": "#/components/schemas/webhooks_team_1" + } + }, + "required": [ + "team", + "repository", + "sender" + ] + }, + "webhook-team-added-to-repository": { + "title": "team added_to_repository event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "added_to_repository" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "team": { + "$ref": "#/components/schemas/webhooks_team_1" + } + }, + "required": [ + "action", + "team", + "organization" + ] + }, + "webhook-team-created": { + "title": "team created event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "created" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "team": { + "$ref": "#/components/schemas/webhooks_team_1" + } + }, + "required": [ + "action", + "team", + "organization", + "sender" + ] + }, + "webhook-team-deleted": { + "title": "team deleted event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "deleted" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "team": { + "$ref": "#/components/schemas/webhooks_team_1" + } + }, + "required": [ + "action", + "team", + "organization" + ] + }, + "webhook-team-edited": { + "title": "team edited event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "edited" + ] + }, + "changes": { + "description": "The changes to the team if the action was `edited`.", + "type": "object", + "properties": { + "description": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the description if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "name": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the name if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "privacy": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the team's privacy if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "notification_setting": { + "type": "object", + "properties": { + "from": { + "description": "The previous version of the team's notification setting if the action was `edited`.", + "type": "string" + } + }, + "required": [ + "from" + ] + }, + "repository": { + "type": "object", + "properties": { + "permissions": { + "type": "object", + "properties": { + "from": { + "type": "object", + "properties": { + "admin": { + "description": "The previous version of the team member's `admin` permission on a repository, if the action was `edited`.", + "type": "boolean" + }, + "pull": { + "description": "The previous version of the team member's `pull` permission on a repository, if the action was `edited`.", + "type": "boolean" + }, + "push": { + "description": "The previous version of the team member's `push` permission on a repository, if the action was `edited`.", + "type": "boolean" + } + } + } + }, + "required": [ + "from" + ] + } + }, + "required": [ + "permissions" + ] + } + } + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "team": { + "$ref": "#/components/schemas/webhooks_team_1" + } + }, + "required": [ + "action", + "changes", + "team", + "organization", + "sender" + ] + }, + "webhook-team-removed-from-repository": { + "title": "team removed_from_repository event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "removed_from_repository" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "allow_auto_merge": { + "description": "Whether to allow auto-merge for pull requests.", + "type": "boolean", + "default": false + }, + "allow_forking": { + "description": "Whether to allow private forks", + "type": "boolean" + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "type": "boolean", + "default": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "type": "boolean", + "default": true + }, + "allow_update_branch": { + "type": "boolean" + }, + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "archived": { + "description": "Whether the repository is archived.", + "type": "boolean", + "default": false + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "clone_url": { + "type": "string", + "format": "uri" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "created_at": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "custom_properties": { + "type": "object", + "description": "The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.", + "additionalProperties": true + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string" + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "type": "boolean", + "default": false + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "disabled": { + "description": "Returns whether or not this repository is disabled.", + "type": "boolean" + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks": { + "type": "integer" + }, + "forks_count": { + "type": "integer" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "type": "boolean", + "default": true + }, + "has_issues": { + "description": "Whether issues are enabled.", + "type": "boolean", + "default": true + }, + "has_pages": { + "type": "boolean" + }, + "has_projects": { + "description": "Whether projects are enabled.", + "type": "boolean", + "default": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "type": "boolean", + "default": true + }, + "homepage": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "format": "int64" + }, + "is_template": { + "type": "boolean" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "language": { + "type": "string", + "nullable": true + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "license": { + "title": "License", + "type": "object", + "nullable": true, + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri" + } + }, + "required": [ + "key", + "name", + "spdx_id", + "url", + "node_id" + ] + }, + "master_branch": { + "type": "string" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "mirror_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "open_issues": { + "type": "integer" + }, + "open_issues_count": { + "type": "integer" + }, + "organization": { + "type": "string" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "public": { + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "pushed_at": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "role_name": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer" + }, + "ssh_url": { + "type": "string" + }, + "stargazers": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "svn_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "visibility": { + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] + }, + "watchers": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "node_id", + "name", + "full_name", + "private", + "owner", + "html_url", + "description", + "fork", + "url", + "forks_url", + "keys_url", + "collaborators_url", + "teams_url", + "hooks_url", + "issue_events_url", + "events_url", + "assignees_url", + "branches_url", + "tags_url", + "blobs_url", + "git_tags_url", + "git_refs_url", + "trees_url", + "statuses_url", + "languages_url", + "stargazers_url", + "contributors_url", + "subscribers_url", + "subscription_url", + "commits_url", + "git_commits_url", + "comments_url", + "issue_comment_url", + "contents_url", + "compare_url", + "merges_url", + "archive_url", + "downloads_url", + "issues_url", + "pulls_url", + "milestones_url", + "notifications_url", + "labels_url", + "releases_url", + "deployments_url", + "created_at", + "updated_at", + "pushed_at", + "git_url", + "ssh_url", + "clone_url", + "svn_url", + "homepage", + "size", + "stargazers_count", + "watchers_count", + "language", + "has_issues", + "has_projects", + "has_downloads", + "has_wiki", + "has_pages", + "forks_count", + "mirror_url", + "archived", + "open_issues_count", + "license", + "forks", + "open_issues", + "watchers", + "default_branch", + "topics", + "visibility" + ] + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "team": { + "$ref": "#/components/schemas/webhooks_team_1" + } + }, + "required": [ + "action", + "team", + "organization", + "sender" + ] + }, + "webhook-watch-started": { + "title": "watch started event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "started" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "repository", + "sender" + ] + }, + "webhook-workflow-dispatch": { + "title": "workflow_dispatch event", + "type": "object", + "properties": { + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "inputs": { + "type": "object", + "nullable": true, + "additionalProperties": true + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "ref": { + "type": "string" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow": { + "type": "string" + } + }, + "required": [ + "inputs", + "ref", + "repository", + "sender", + "workflow" + ] + }, + "webhook-workflow-job-completed": { + "title": "workflow_job completed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "completed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow_job": { + "allOf": [ + { + "title": "Workflow Job", + "description": "The workflow job. Many `workflow_job` keys, such as `head_sha`, `conclusion`, and `started_at` are the same as those in a [`check_run`](#check_run) object.", + "type": "object", + "properties": { + "check_run_url": { + "type": "string", + "format": "uri" + }, + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + null, + "skipped", + "cancelled", + "action_required", + "neutral", + "timed_out" + ] + }, + "created_at": { + "description": "The time that the job created.", + "type": "string" + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels": { + "description": "Custom labels for the job. Specified by the [`\"runs-on\"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_id": { + "type": "number" + }, + "run_url": { + "type": "string", + "format": "uri" + }, + "runner_group_id": { + "description": "The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "integer", + "nullable": true + }, + "runner_group_name": { + "description": "The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "string", + "nullable": true + }, + "runner_id": { + "description": "The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "integer", + "nullable": true + }, + "runner_name": { + "description": "The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "string", + "nullable": true + }, + "started_at": { + "type": "string" + }, + "status": { + "description": "The current status of the job. Can be `queued`, `in_progress`, `waiting`, or `completed`.", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting" + ] + }, + "head_branch": { + "type": "string", + "description": "The name of the current branch.", + "nullable": true + }, + "workflow_name": { + "type": "string", + "description": "The name of the workflow.", + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "title": "Workflow Step", + "type": "object", + "properties": { + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "failure", + "skipped", + "success", + "cancelled", + null + ] + }, + "name": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "started_at": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "queued" + ] + } + }, + "required": [ + "name", + "status", + "conclusion", + "number", + "started_at", + "completed_at" + ] + } + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "run_id", + "run_url", + "run_attempt", + "node_id", + "head_sha", + "url", + "html_url", + "status", + "conclusion", + "started_at", + "completed_at", + "name", + "steps", + "check_run_url", + "labels", + "runner_id", + "runner_name", + "runner_group_id", + "runner_group_name", + "workflow_name", + "head_branch", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "check_run_url": { + "type": "string" + }, + "completed_at": { + "type": "string" + }, + "conclusion": { + "type": "string", + "enum": [ + "success", + "failure", + "skipped", + "cancelled", + "action_required", + "neutral", + "timed_out" + ] + }, + "created_at": { + "description": "The time that the job created.", + "type": "string" + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "type": "string", + "nullable": true + } + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_id": { + "type": "integer" + }, + "run_url": { + "type": "string" + }, + "runner_group_id": { + "type": "number", + "nullable": true + }, + "runner_group_name": { + "type": "string", + "nullable": true + }, + "runner_id": { + "type": "number", + "nullable": true + }, + "runner_name": { + "type": "string", + "nullable": true + }, + "started_at": { + "type": "string" + }, + "status": { + "type": "string" + }, + "head_branch": { + "type": "string", + "description": "The name of the current branch.", + "nullable": true + }, + "workflow_name": { + "type": "string", + "description": "The name of the workflow.", + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "type": "object", + "nullable": true + } + }, + "url": { + "type": "string" + } + }, + "required": [ + "conclusion" + ] + } + ] + }, + "deployment": { + "$ref": "#/components/schemas/deployment" + } + }, + "required": [ + "action", + "repository", + "sender", + "workflow_job" + ] + }, + "webhook-workflow-job-in-progress": { + "title": "workflow_job in_progress event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "in_progress" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow_job": { + "allOf": [ + { + "title": "Workflow Job", + "description": "The workflow job. Many `workflow_job` keys, such as `head_sha`, `conclusion`, and `started_at` are the same as those in a [`check_run`](#check_run) object.", + "type": "object", + "properties": { + "check_run_url": { + "type": "string", + "format": "uri" + }, + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + null, + "cancelled", + "neutral" + ] + }, + "created_at": { + "description": "The time that the job created.", + "type": "string" + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels": { + "description": "Custom labels for the job. Specified by the [`\"runs-on\"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_id": { + "type": "number" + }, + "run_url": { + "type": "string", + "format": "uri" + }, + "runner_group_id": { + "description": "The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "integer", + "nullable": true + }, + "runner_group_name": { + "description": "The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "string", + "nullable": true + }, + "runner_id": { + "description": "The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "integer", + "nullable": true + }, + "runner_name": { + "description": "The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`.", + "type": "string", + "nullable": true + }, + "started_at": { + "type": "string" + }, + "status": { + "description": "The current status of the job. Can be `queued`, `in_progress`, or `completed`.", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed" + ] + }, + "head_branch": { + "type": "string", + "description": "The name of the current branch.", + "nullable": true + }, + "workflow_name": { + "type": "string", + "description": "The name of the workflow.", + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "title": "Workflow Step", + "type": "object", + "properties": { + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "failure", + "skipped", + "success", + null, + "cancelled" + ] + }, + "name": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "started_at": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "queued", + "pending" + ] + } + }, + "required": [ + "name", + "status", + "conclusion", + "number", + "started_at", + "completed_at" + ] + } + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "run_id", + "run_url", + "run_attempt", + "node_id", + "head_sha", + "url", + "html_url", + "status", + "conclusion", + "started_at", + "completed_at", + "name", + "steps", + "check_run_url", + "labels", + "runner_id", + "runner_name", + "runner_group_id", + "runner_group_name", + "workflow_name", + "head_branch", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "check_run_url": { + "type": "string" + }, + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true + }, + "created_at": { + "description": "The time that the job created.", + "type": "string" + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_id": { + "type": "integer" + }, + "run_url": { + "type": "string" + }, + "runner_group_id": { + "type": "number", + "nullable": true + }, + "runner_group_name": { + "type": "string", + "nullable": true + }, + "runner_id": { + "type": "number", + "nullable": true + }, + "runner_name": { + "type": "string", + "nullable": true + }, + "started_at": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "queued" + ] + }, + "head_branch": { + "type": "string", + "description": "The name of the current branch.", + "nullable": true + }, + "workflow_name": { + "type": "string", + "description": "The name of the workflow.", + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "title": "Workflow Step", + "type": "object", + "properties": { + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "started_at": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "pending", + "queued" + ] + } + }, + "required": [ + "name", + "status", + "conclusion", + "number", + "started_at", + "completed_at" + ] + } + }, + "url": { + "type": "string" + } + }, + "required": [ + "status", + "steps" + ] + } + ] + }, + "deployment": { + "$ref": "#/components/schemas/deployment" + } + }, + "required": [ + "action", + "repository", + "sender", + "workflow_job" + ] + }, + "webhook-workflow-job-queued": { + "title": "workflow_job queued event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "queued" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow_job": { + "type": "object", + "properties": { + "check_run_url": { + "type": "string", + "format": "uri" + }, + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true + }, + "created_at": { + "description": "The time that the job created.", + "type": "string" + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_id": { + "type": "number" + }, + "run_url": { + "type": "string", + "format": "uri" + }, + "runner_group_id": { + "type": "integer", + "nullable": true + }, + "runner_group_name": { + "type": "string", + "nullable": true + }, + "runner_id": { + "type": "integer", + "nullable": true + }, + "runner_name": { + "type": "string", + "nullable": true + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting" + ] + }, + "head_branch": { + "type": "string", + "description": "The name of the current branch.", + "nullable": true + }, + "workflow_name": { + "type": "string", + "description": "The name of the workflow.", + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "title": "Workflow Step", + "type": "object", + "properties": { + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "failure", + "skipped", + "success", + "cancelled", + null + ] + }, + "name": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "started_at": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "in_progress", + "queued", + "pending" + ] + } + }, + "required": [ + "name", + "status", + "conclusion", + "number", + "started_at", + "completed_at" + ] + } + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "run_id", + "run_url", + "run_attempt", + "node_id", + "head_sha", + "url", + "html_url", + "status", + "conclusion", + "started_at", + "completed_at", + "name", + "steps", + "check_run_url", + "labels", + "runner_id", + "runner_name", + "runner_group_id", + "runner_group_name", + "workflow_name", + "head_branch", + "created_at" + ] + }, + "deployment": { + "$ref": "#/components/schemas/deployment" + } + }, + "required": [ + "action", + "repository", + "sender", + "workflow_job" + ] + }, + "webhook-workflow-job-waiting": { + "title": "workflow_job waiting event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "waiting" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow_job": { + "type": "object", + "properties": { + "check_run_url": { + "type": "string", + "format": "uri" + }, + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true + }, + "created_at": { + "description": "The time that the job created.", + "type": "string" + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "run_attempt": { + "type": "integer" + }, + "run_id": { + "type": "number" + }, + "run_url": { + "type": "string", + "format": "uri" + }, + "runner_group_id": { + "type": "integer", + "nullable": true + }, + "runner_group_name": { + "type": "string", + "nullable": true + }, + "runner_id": { + "type": "integer", + "nullable": true + }, + "runner_name": { + "type": "string", + "nullable": true + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "head_branch": { + "type": "string", + "description": "The name of the current branch.", + "nullable": true + }, + "workflow_name": { + "type": "string", + "description": "The name of the workflow.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "waiting" + ] + }, + "steps": { + "type": "array", + "items": { + "title": "Workflow Step", + "type": "object", + "properties": { + "completed_at": { + "type": "string", + "nullable": true + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "failure", + "skipped", + "success", + "cancelled", + null + ] + }, + "name": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "started_at": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "in_progress", + "queued", + "pending", + "waiting" + ] + } + }, + "required": [ + "name", + "status", + "conclusion", + "number", + "started_at", + "completed_at" + ] + } + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "run_id", + "run_url", + "run_attempt", + "node_id", + "head_sha", + "url", + "html_url", + "status", + "conclusion", + "started_at", + "completed_at", + "name", + "steps", + "check_run_url", + "labels", + "runner_id", + "runner_name", + "runner_group_id", + "runner_group_name", + "workflow_name", + "head_branch", + "created_at" + ] + }, + "deployment": { + "$ref": "#/components/schemas/deployment" + } + }, + "required": [ + "action", + "repository", + "sender", + "workflow_job" + ] + }, + "webhook-workflow-run-completed": { + "title": "workflow_run completed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "completed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow": { + "$ref": "#/components/schemas/webhooks_workflow" + }, + "workflow_run": { + "title": "Workflow Run", + "type": "object", + "required": [ + "actor", + "artifacts_url", + "cancel_url", + "check_suite_id", + "check_suite_node_id", + "check_suite_url", + "conclusion", + "created_at", + "event", + "head_branch", + "head_commit", + "head_repository", + "head_sha", + "html_url", + "id", + "jobs_url", + "logs_url", + "name", + "node_id", + "path", + "previous_attempt_url", + "pull_requests", + "repository", + "rerun_url", + "run_attempt", + "run_number", + "run_started_at", + "status", + "triggering_actor", + "updated_at", + "url", + "workflow_id", + "workflow_url" + ], + "properties": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "artifacts_url": { + "type": "string", + "format": "uri" + }, + "cancel_url": { + "type": "string", + "format": "uri" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { + "type": "string" + }, + "check_suite_url": { + "type": "string", + "format": "uri" + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "action_required", + "cancelled", + "failure", + "neutral", + "skipped", + "stale", + "success", + "timed_out", + "startup_failure" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string", + "nullable": true + }, + "head_commit": { + "title": "SimpleCommit", + "type": "object", + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ], + "properties": { + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "required": [ + "email", + "name" + ], + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "required": [ + "email", + "name" + ], + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "tree_id": { + "type": "string" + } + } + }, + "head_repository": { + "title": "Repository Lite", + "type": "object", + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "node_id", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ], + "properties": { + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { "type": "string" + } + } + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "jobs_url": { + "type": "string", + "format": "uri" + }, + "logs_url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "previous_attempt_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "pull_requests": { + "type": "array", + "items": { + "type": "object", + "required": [ + "url", + "id", + "number", + "head", + "base" + ], + "nullable": true, + "properties": { + "base": { + "type": "object", + "required": [ + "ref", + "sha", + "repo" + ], + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "required": [ + "id", + "url", + "name" + ], + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "sha": { + "type": "string" + } + } + }, + "head": { + "type": "object", + "required": [ + "ref", + "sha", + "repo" + ], + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "required": [ + "id", + "url", + "name" + ], + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "sha": { + "type": "string" + } + } + }, + "id": { + "type": "number" + }, + "number": { + "type": "number" + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "required": [ + "path", + "sha" + ], + "properties": { + "path": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + } + } + } + }, + "repository": { + "title": "Repository Lite", + "type": "object", + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "node_id", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ], + "properties": { + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "The name of the repository.", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" }, "followers_url": { "type": "string", "format": "uri" }, "following_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "gists_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "gravatar_id": { - "type": "string", - "nullable": true + "type": "string" }, "html_url": { "type": "string", @@ -70327,10 +276790,13 @@ "id": { "type": "integer" }, - "node_id": { + "login": { "type": "string" }, - "login": { + "name": { + "type": "string" + }, + "node_id": { "type": "string" }, "organizations_url": { @@ -70349,56 +276815,49 @@ "type": "boolean" }, "starred_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "subscriptions_url": { "type": "string", "format": "uri" }, "type": { - "type": "string" + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] }, "url": { "type": "string", "format": "uri" + }, + "user_view_type": { + "type": "string" } - }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url" - ] + } }, "private": { + "description": "Whether the repository is private or public.", "type": "boolean" }, "pulls_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "releases_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "stargazers_url": { "type": "string", "format": "uri" }, "statuses_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "subscribers_url": { "type": "string", @@ -70417,171 +276876,930 @@ "format": "uri" }, "trees_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "url": { "type": "string", "format": "uri" + } + } + }, + "rerun_url": { + "type": "string", + "format": "uri" + }, + "run_attempt": { + "type": "integer" + }, + "run_number": { + "type": "integer" + }, + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "pending", + "waiting" + ] + }, + "triggering_actor": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" }, - "clone_url": { - "type": "string" + "deleted": { + "type": "boolean" }, - "default_branch": { + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { "type": "string" }, - "forks": { - "type": "integer" + "html_url": { + "type": "string", + "format": "uri" }, - "forks_count": { + "id": { "type": "integer" }, - "git_url": { + "login": { "type": "string" }, - "has_downloads": { - "type": "boolean" + "name": { + "type": "string" }, - "has_issues": { - "type": "boolean" + "node_id": { + "type": "string" }, - "has_projects": { - "type": "boolean" + "organizations_url": { + "type": "string", + "format": "uri" }, - "has_wiki": { + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { "type": "boolean" }, - "has_pages": { + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "format": "uri" + }, + "workflow_id": { + "type": "integer" + }, + "workflow_url": { + "type": "string", + "format": "uri" + }, + "display_title": { + "type": "string", + "example": "Simple Workflow", + "description": "The event-specific title associated with the run or the run-name if set, or the value of `run-name` if it is set in the workflow." + } + } + } + }, + "required": [ + "action", + "repository", + "sender", + "workflow", + "workflow_run" + ] + }, + "webhook-workflow-run-in-progress": { + "title": "workflow_run in_progress event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "in_progress" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + }, + "workflow": { + "$ref": "#/components/schemas/webhooks_workflow" + }, + "workflow_run": { + "title": "Workflow Run", + "type": "object", + "required": [ + "actor", + "artifacts_url", + "cancel_url", + "check_suite_id", + "check_suite_node_id", + "check_suite_url", + "conclusion", + "created_at", + "event", + "head_branch", + "head_commit", + "head_repository", + "head_sha", + "html_url", + "id", + "jobs_url", + "logs_url", + "name", + "node_id", + "path", + "previous_attempt_url", + "pull_requests", + "repository", + "rerun_url", + "run_attempt", + "run_number", + "run_started_at", + "status", + "triggering_actor", + "updated_at", + "url", + "workflow_id", + "workflow_url" + ], + "properties": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { "type": "boolean" }, - "homepage": { + "email": { "type": "string", - "format": "uri", "nullable": true }, - "language": { + "events_url": { "type": "string", - "nullable": true + "format": "uri-template" }, - "master_branch": { + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { "type": "string" }, - "archived": { - "type": "boolean" + "html_url": { + "type": "string", + "format": "uri" }, - "disabled": { + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { "type": "boolean" }, - "mirror_url": { + "starred_url": { "type": "string", - "format": "uri", - "nullable": true + "format": "uri-template" }, - "open_issues": { - "type": "integer" + "subscriptions_url": { + "type": "string", + "format": "uri" }, - "open_issues_count": { - "type": "integer" + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] }, - "permissions": { + "url": { + "type": "string", + "format": "uri" + } + } + }, + "artifacts_url": { + "type": "string", + "format": "uri" + }, + "cancel_url": { + "type": "string", + "format": "uri" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { + "type": "string" + }, + "check_suite_url": { + "type": "string", + "format": "uri" + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "action_required", + "cancelled", + "failure", + "neutral", + "skipped", + "stale", + "success", + "timed_out" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string", + "nullable": true + }, + "head_commit": { + "title": "SimpleCommit", + "type": "object", + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ], + "properties": { + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", "type": "object", + "required": [ + "email", + "name" + ], "properties": { - "admin": { - "type": "boolean" + "date": { + "type": "string", + "format": "date-time" }, - "pull": { - "type": "boolean" + "email": { + "type": "string", + "nullable": true, + "format": "email" }, - "push": { - "type": "boolean" + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" } - }, + } + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", "required": [ - "admin", - "pull", - "push" - ] + "email", + "name" + ], + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + } }, - "temp_clone_token": { + "id": { "type": "string" }, - "allow_merge_commit": { - "type": "boolean" + "message": { + "type": "string" }, - "allow_squash_merge": { - "type": "boolean" + "timestamp": { + "type": "string" }, - "allow_rebase_merge": { + "tree_id": { + "type": "string" + } + } + }, + "head_repository": { + "title": "Repository Lite", + "type": "object", + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "node_id", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ], + "properties": { + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { "type": "boolean" }, - "license": { + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "owner": { + "title": "User", "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], "properties": { - "key": { - "type": "string" + "avatar_url": { + "type": "string", + "format": "uri" }, - "name": { - "type": "string" + "deleted": { + "type": "boolean" }, - "url": { + "email": { "type": "string", - "format": "uri", "nullable": true }, - "spdx_id": { + "events_url": { "type": "string", - "nullable": true + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" }, "node_id": { "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "head_sha": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "jobs_url": { + "type": "string", + "format": "uri" + }, + "logs_url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string", + "nullable": true + }, + "node_id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "previous_attempt_url": { + "type": "string", + "nullable": true, + "format": "uri" + }, + "pull_requests": { + "type": "array", + "items": { + "type": "object", + "required": [ + "url", + "id", + "number", + "head", + "base" + ], + "nullable": true, + "properties": { + "base": { + "type": "object", + "required": [ + "ref", + "sha", + "repo" + ], + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "required": [ + "id", + "url", + "name" + ], + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "sha": { + "type": "string" + } + } + }, + "head": { + "type": "object", + "required": [ + "ref", + "sha", + "repo" + ], + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "required": [ + "id", + "url", + "name" + ], + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "sha": { + "type": "string" + } } }, - "required": [ - "key", - "name", - "url", - "spdx_id", - "node_id" - ], - "nullable": true - }, - "pushed_at": { - "type": "string", - "format": "date-time" - }, - "size": { - "type": "integer" - }, - "ssh_url": { - "type": "string" - }, - "stargazers_count": { - "type": "integer" - }, - "svn_url": { - "type": "string", - "format": "uri" - }, - "topics": { - "type": "array", - "items": { + "id": { + "type": "number" + }, + "number": { + "type": "number" + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "required": [ + "path", + "sha" + ], + "properties": { + "path": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "sha": { "type": "string" } - }, - "watchers": { - "type": "integer" - }, - "watchers_count": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" } - }, + } + }, + "repository": { + "title": "Repository Lite", + "type": "object", "required": [ "archive_url", "assignees_url", @@ -70606,7 +277824,6 @@ "hooks_url", "html_url", "id", - "node_id", "issue_comment_url", "issue_events_url", "issues_url", @@ -70616,6 +277833,7 @@ "merges_url", "milestones_url", "name", + "node_id", "notifications_url", "owner", "private", @@ -70628,174 +277846,44 @@ "tags_url", "teams_url", "trees_url", - "url", - "clone_url", - "default_branch", - "forks", - "forks_count", - "git_url", - "has_downloads", - "has_issues", - "has_projects", - "has_wiki", - "has_pages", - "homepage", - "language", - "archived", - "disabled", - "mirror_url", - "open_issues", - "open_issues_count", - "license", - "pushed_at", - "size", - "ssh_url", - "stargazers_count", - "svn_url", - "watchers", - "watchers_count", - "created_at", - "updated_at" - ] - }, - "sha": { - "type": "string" - }, - "user": { - "type": "object", - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "events_url": { - "type": "string" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string" - }, - "gists_url": { - "type": "string" - }, - "gravatar_id": { - "type": "string", - "nullable": true - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "login": { - "type": "string" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", "url" - ] - } - }, - "required": [ - "label", - "ref", - "repo", - "sha", - "user" - ] - }, - "base": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "ref": { - "type": "string" - }, - "repo": { - "type": "object", + ], "properties": { "archive_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "assignees_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "blobs_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "branches_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "collaborators_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "comments_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "commits_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "compare_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "contents_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "contributors_url": { "type": "string", @@ -70828,13 +277916,16 @@ "type": "string" }, "git_commits_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "git_refs_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "git_tags_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "hooks_url": { "type": "string", @@ -70845,25 +277936,28 @@ "format": "uri" }, "id": { + "description": "Unique identifier of the repository", "type": "integer" }, - "node_id": { - "type": "string" - }, "issue_comment_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "issue_events_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "issues_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "keys_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "labels_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "languages_url": { "type": "string", @@ -70874,37 +277968,58 @@ "format": "uri" }, "milestones_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "name": { + "description": "The name of the repository.", "type": "string" }, - "notifications_url": { + "node_id": { "type": "string" }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, "owner": { + "title": "User", "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], "properties": { "avatar_url": { "type": "string", "format": "uri" }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, "events_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "followers_url": { "type": "string", "format": "uri" }, "following_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "gists_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "gravatar_id": { - "type": "string", - "nullable": true + "type": "string" }, "html_url": { "type": "string", @@ -70913,10 +278028,13 @@ "id": { "type": "integer" }, - "node_id": { + "login": { "type": "string" }, - "login": { + "name": { + "type": "string" + }, + "node_id": { "type": "string" }, "organizations_url": { @@ -70935,56 +278053,46 @@ "type": "boolean" }, "starred_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "subscriptions_url": { "type": "string", "format": "uri" }, "type": { - "type": "string" + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] }, "url": { "type": "string", "format": "uri" } - }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url" - ] + } }, "private": { + "description": "Whether the repository is private or public.", "type": "boolean" }, "pulls_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "releases_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "stargazers_url": { "type": "string", "format": "uri" }, "statuses_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "subscribers_url": { "type": "string", @@ -71003,250 +278111,77 @@ "format": "uri" }, "trees_url": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "clone_url": { - "type": "string" - }, - "default_branch": { - "type": "string" - }, - "forks": { - "type": "integer" - }, - "forks_count": { - "type": "integer" - }, - "git_url": { - "type": "string" - }, - "has_downloads": { - "type": "boolean" - }, - "has_issues": { - "type": "boolean" - }, - "has_projects": { - "type": "boolean" - }, - "has_wiki": { - "type": "boolean" - }, - "has_pages": { - "type": "boolean" - }, - "homepage": { - "type": "string", - "format": "uri", - "nullable": true - }, - "language": { - "type": "string", - "nullable": true - }, - "master_branch": { - "type": "string" - }, - "archived": { - "type": "boolean" - }, - "disabled": { - "type": "boolean" - }, - "mirror_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "open_issues": { - "type": "integer" - }, - "open_issues_count": { - "type": "integer" - }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "pull": { - "type": "boolean" - }, - "push": { - "type": "boolean" - } - }, - "required": [ - "admin", - "pull", - "push" - ] - }, - "temp_clone_token": { - "type": "string" - }, - "allow_merge_commit": { - "type": "boolean" - }, - "allow_squash_merge": { - "type": "boolean" - }, - "allow_rebase_merge": { - "type": "boolean" - }, - "license": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/license-simple" - } - ] - }, - "pushed_at": { "type": "string", - "format": "date-time" - }, - "size": { - "type": "integer" + "format": "uri-template" }, - "ssh_url": { - "type": "string" - }, - "stargazers_count": { - "type": "integer" - }, - "svn_url": { + "url": { "type": "string", "format": "uri" - }, - "topics": { - "type": "array", - "items": { - "type": "string" - } - }, - "watchers": { - "type": "integer" - }, - "watchers_count": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" } - }, - "required": [ - "archive_url", - "assignees_url", - "blobs_url", - "branches_url", - "collaborators_url", - "comments_url", - "commits_url", - "compare_url", - "contents_url", - "contributors_url", - "deployments_url", - "description", - "downloads_url", - "events_url", - "fork", - "forks_url", - "full_name", - "git_commits_url", - "git_refs_url", - "git_tags_url", - "hooks_url", - "html_url", - "id", - "node_id", - "issue_comment_url", - "issue_events_url", - "issues_url", - "keys_url", - "labels_url", - "languages_url", - "merges_url", - "milestones_url", - "name", - "notifications_url", - "owner", - "private", - "pulls_url", - "releases_url", - "stargazers_url", - "statuses_url", - "subscribers_url", - "subscription_url", - "tags_url", - "teams_url", - "trees_url", - "url", - "clone_url", - "default_branch", - "forks", - "forks_count", - "git_url", - "has_downloads", - "has_issues", - "has_projects", - "has_wiki", - "has_pages", - "homepage", - "language", - "archived", - "disabled", - "mirror_url", - "open_issues", - "open_issues_count", - "license", - "pushed_at", - "size", - "ssh_url", - "stargazers_count", - "svn_url", - "watchers", - "watchers_count", - "created_at", - "updated_at" - ] + } }, - "sha": { - "type": "string" + "rerun_url": { + "type": "string", + "format": "uri" }, - "user": { + "run_attempt": { + "type": "integer" + }, + "run_number": { + "type": "integer" + }, + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "pending" + ] + }, + "triggering_actor": { + "title": "User", "type": "object", + "nullable": true, + "required": [ + "login", + "id" + ], "properties": { "avatar_url": { "type": "string", "format": "uri" }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, "events_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "followers_url": { "type": "string", "format": "uri" }, "following_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "gists_url": { - "type": "string" + "type": "string", + "format": "uri-template" }, "gravatar_id": { - "type": "string", - "nullable": true + "type": "string" }, "html_url": { "type": "string", @@ -71255,3602 +278190,2558 @@ "id": { "type": "integer" }, - "node_id": { - "type": "string" - }, "login": { "type": "string" }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { + "name": { "type": "string" }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "type": { + "node_id": { "type": "string" }, - "url": { + "organizations_url": { "type": "string", "format": "uri" - } - }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url" - ] - } - }, - "required": [ - "label", - "ref", - "repo", - "sha", - "user" - ] - }, - "_links": { - "type": "object", - "properties": { - "comments": { - "$ref": "#/components/schemas/link" - }, - "commits": { - "$ref": "#/components/schemas/link" - }, - "statuses": { - "$ref": "#/components/schemas/link" - }, - "html": { - "$ref": "#/components/schemas/link" - }, - "issue": { - "$ref": "#/components/schemas/link" - }, - "review_comments": { - "$ref": "#/components/schemas/link" - }, - "review_comment": { - "$ref": "#/components/schemas/link" - }, - "self": { - "$ref": "#/components/schemas/link" - } - }, - "required": [ - "comments", - "commits", - "statuses", - "html", - "issue", - "review_comments", - "review_comment", - "self" - ] - }, - "author_association": { - "$ref": "#/components/schemas/author_association" - }, - "auto_merge": { - "$ref": "#/components/schemas/auto_merge" - }, - "draft": { - "description": "Indicates whether or not the pull request is a draft.", - "example": false, - "type": "boolean" - }, - "merged": { - "type": "boolean" - }, - "mergeable": { - "type": "boolean", - "example": true, - "nullable": true - }, - "rebaseable": { - "type": "boolean", - "example": true, - "nullable": true - }, - "mergeable_state": { - "type": "string", - "example": "clean" - }, - "merged_by": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "comments": { - "type": "integer", - "example": 10 - }, - "review_comments": { - "type": "integer", - "example": 0 - }, - "maintainer_can_modify": { - "description": "Indicates whether maintainers can modify the pull request.", - "example": true, - "type": "boolean" - }, - "commits": { - "type": "integer", - "example": 3 - }, - "additions": { - "type": "integer", - "example": 100 - }, - "deletions": { - "type": "integer", - "example": 3 - }, - "changed_files": { - "type": "integer", - "example": 5 - } - }, - "required": [ - "_links", - "assignee", - "labels", - "base", - "body", - "closed_at", - "comments_url", - "commits_url", - "created_at", - "diff_url", - "head", - "html_url", - "id", - "node_id", - "issue_url", - "merge_commit_sha", - "merged_at", - "milestone", - "number", - "patch_url", - "review_comment_url", - "review_comments_url", - "statuses_url", - "state", - "locked", - "title", - "updated_at", - "url", - "user", - "author_association", - "auto_merge", - "additions", - "changed_files", - "comments", - "commits", - "deletions", - "mergeable", - "mergeable_state", - "merged", - "maintainer_can_modify", - "merged_by", - "review_comments" - ] - }, - "pull-request-merge-result": { - "title": "Pull Request Merge Result", - "description": "Pull Request Merge Result", - "type": "object", - "properties": { - "sha": { - "type": "string" - }, - "merged": { - "type": "boolean" - }, - "message": { - "type": "string" - } - }, - "required": [ - "merged", - "message", - "sha" - ] - }, - "pull-request-review-request": { - "title": "Pull Request Review Request", - "description": "Pull Request Review Request", - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } - } - }, - "required": [ - "users", - "teams" - ] - }, - "pull-request-review": { - "title": "Pull Request Review", - "description": "Pull Request Reviews are reviews on pull requests.", - "type": "object", - "properties": { - "id": { - "description": "Unique identifier of the review", - "example": 42, - "type": "integer" - }, - "node_id": { - "type": "string", - "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "body": { - "description": "The text of the review.", - "example": "This looks great.", - "type": "string" - }, - "state": { - "type": "string", - "example": "CHANGES_REQUESTED" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" - }, - "pull_request_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/12" - }, - "_links": { - "type": "object", - "properties": { - "html": { - "type": "object", - "properties": { - "href": { - "type": "string" - } - }, - "required": [ - "href" - ] - }, - "pull_request": { - "type": "object", - "properties": { - "href": { - "type": "string" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "html", - "pull_request" - ] - }, - "submitted_at": { - "type": "string", - "format": "date-time" - }, - "commit_id": { - "description": "A commit SHA for the review.", - "example": "54bb654c9e6025347f57900a4a5c2313a96b8035", - "type": "string" - }, - "body_html": { - "type": "string" - }, - "body_text": { - "type": "string" - }, - "author_association": { - "$ref": "#/components/schemas/author_association" - } - }, - "required": [ - "id", - "node_id", - "user", - "body", - "state", - "commit_id", - "html_url", - "pull_request_url", - "_links", - "author_association" - ] - }, - "review-comment": { - "title": "Legacy Review Comment", - "description": "Legacy Review Comment", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" - }, - "pull_request_review_id": { - "type": "integer", - "example": 42, - "nullable": true - }, - "id": { - "type": "integer", - "example": 10 - }, - "node_id": { - "type": "string", - "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" - }, - "diff_hunk": { - "type": "string", - "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." - }, - "path": { - "type": "string", - "example": "file1.txt" - }, - "position": { - "type": "integer", - "example": 1, - "nullable": true - }, - "original_position": { - "type": "integer", - "example": 4 - }, - "commit_id": { - "type": "string", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" - }, - "original_commit_id": { - "type": "string", - "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840" - }, - "in_reply_to_id": { - "type": "integer", - "example": 8 - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "body": { - "type": "string", - "example": "Great stuff" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" - }, - "pull_request_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" - }, - "author_association": { - "$ref": "#/components/schemas/author_association" - }, - "_links": { - "type": "object", - "properties": { - "self": { - "$ref": "#/components/schemas/link" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + } }, - "html": { - "$ref": "#/components/schemas/link" + "updated_at": { + "type": "string", + "format": "date-time" }, - "pull_request": { - "$ref": "#/components/schemas/link" + "url": { + "type": "string", + "format": "uri" + }, + "workflow_id": { + "type": "integer" + }, + "workflow_url": { + "type": "string", + "format": "uri" } - }, - "required": [ - "self", - "html", - "pull_request" - ] - }, - "body_text": { - "type": "string" - }, - "body_html": { - "type": "string" - }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" - }, - "side": { - "description": "The side of the first line of the range for a multi-line comment.", - "enum": [ - "LEFT", - "RIGHT" - ], - "default": "RIGHT", - "type": "string" - }, - "start_side": { - "type": "string", - "description": "The side of the first line of the range for a multi-line comment.", - "enum": [ - "LEFT", - "RIGHT" - ], - "default": "RIGHT", - "nullable": true - }, - "line": { - "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", - "example": 2, - "type": "integer" - }, - "original_line": { - "description": "The original line of the blob to which the comment applies. The last line of the range for a multi-line comment", - "example": 2, - "type": "integer" - }, - "start_line": { - "description": "The first line of the range for a multi-line comment.", - "example": 2, - "type": "integer", - "nullable": true - }, - "original_start_line": { - "description": "The original first line of the range for a multi-line comment.", - "example": 2, - "type": "integer", - "nullable": true + } } }, "required": [ - "id", - "node_id", - "url", - "body", - "diff_hunk", - "path", - "position", - "original_position", - "commit_id", - "original_commit_id", - "user", - "pull_request_review_id", - "html_url", - "pull_request_url", - "_links", - "author_association", - "created_at", - "updated_at" + "action", + "repository", + "sender", + "workflow", + "workflow_run" ] }, - "release-asset": { - "title": "Release Asset", - "description": "Data related to a release.", + "webhook-workflow-run-requested": { + "title": "workflow_run requested event", "type": "object", "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "browser_download_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "name": { - "description": "The file name of the asset.", - "type": "string", - "example": "Team Environment" - }, - "label": { - "type": "string", - "nullable": true - }, - "state": { - "description": "State of the release asset.", + "action": { "type": "string", "enum": [ - "uploaded", - "open" - ] - }, - "content_type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "download_count": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "uploader": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } + "requested" ] - } - }, - "required": [ - "id", - "name", - "content_type", - "size", - "state", - "url", - "node_id", - "download_count", - "label", - "uploader", - "browser_download_url", - "created_at", - "updated_at" - ] - }, - "release": { - "title": "Release", - "description": "A release.", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "assets_url": { - "type": "string", - "format": "uri" - }, - "upload_url": { - "type": "string" - }, - "tarball_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "zipball_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "tag_name": { - "description": "The name of the tag.", - "example": "v1.0.0", - "type": "string" - }, - "target_commitish": { - "description": "Specifies the commitish value that determines where the Git tag is created from.", - "example": "master", - "type": "string" - }, - "name": { - "type": "string", - "nullable": true - }, - "body": { - "type": "string", - "nullable": true - }, - "draft": { - "description": "true to create a draft (unpublished) release, false to create a published one.", - "example": false, - "type": "boolean" - }, - "prerelease": { - "description": "Whether to identify the release as a prerelease or a full release.", - "example": false, - "type": "boolean" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "published_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/simple-user" - }, - "assets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/release-asset" - } - }, - "body_html": { - "type": "string" - }, - "body_text": { - "type": "string" - }, - "mentions_count": { - "type": "integer" - }, - "discussion_url": { - "description": "The URL of the release discussion.", - "type": "string", - "format": "uri" - }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" - } - }, - "required": [ - "assets_url", - "upload_url", - "tarball_url", - "zipball_url", - "created_at", - "published_at", - "draft", - "id", - "node_id", - "author", - "html_url", - "name", - "prerelease", - "tag_name", - "target_commitish", - "assets", - "url" - ] - }, - "secret-scanning-alert-state": { - "description": "Sets the state of the secret scanning alert. Can be either `open` or `resolved`. You must provide `resolution` when you set the state to `resolved`.", - "type": "string", - "enum": [ - "open", - "resolved" - ] - }, - "secret-scanning-alert-resolution": { - "type": "string", - "description": "**Required when the `state` is `resolved`.** The reason for resolving the alert. Can be one of `false_positive`, `wont_fix`, `revoked`, or `used_in_tests`.", - "nullable": true, - "enum": [ - null, - "false_positive", - "wont_fix", - "revoked", - "used_in_tests" - ] - }, - "secret-scanning-alert": { - "type": "object", - "properties": { - "number": { - "$ref": "#/components/schemas/alert-number" - }, - "created_at": { - "$ref": "#/components/schemas/alert-created-at" }, - "url": { - "$ref": "#/components/schemas/alert-url" - }, - "html_url": { - "$ref": "#/components/schemas/alert-html-url" + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" }, - "state": { - "$ref": "#/components/schemas/secret-scanning-alert-state" + "installation": { + "$ref": "#/components/schemas/simple-installation" }, - "resolution": { - "$ref": "#/components/schemas/secret-scanning-alert-resolution" + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" }, - "resolved_at": { - "type": "string", - "format": "date-time", - "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", - "nullable": true + "repository": { + "$ref": "#/components/schemas/repository-webhooks" }, - "resolved_by": { + "sender": { "$ref": "#/components/schemas/simple-user" }, - "secret_type": { - "type": "string", - "description": "The type of secret that secret scanning detected." - }, - "secret": { - "type": "string", - "description": "The secret that was detected." - } - } - }, - "stargazer": { - "title": "Stargazer", - "description": "Stargazer", - "type": "object", - "properties": { - "starred_at": { - "type": "string", - "format": "date-time" - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - } - }, - "required": [ - "starred_at", - "user" - ] - }, - "code-frequency-stat": { - "title": "Code Frequency Stat", - "description": "Code Frequency Stat", - "type": "array", - "items": { - "type": "integer" - } - }, - "commit-activity": { - "title": "Commit Activity", - "description": "Commit Activity", - "type": "object", - "properties": { - "days": { - "type": "array", - "example": [ - 0, - 3, - 26, - 20, - 39, - 1, - 0 - ], - "items": { - "type": "integer" - } - }, - "total": { - "type": "integer", - "example": 89 - }, - "week": { - "type": "integer", - "example": 1336280400 - } - }, - "required": [ - "days", - "total", - "week" - ] - }, - "contributor-activity": { - "title": "Contributor Activity", - "description": "Contributor Activity", - "type": "object", - "properties": { - "author": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "total": { - "type": "integer", - "example": 135 - }, - "weeks": { - "type": "array", - "example": [ - { - "w": "1367712000", - "a": 6898, - "d": 77, - "c": 10 - } - ], - "items": { - "type": "object", - "properties": { - "w": { - "type": "integer" - }, - "a": { - "type": "integer" - }, - "d": { - "type": "integer" - }, - "c": { - "type": "integer" - } - } - } - } - }, - "required": [ - "author", - "total", - "weeks" - ] - }, - "participation-stats": { - "title": "Participation Stats", - "type": "object", - "properties": { - "all": { - "type": "array", - "items": { - "type": "integer" - } - }, - "owner": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "required": [ - "all", - "owner" - ] - }, - "repository-subscription": { - "title": "Repository Invitation", - "description": "Repository invitations let you manage who you collaborate with.", - "type": "object", - "properties": { - "subscribed": { - "description": "Determines if notifications should be received from this repository.", - "type": "boolean", - "example": true - }, - "ignored": { - "description": "Determines if all notifications should be blocked from this repository.", - "type": "boolean" - }, - "reason": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2012-10-06T21:34:12Z" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/subscription" - }, - "repository_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example" - } - }, - "required": [ - "created_at", - "ignored", - "reason", - "subscribed", - "url", - "repository_url" - ] - }, - "tag": { - "title": "Tag", - "description": "Tag", - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "v0.1" + "workflow": { + "$ref": "#/components/schemas/webhooks_workflow" }, - "commit": { + "workflow_run": { + "title": "Workflow Run", "type": "object", "properties": { - "sha": { + "actor": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "artifacts_url": { + "type": "string", + "format": "uri" + }, + "cancel_url": { + "type": "string", + "format": "uri" + }, + "check_suite_id": { + "type": "integer" + }, + "check_suite_node_id": { "type": "string" }, - "url": { + "check_suite_url": { "type": "string", "format": "uri" - } - }, - "required": [ - "sha", - "url" - ] - }, - "zipball_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/zipball/v0.1" - }, - "tarball_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/tarball/v0.1" - }, - "node_id": { - "type": "string" - } - }, - "required": [ - "name", - "node_id", - "commit", - "zipball_url", - "tarball_url" - ] - }, - "topic": { - "title": "Topic", - "description": "A topic aggregates entities that are related to a subject.", - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "names" - ] - }, - "traffic": { - "title": "Traffic", - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time" - }, - "uniques": { - "type": "integer" - }, - "count": { - "type": "integer" - } - }, - "required": [ - "timestamp", - "uniques", - "count" - ] - }, - "clone-traffic": { - "title": "Clone Traffic", - "description": "Clone Traffic", - "type": "object", - "properties": { - "count": { - "type": "integer", - "example": 173 - }, - "uniques": { - "type": "integer", - "example": 128 - }, - "clones": { - "type": "array", - "items": { - "$ref": "#/components/schemas/traffic" - } - } - }, - "required": [ - "uniques", - "count", - "clones" - ] - }, - "content-traffic": { - "title": "Content Traffic", - "description": "Content Traffic", - "type": "object", - "properties": { - "path": { - "type": "string", - "example": "/github/hubot" - }, - "title": { - "type": "string", - "example": "github/hubot: A customizable life embetterment robot." - }, - "count": { - "type": "integer", - "example": 3542 - }, - "uniques": { - "type": "integer", - "example": 2225 - } - }, - "required": [ - "path", - "title", - "uniques", - "count" - ] - }, - "referrer-traffic": { - "title": "Referrer Traffic", - "description": "Referrer Traffic", - "type": "object", - "properties": { - "referrer": { - "type": "string", - "example": "Google" - }, - "count": { - "type": "integer", - "example": 4 - }, - "uniques": { - "type": "integer", - "example": 3 - } - }, - "required": [ - "referrer", - "uniques", - "count" - ] - }, - "view-traffic": { - "title": "View Traffic", - "description": "View Traffic", - "type": "object", - "properties": { - "count": { - "type": "integer", - "example": 14850 - }, - "uniques": { - "type": "integer", - "example": 3782 - }, - "views": { - "type": "array", - "items": { - "$ref": "#/components/schemas/traffic" - } - } - }, - "required": [ - "uniques", - "count", - "views" - ] - }, - "scim-group-list-enterprise": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "totalResults": { - "type": "number" - }, - "itemsPerPage": { - "type": "number" - }, - "startIndex": { - "type": "number" - }, - "Resources": { - "type": "array", - "items": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { + }, + "conclusion": { + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required", + "stale", + null, + "skipped", + "startup_failure" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "event": { + "type": "string" + }, + "head_branch": { + "type": "string", + "nullable": true + }, + "head_commit": { + "title": "SimpleCommit", + "type": "object", + "properties": { + "author": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "committer": { + "title": "Committer", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string", + "nullable": true, + "format": "email" + }, + "name": { + "description": "The git author's name.", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "email", + "name" + ] + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "tree_id": { + "type": "string" + } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ] + }, + "head_repository": { + "title": "Repository Lite", + "type": "object", + "properties": { + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { + "type": "string" + }, + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, + "name": { + "description": "The name of the repository.", "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { + }, + "node_id": { + "type": "string" + }, + "notifications_url": { + "type": "string", + "format": "uri-template" + }, + "owner": { + "title": "User", "type": "object", + "nullable": true, "properties": { - "value": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { "type": "string" }, - "$ref": { + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { "type": "string" }, - "display": { + "name": { "type": "string" - } - } - } - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" - } - } - } - }, - "required": [ - "schemas", - "id" - ] - } - } - }, - "required": [ - "schemas", - "totalResults", - "itemsPerPage", - "startIndex", - "Resources" - ] - }, - "scim-enterprise-group": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" - } - } - } - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" - } - } - } - }, - "required": [ - "schemas", - "id" - ] - }, - "scim-user-list-enterprise": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "totalResults": { - "type": "number" - }, - "itemsPerPage": { - "type": "number" - }, - "startIndex": { - "type": "number" - }, - "Resources": { - "type": "array", - "items": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { + }, + "node_id": { "type": "string" }, - "primary": { + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { "type": "boolean" }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { "type": "string" } - } - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" }, - "location": { - "type": "string" - } + "required": [ + "login", + "id" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "url": { + "type": "string", + "format": "uri" } - } - }, - "required": [ - "schemas", - "id" - ] - } - } - }, - "required": [ - "schemas", - "totalResults", - "itemsPerPage", - "startIndex", - "Resources" - ] - }, - "scim-enterprise-user": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" }, - "primary": { - "type": "boolean" - } - } - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "node_id", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] }, - "created": { + "head_sha": { "type": "string" }, - "lastModified": { - "type": "string" + "html_url": { + "type": "string", + "format": "uri" }, - "location": { - "type": "string" - } - } - } - }, - "required": [ - "schemas", - "id" - ] - }, - "scim-user": { - "title": "SCIM /Users", - "description": "SCIM /Users provisioning endpoints", - "type": "object", - "properties": { - "schemas": { - "description": "SCIM schema used.", - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "example": "urn:ietf:params:scim:schemas:core:2.0:User" - } - }, - "id": { - "description": "Unique identifier of an external identity", - "example": "1b78eada-9baa-11e6-9eb6-a431576d590e", - "type": "string" - }, - "externalId": { - "description": "The ID of the User.", - "type": "string", - "example": "a7b0f98395", - "nullable": true - }, - "userName": { - "description": "Configured by the admin. Could be an email, login, or username", - "example": "someone@example.com", - "type": "string", - "nullable": true - }, - "displayName": { - "description": "The name of the user, suitable for display to end-users", - "example": "Jon Doe", - "type": "string", - "nullable": true - }, - "name": { - "type": "object", - "properties": { - "givenName": { + "id": { + "type": "integer" + }, + "jobs_url": { "type": "string", - "nullable": true + "format": "uri" }, - "familyName": { + "logs_url": { "type": "string", - "nullable": true + "format": "uri" }, - "formatted": { + "name": { "type": "string", "nullable": true - } - }, - "required": [ - "givenName", - "familyName" - ], - "example": { - "givenName": "Jane", - "familyName": "User" - } - }, - "emails": { - "description": "user emails", - "example": [ - { - "value": "someone@example.com", - "primary": true - }, - { - "value": "another@example.com", - "primary": false - } - ], - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "primary": { - "type": "boolean" - } }, - "required": [ - "value" - ] - } - }, - "active": { - "description": "The active status of the User.", - "type": "boolean", - "example": true - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "example": "User" + "node_id": { + "type": "string" }, - "created": { - "type": "string", - "format": "date-time", - "example": "2019-01-24T22:45:36.000Z" + "path": { + "type": "string" }, - "lastModified": { + "previous_attempt_url": { "type": "string", - "format": "date-time", - "example": "2019-01-24T22:45:36.000Z" + "nullable": true, + "format": "uri" }, - "location": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/scim/v2/organizations/myorg-123abc55141bfd8f/Users/c42772b5-2029-11e9-8543-9264a97dec8d" - } - } - }, - "organization_id": { - "description": "The ID of the organization.", - "type": "integer" - }, - "operations": { - "description": "Set of operations to be performed", - "example": [ - { - "op": "replace", - "value": { - "active": false - } - } - ], - "type": "array", - "minItems": 1, - "items": { - "properties": { - "op": { - "type": "string", - "enum": [ - "add", - "remove", - "replace" + "pull_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "head": { + "type": "object", + "properties": { + "ref": { + "type": "string" + }, + "repo": { + "title": "Repo Ref", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "id", + "url", + "name" + ] + }, + "sha": { + "type": "string" + } + }, + "required": [ + "ref", + "sha", + "repo" + ] + }, + "id": { + "type": "number" + }, + "number": { + "type": "number" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url", + "id", + "number", + "head", + "base" ] - }, - "path": { - "type": "string" - }, - "value": { - "oneOf": [ - { + } + }, + "referenced_workflows": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "path": { "type": "string" }, - { - "type": "object" + "ref": { + "type": "string" }, - { - "type": "array", - "items": { - } + "sha": { + "type": "string" } + }, + "required": [ + "path", + "sha" ] } }, - "required": [ - "op" - ], - "type": "object" - } - }, - "groups": { - "description": "associated groups", - "type": "array", - "items": { - "properties": { - "value": { - "type": "string" - }, - "display": { - "type": "string" - } - } - } - } - }, - "required": [ - "id", - "schemas", - "externalId", - "userName", - "name", - "emails", - "active", - "meta" - ] - }, - "scim-user-list": { - "title": "SCIM User List", - "description": "SCIM User List", - "type": "object", - "properties": { - "schemas": { - "description": "SCIM schema used.", - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "example": "urn:ietf:params:scim:api:messages:2.0:ListResponse" - } - }, - "totalResults": { - "type": "integer", - "example": 3 - }, - "itemsPerPage": { - "type": "integer", - "example": 10 - }, - "startIndex": { - "type": "integer", - "example": 1 - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/components/schemas/scim-user" - } - } - }, - "required": [ - "schemas", - "totalResults", - "itemsPerPage", - "startIndex", - "Resources" - ] - }, - "search-result-text-matches": { - "title": "Search Result Text Matches", - "type": "array", - "items": { - "type": "object", - "properties": { - "object_url": { - "type": "string" - }, - "object_type": { - "nullable": true, - "type": "string" - }, - "property": { - "type": "string" - }, - "fragment": { - "type": "string" - }, - "matches": { - "type": "array", - "items": { + "repository": { + "title": "Repository Lite", "type": "object", "properties": { - "text": { + "archive_url": { + "type": "string", + "format": "uri-template" + }, + "assignees_url": { + "type": "string", + "format": "uri-template" + }, + "blobs_url": { + "type": "string", + "format": "uri-template" + }, + "branches_url": { + "type": "string", + "format": "uri-template" + }, + "collaborators_url": { + "type": "string", + "format": "uri-template" + }, + "comments_url": { + "type": "string", + "format": "uri-template" + }, + "commits_url": { + "type": "string", + "format": "uri-template" + }, + "compare_url": { + "type": "string", + "format": "uri-template" + }, + "contents_url": { + "type": "string", + "format": "uri-template" + }, + "contributors_url": { + "type": "string", + "format": "uri" + }, + "deployments_url": { + "type": "string", + "format": "uri" + }, + "description": { + "type": "string", + "nullable": true + }, + "downloads_url": { + "type": "string", + "format": "uri" + }, + "events_url": { + "type": "string", + "format": "uri" + }, + "fork": { + "type": "boolean" + }, + "forks_url": { + "type": "string", + "format": "uri" + }, + "full_name": { "type": "string" }, - "indices": { - "type": "array", - "items": { - "type": "integer" - } - } - } - } - } - } - } - }, - "code-search-result-item": { - "title": "Code Search Result Item", - "description": "Code Search Result Item", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "git_url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" - }, - "score": { - "type": "number" - }, - "file_size": { - "type": "integer" - }, - "language": { - "type": "string", - "nullable": true - }, - "last_modified_at": { - "type": "string", - "format": "date-time" - }, - "line_numbers": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "73..77", - "77..78" - ] - }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" - } - }, - "required": [ - "score", - "name", - "path", - "sha", - "git_url", - "html_url", - "url", - "repository" - ] - }, - "commit-search-result-item": { - "title": "Commit Search Result Item", - "description": "Commit Search Result Item", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "sha": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "comments_url": { - "type": "string", - "format": "uri" - }, - "commit": { - "type": "object", - "properties": { - "author": { - "type": "object", - "properties": { + "git_commits_url": { + "type": "string", + "format": "uri-template" + }, + "git_refs_url": { + "type": "string", + "format": "uri-template" + }, + "git_tags_url": { + "type": "string", + "format": "uri-template" + }, + "hooks_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the repository", + "type": "integer" + }, + "issue_comment_url": { + "type": "string", + "format": "uri-template" + }, + "issue_events_url": { + "type": "string", + "format": "uri-template" + }, + "issues_url": { + "type": "string", + "format": "uri-template" + }, + "keys_url": { + "type": "string", + "format": "uri-template" + }, + "labels_url": { + "type": "string", + "format": "uri-template" + }, + "languages_url": { + "type": "string", + "format": "uri" + }, + "merges_url": { + "type": "string", + "format": "uri" + }, + "milestones_url": { + "type": "string", + "format": "uri-template" + }, "name": { + "description": "The name of the repository.", "type": "string" }, - "email": { + "node_id": { "type": "string" }, - "date": { + "notifications_url": { "type": "string", - "format": "date-time" + "format": "uri-template" + }, + "owner": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + }, + "required": [ + "login", + "id" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "type": "boolean" + }, + "pulls_url": { + "type": "string", + "format": "uri-template" + }, + "releases_url": { + "type": "string", + "format": "uri-template" + }, + "stargazers_url": { + "type": "string", + "format": "uri" + }, + "statuses_url": { + "type": "string", + "format": "uri-template" + }, + "subscribers_url": { + "type": "string", + "format": "uri" + }, + "subscription_url": { + "type": "string", + "format": "uri" + }, + "tags_url": { + "type": "string", + "format": "uri" + }, + "teams_url": { + "type": "string", + "format": "uri" + }, + "trees_url": { + "type": "string", + "format": "uri-template" + }, + "url": { + "type": "string", + "format": "uri" } }, "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", "name", - "email", - "date" + "node_id", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" ] }, - "committer": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/git-user" - } - ] + "rerun_url": { + "type": "string", + "format": "uri" }, - "comment_count": { + "run_attempt": { "type": "integer" }, - "message": { - "type": "string" + "run_number": { + "type": "integer" }, - "tree": { + "run_started_at": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "requested", + "in_progress", + "completed", + "queued", + "pending", + "waiting" + ] + }, + "triggering_actor": { + "title": "User", "type": "object", + "nullable": true, "properties": { - "sha": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { "type": "string" }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, "url": { "type": "string", "format": "uri" + }, + "user_view_type": { + "type": "string" } }, "required": [ - "sha", - "url" + "login", + "id" ] }, - "url": { - "type": "string", - "format": "uri" - }, - "verification": { - "$ref": "#/components/schemas/verification" - } - }, - "required": [ - "author", - "committer", - "comment_count", - "message", - "tree", - "url" - ] - }, - "author": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "committer": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/git-user" - } - ] - }, - "parents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "sha": { - "type": "string" - } - } - } - }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" - }, - "score": { - "type": "number" - }, - "node_id": { - "type": "string" - }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" - } - }, - "required": [ - "sha", - "node_id", - "url", - "html_url", - "author", - "committer", - "parents", - "comments_url", - "commit", - "repository", - "score" - ] - }, - "issue-search-result-item": { - "title": "Issue Search Result Item", - "description": "Issue Search Result Item", - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "repository_url": { - "type": "string", - "format": "uri" - }, - "labels_url": { - "type": "string" - }, - "comments_url": { - "type": "string", - "format": "uri" - }, - "events_url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "number": { - "type": "integer" - }, - "title": { - "type": "string" - }, - "locked": { - "type": "boolean" - }, - "active_lock_reason": { - "type": "string", - "nullable": true - }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true - }, - "user": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "labels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "name": { - "type": "string" - }, - "color": { - "type": "string" - }, - "default": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - } - } - } - }, - "state": { - "type": "string" - }, - "assignee": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "milestone": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/milestone" - } - ] - }, - "comments": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "closed_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" - }, - "pull_request": { - "type": "object", - "properties": { - "merged_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "diff_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "patch_url": { + "updated_at": { "type": "string", - "format": "uri", - "nullable": true + "format": "date-time" }, "url": { "type": "string", - "format": "uri", - "nullable": true - } - }, - "required": [ - "diff_url", - "html_url", - "patch_url", - "url" - ] - }, - "body": { - "type": "string" - }, - "score": { - "type": "number" - }, - "author_association": { - "$ref": "#/components/schemas/author_association" - }, - "draft": { - "type": "boolean" - }, - "repository": { - "$ref": "#/components/schemas/repository" - }, - "body_html": { - "type": "string" - }, - "body_text": { - "type": "string" - }, - "timeline_url": { - "type": "string", - "format": "uri" - }, - "performed_via_github_app": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/integration" - } - ] - } - }, - "required": [ - "assignee", - "closed_at", - "comments", - "comments_url", - "events_url", - "html_url", - "id", - "node_id", - "labels", - "labels_url", - "milestone", - "number", - "repository_url", - "state", - "locked", - "title", - "url", - "user", - "author_association", - "created_at", - "updated_at", - "score" - ] - }, - "label-search-result-item": { - "title": "Label Search Result Item", - "description": "Label Search Result Item", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "name": { - "type": "string" - }, - "color": { - "type": "string" - }, - "default": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - }, - "score": { - "type": "number" - }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" - } - }, - "required": [ - "id", - "node_id", - "url", - "name", - "color", - "default", - "description", - "score" - ] - }, - "repo-search-result-item": { - "title": "Repo Search Result Item", - "description": "Repo Search Result Item", - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "full_name": { - "type": "string" - }, - "owner": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/simple-user" - } - ] - }, - "private": { - "type": "boolean" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "description": { - "type": "string", - "nullable": true - }, - "fork": { - "type": "boolean" - }, - "url": { - "type": "string", - "format": "uri" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "pushed_at": { - "type": "string", - "format": "date-time" - }, - "homepage": { - "type": "string", - "format": "uri", - "nullable": true - }, - "size": { - "type": "integer" - }, - "stargazers_count": { - "type": "integer" - }, - "watchers_count": { - "type": "integer" - }, - "language": { - "type": "string", - "nullable": true - }, - "forks_count": { - "type": "integer" - }, - "open_issues_count": { - "type": "integer" - }, - "master_branch": { - "type": "string" - }, - "default_branch": { - "type": "string" - }, - "score": { - "type": "number" - }, - "forks_url": { - "type": "string", - "format": "uri" - }, - "keys_url": { - "type": "string" - }, - "collaborators_url": { - "type": "string" - }, - "teams_url": { - "type": "string", - "format": "uri" - }, - "hooks_url": { - "type": "string", - "format": "uri" - }, - "issue_events_url": { - "type": "string" - }, - "events_url": { - "type": "string", - "format": "uri" - }, - "assignees_url": { - "type": "string" - }, - "branches_url": { - "type": "string" - }, - "tags_url": { - "type": "string", - "format": "uri" - }, - "blobs_url": { - "type": "string" - }, - "git_tags_url": { - "type": "string" - }, - "git_refs_url": { - "type": "string" - }, - "trees_url": { - "type": "string" - }, - "statuses_url": { - "type": "string" - }, - "languages_url": { - "type": "string", - "format": "uri" - }, - "stargazers_url": { - "type": "string", - "format": "uri" - }, - "contributors_url": { - "type": "string", - "format": "uri" - }, - "subscribers_url": { - "type": "string", - "format": "uri" - }, - "subscription_url": { - "type": "string", - "format": "uri" - }, - "commits_url": { - "type": "string" - }, - "git_commits_url": { - "type": "string" - }, - "comments_url": { - "type": "string" - }, - "issue_comment_url": { - "type": "string" - }, - "contents_url": { - "type": "string" - }, - "compare_url": { - "type": "string" - }, - "merges_url": { - "type": "string", - "format": "uri" - }, - "archive_url": { - "type": "string" - }, - "downloads_url": { - "type": "string", - "format": "uri" - }, - "issues_url": { - "type": "string" - }, - "pulls_url": { - "type": "string" - }, - "milestones_url": { - "type": "string" - }, - "notifications_url": { - "type": "string" - }, - "labels_url": { - "type": "string" - }, - "releases_url": { - "type": "string" - }, - "deployments_url": { - "type": "string", - "format": "uri" - }, - "git_url": { - "type": "string" - }, - "ssh_url": { - "type": "string" - }, - "clone_url": { - "type": "string" - }, - "svn_url": { - "type": "string", - "format": "uri" - }, - "forks": { - "type": "integer" - }, - "open_issues": { - "type": "integer" - }, - "watchers": { - "type": "integer" - }, - "topics": { - "type": "array", - "items": { - "type": "string" - } - }, - "mirror_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "has_issues": { - "type": "boolean" - }, - "has_projects": { - "type": "boolean" - }, - "has_pages": { - "type": "boolean" - }, - "has_wiki": { - "type": "boolean" - }, - "has_downloads": { - "type": "boolean" - }, - "archived": { - "type": "boolean" - }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." - }, - "license": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/license-simple" - } - ] - }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" + "format": "uri" }, - "pull": { - "type": "boolean" + "workflow_id": { + "type": "integer" }, - "push": { - "type": "boolean" - } - }, - "required": [ - "admin", - "pull", - "push" - ] - }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" - }, - "temp_clone_token": { - "type": "string" - }, - "allow_merge_commit": { - "type": "boolean" - }, - "allow_squash_merge": { - "type": "boolean" - }, - "allow_rebase_merge": { - "type": "boolean" - }, - "allow_auto_merge": { - "type": "boolean" - }, - "delete_branch_on_merge": { - "type": "boolean" - } - }, - "required": [ - "archive_url", - "assignees_url", - "blobs_url", - "branches_url", - "collaborators_url", - "comments_url", - "commits_url", - "compare_url", - "contents_url", - "contributors_url", - "deployments_url", - "description", - "downloads_url", - "events_url", - "fork", - "forks_url", - "full_name", - "git_commits_url", - "git_refs_url", - "git_tags_url", - "hooks_url", - "html_url", - "id", - "node_id", - "issue_comment_url", - "issue_events_url", - "issues_url", - "keys_url", - "labels_url", - "languages_url", - "merges_url", - "milestones_url", - "name", - "notifications_url", - "owner", - "private", - "pulls_url", - "releases_url", - "stargazers_url", - "statuses_url", - "subscribers_url", - "subscription_url", - "tags_url", - "teams_url", - "trees_url", - "url", - "clone_url", - "default_branch", - "forks", - "forks_count", - "git_url", - "has_downloads", - "has_issues", - "has_projects", - "has_wiki", - "has_pages", - "homepage", - "language", - "archived", - "disabled", - "mirror_url", - "open_issues", - "open_issues_count", - "license", - "pushed_at", - "size", - "ssh_url", - "stargazers_count", - "svn_url", - "watchers", - "watchers_count", - "created_at", - "updated_at", - "score" - ] - }, - "topic-search-result-item": { - "title": "Topic Search Result Item", - "description": "Topic Search Result Item", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "display_name": { - "type": "string", - "nullable": true - }, - "short_description": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "created_by": { - "type": "string", - "nullable": true - }, - "released": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "featured": { - "type": "boolean" - }, - "curated": { - "type": "boolean" - }, - "score": { - "type": "number" - }, - "repository_count": { - "type": "integer", - "nullable": true - }, - "logo_url": { - "type": "string", - "format": "uri", - "nullable": true - }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" - }, - "related": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "properties": { - "topic_relation": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "topic_id": { - "type": "integer" - }, - "relation_type": { - "type": "string" - } - } - } - } - } - }, - "aliases": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "properties": { - "topic_relation": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "topic_id": { - "type": "integer" - }, - "relation_type": { - "type": "string" - } - } - } - } - } - } - }, - "required": [ - "name", - "display_name", - "short_description", - "description", - "created_by", - "released", - "created_at", - "updated_at", - "featured", - "curated", - "score" - ] - }, - "user-search-result-item": { - "title": "User Search Result Item", - "description": "User Search Result Item", - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "avatar_url": { - "type": "string", - "format": "uri" - }, - "gravatar_id": { - "type": "string", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string" - }, - "score": { - "type": "number" - }, - "following_url": { + "workflow_url": { + "type": "string", + "format": "uri" + }, + "display_title": { + "type": "string" + } + }, + "required": [ + "artifacts_url", + "cancel_url", + "check_suite_url", + "check_suite_id", + "check_suite_node_id", + "conclusion", + "created_at", + "event", + "head_branch", + "head_commit", + "head_repository", + "head_sha", + "html_url", + "id", + "jobs_url", + "logs_url", + "node_id", + "name", + "path", + "pull_requests", + "repository", + "rerun_url", + "run_number", + "status", + "updated_at", + "url", + "workflow_id", + "workflow_url", + "run_attempt", + "run_started_at", + "previous_attempt_url", + "actor", + "triggering_actor", + "display_title" + ] + } + }, + "required": [ + "action", + "repository", + "sender", + "workflow", + "workflow_run" + ] + }, + "create-event": { + "title": "CreateEvent", + "type": "object", + "properties": { + "ref": { "type": "string" }, - "gists_url": { + "ref_type": { "type": "string" }, - "starred_url": { + "full_ref": { "type": "string" }, - "events_url": { + "master_branch": { "type": "string" }, - "public_repos": { - "type": "integer" - }, - "public_gists": { - "type": "integer" - }, - "followers": { - "type": "integer" - }, - "following": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string", - "nullable": true - }, - "bio": { - "type": "string", - "nullable": true - }, - "email": { - "type": "string", - "format": "email", - "nullable": true - }, - "location": { - "type": "string", - "nullable": true - }, - "site_admin": { - "type": "boolean" - }, - "hireable": { - "type": "boolean", - "nullable": true - }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" - }, - "blog": { - "type": "string", - "nullable": true - }, - "company": { + "description": { "type": "string", "nullable": true }, - "suspended_at": { - "type": "string", - "format": "date-time", - "nullable": true + "pusher_type": { + "type": "string" } }, "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url", - "score" + "ref", + "ref_type", + "full_ref", + "master_branch", + "pusher_type" ] }, - "private-user": { - "title": "Private User", - "description": "Private User", + "delete-event": { + "title": "DeleteEvent", "type": "object", "properties": { - "login": { - "type": "string", - "example": "octocat" - }, - "id": { - "type": "integer", - "example": 1 - }, - "node_id": { - "type": "string", - "example": "MDQ6VXNlcjE=" - }, - "avatar_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" - }, - "gravatar_id": { - "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", - "nullable": true - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat" - }, - "followers_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/followers" - }, - "following_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" - }, - "gists_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" - }, - "starred_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" - }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" - }, - "organizations_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" - }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" - }, - "events_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" - }, - "received_events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" - }, - "type": { - "type": "string", - "example": "User" - }, - "site_admin": { - "type": "boolean" - }, - "name": { - "type": "string", - "example": "monalisa octocat", - "nullable": true - }, - "company": { - "type": "string", - "example": "GitHub", - "nullable": true - }, - "blog": { - "type": "string", - "example": "https://github.com/blog", - "nullable": true - }, - "location": { - "type": "string", - "example": "San Francisco", - "nullable": true - }, - "email": { - "type": "string", - "format": "email", - "example": "octocat@github.com", - "nullable": true - }, - "hireable": { - "type": "boolean", - "nullable": true - }, - "bio": { - "type": "string", - "example": "There once was...", - "nullable": true - }, - "twitter_username": { - "type": "string", - "example": "monalisa", - "nullable": true - }, - "public_repos": { - "type": "integer", - "example": 2 + "ref": { + "type": "string" }, - "public_gists": { - "type": "integer", - "example": 1 + "ref_type": { + "type": "string" }, - "followers": { - "type": "integer", - "example": 20 + "full_ref": { + "type": "string" }, - "following": { - "type": "integer", - "example": 0 + "pusher_type": { + "type": "string" + } + }, + "required": [ + "ref", + "ref_type", + "full_ref", + "pusher_type" + ] + }, + "discussion-event": { + "title": "DiscussionEvent", + "type": "object", + "properties": { + "action": { + "type": "string" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2008-01-14T04:33:35Z" + "discussion": { + "$ref": "#/components/schemas/discussion" + } + }, + "required": [ + "action", + "discussion" + ] + }, + "issues-event": { + "title": "IssuesEvent", + "type": "object", + "properties": { + "action": { + "type": "string" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2008-01-14T04:33:35Z" + "issue": { + "$ref": "#/components/schemas/issue" }, - "private_gists": { - "type": "integer", - "example": 81 + "assignee": { + "$ref": "#/components/schemas/simple-user" }, - "total_private_repos": { - "type": "integer", - "example": 100 + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, - "owned_private_repos": { - "type": "integer", - "example": 100 + "label": { + "$ref": "#/components/schemas/label" }, - "disk_usage": { - "type": "integer", - "example": 10000 + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } + } + }, + "required": [ + "action", + "issue" + ] + }, + "issue-comment-event": { + "title": "IssueCommentEvent", + "type": "object", + "properties": { + "action": { + "type": "string" }, - "collaborators": { - "type": "integer", - "example": 8 + "issue": { + "$ref": "#/components/schemas/issue" }, - "two_factor_authentication": { - "type": "boolean", - "example": true + "comment": { + "$ref": "#/components/schemas/issue-comment" + } + }, + "required": [ + "action", + "issue", + "comment" + ] + }, + "fork-event": { + "title": "ForkEvent", + "type": "object", + "properties": { + "action": { + "type": "string" }, - "plan": { + "forkee": { "type": "object", "properties": { - "collaborators": { + "id": { "type": "integer" }, + "node_id": { + "type": "string" + }, "name": { "type": "string" }, - "space": { + "full_name": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "html_url": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "forks_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "archive_url": { + "type": "string" + }, + "downloads_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "pulls_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "git_url": { + "type": "string" + }, + "ssh_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string", + "nullable": true + }, + "size": { "type": "integer" }, - "private_repos": { + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "language": { + "type": "string", + "nullable": true + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_discussions": { + "type": "boolean" + }, + "has_pull_requests": { + "type": "boolean" + }, + "forks_count": { + "type": "integer" + }, + "mirror_url": { + "type": "string", + "nullable": true + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "open_issues_count": { + "type": "integer" + }, + "license": { + "$ref": "#/components/schemas/nullable-license-simple" + }, + "allow_forking": { + "type": "boolean" + }, + "is_template": { + "type": "boolean" + }, + "web_commit_signoff_required": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "type": "string" + }, + "forks": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "public": { + "type": "boolean" } - }, - "required": [ - "collaborators", - "name", - "space", - "private_repos" - ] - }, - "suspended_at": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "business_plus": { - "type": "boolean" - }, - "ldap_dn": { + } + } + }, + "required": [ + "action", + "forkee" + ] + }, + "gollum-event": { + "title": "GollumEvent", + "type": "object", + "properties": { + "pages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "page_name": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "summary": { + "type": "string", + "nullable": true + }, + "action": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "html_url": { + "type": "string" + } + } + } + } + }, + "required": [ + "pages" + ] + }, + "member-event": { + "title": "MemberEvent", + "type": "object", + "properties": { + "action": { "type": "string" + }, + "member": { + "$ref": "#/components/schemas/simple-user" } }, "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url", - "bio", - "blog", - "company", - "email", - "followers", - "following", - "hireable", - "location", - "name", - "public_gists", - "public_repos", - "created_at", - "updated_at", - "collaborators", - "disk_usage", - "owned_private_repos", - "private_gists", - "total_private_repos", - "two_factor_authentication" + "action", + "member" ] }, - "email": { - "title": "Email", - "description": "Email", + "public-event": { + "title": "PublicEvent", + "type": "object" + }, + "push-event": { + "title": "PushEvent", "type": "object", "properties": { - "email": { - "type": "string", - "format": "email", - "example": "octocat@github.com" + "repository_id": { + "type": "integer" }, - "primary": { - "type": "boolean", - "example": true + "push_id": { + "type": "integer" }, - "verified": { - "type": "boolean", - "example": true + "ref": { + "type": "string" }, - "visibility": { - "type": "string", - "example": "public", - "nullable": true + "head": { + "type": "string" + }, + "before": { + "type": "string" } }, "required": [ - "email", - "primary", - "verified", - "visibility" + "repository_id", + "push_id", + "ref", + "head", + "before" ] }, - "gpg-key": { - "title": "GPG Key", - "description": "A unique encryption key", + "pull-request-event": { + "title": "PullRequestEvent", "type": "object", "properties": { - "id": { - "type": "integer", - "example": 3 + "action": { + "type": "string" }, - "primary_key_id": { - "type": "integer", - "nullable": true + "number": { + "type": "integer" }, - "key_id": { - "type": "string", - "example": "3262EFF25BA0D270" + "pull_request": { + "$ref": "#/components/schemas/pull-request-minimal" }, - "public_key": { - "type": "string", - "example": "xsBNBFayYZ..." + "assignee": { + "$ref": "#/components/schemas/simple-user" }, - "emails": { + "assignees": { "type": "array", - "example": [ - { - "email": "mastahyeti@users.noreply.github.com", - "verified": true - } - ], "items": { - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - } + "$ref": "#/components/schemas/simple-user" } }, - "subkeys": { + "label": { + "$ref": "#/components/schemas/label" + }, + "labels": { "type": "array", - "example": [ - { - "id": 4, - "primary_key_id": 3, - "key_id": "4A595D4C72EE49C7", - "public_key": "zsBNBFayYZ...", - "emails": [ - - ], - "subkeys": [ - - ], - "can_sign": false, - "can_encrypt_comms": true, - "can_encrypt_storage": true, - "can_certify": false, - "created_at": "2016-03-24T11:31:04-06:00", - "expires_at": null - } - ], "items": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "primary_key_id": { - "type": "integer" - }, - "key_id": { - "type": "string" - }, - "public_key": { - "type": "string" - }, - "emails": { - "type": "array", - "items": { - } - }, - "subkeys": { - "type": "array", - "items": { - } - }, - "can_sign": { - "type": "boolean" - }, - "can_encrypt_comms": { - "type": "boolean" - }, - "can_encrypt_storage": { - "type": "boolean" - }, - "can_certify": { - "type": "boolean" - }, - "created_at": { - "type": "string" - }, - "expires_at": { - "type": "string", - "nullable": true - }, - "raw_key": { - "type": "string", - "nullable": true - } - } + "$ref": "#/components/schemas/label" } + } + }, + "required": [ + "action", + "number", + "pull_request" + ] + }, + "pull-request-review-comment-event": { + "title": "PullRequestReviewCommentEvent", + "type": "object", + "properties": { + "action": { + "type": "string" }, - "can_sign": { - "type": "boolean", - "example": true - }, - "can_encrypt_comms": { - "type": "boolean" - }, - "can_encrypt_storage": { - "type": "boolean" - }, - "can_certify": { - "type": "boolean", - "example": true - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2016-03-24T11:31:04-06:00" - }, - "expires_at": { - "type": "string", - "format": "date-time", - "nullable": true + "pull_request": { + "$ref": "#/components/schemas/pull-request-minimal" }, - "raw_key": { - "type": "string", - "nullable": true + "comment": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "pull_request_review_id": { + "type": "integer", + "nullable": true + }, + "diff_hunk": { + "type": "string" + }, + "path": { + "type": "string" + }, + "position": { + "type": "integer", + "nullable": true + }, + "original_position": { + "type": "integer" + }, + "subject_type": { + "type": "string", + "nullable": true + }, + "commit_id": { + "type": "string" + }, + "user": { + "title": "User", + "type": "object", + "nullable": true, + "properties": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" + } + } + }, + "body": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "pull_request_url": { + "type": "string", + "format": "uri" + }, + "_links": { + "type": "object", + "properties": { + "html": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + }, + "self": { + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self", + "html", + "pull_request" + ] + }, + "original_commit_id": { + "type": "string" + }, + "reactions": { + "title": "Reactions", + "type": "object", + "properties": { + "+1": { + "type": "integer" + }, + "-1": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "rocket": { + "type": "integer" + }, + "total_count": { + "type": "integer" + }, + "url": { + "type": "string", + "format": "uri" + } + } + }, + "in_reply_to_id": { + "type": "integer" + } + }, + "required": [ + "url", + "pull_request_review_id", + "id", + "node_id", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "body", + "created_at", + "updated_at", + "html_url", + "pull_request_url", + "_links", + "reactions" + ] } }, "required": [ - "id", - "primary_key_id", - "key_id", - "raw_key", - "public_key", - "created_at", - "expires_at", - "can_sign", - "can_encrypt_comms", - "can_encrypt_storage", - "can_certify", - "emails", - "subkeys" + "action", + "comment", + "pull_request" ] }, - "key": { - "title": "Key", - "description": "Key", + "pull-request-review-event": { + "title": "PullRequestReviewEvent", "type": "object", "properties": { - "key": { - "type": "string" - }, - "id": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "title": { + "action": { "type": "string" }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "verified": { - "type": "boolean" + "review": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body": { + "type": "string" + }, + "commit_id": { + "type": "string" + }, + "submitted_at": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "pull_request_url": { + "type": "string", + "format": "uri" + }, + "_links": { + "type": "object", + "properties": { + "html": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": [ + "href" + ] + }, + "pull_request": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "html", + "pull_request" + ] + }, + "updated_at": { + "type": "string" + } + } }, - "read_only": { - "type": "boolean" + "pull_request": { + "$ref": "#/components/schemas/pull-request-minimal" } }, "required": [ - "key", - "id", - "url", - "title", - "created_at", - "verified", - "read_only" + "action", + "review", + "pull_request" ] }, - "marketplace-account": { - "title": "Marketplace Account", + "commit-comment-event": { + "title": "CommitCommentEvent", "type": "object", "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "type": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "login": { + "action": { "type": "string" }, - "email": { - "type": "string", - "nullable": true, - "format": "email" - }, - "organization_billing_email": { - "type": "string", - "nullable": true, - "format": "email" + "comment": { + "type": "object", + "properties": { + "html_url": { + "type": "string", + "format": "uri" + }, + "url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "body": { + "type": "string" + }, + "path": { + "type": "string", + "nullable": true + }, + "position": { + "type": "integer", + "nullable": true + }, + "line": { + "type": "integer", + "nullable": true + }, + "commit_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" + } + } } }, "required": [ - "url", - "id", - "type", - "login" + "action", + "comment" ] }, - "user-marketplace-purchase": { - "title": "User Marketplace Purchase", - "description": "User Marketplace Purchase", + "release-event": { + "title": "ReleaseEvent", "type": "object", "properties": { - "billing_cycle": { - "type": "string", - "example": "monthly" - }, - "next_billing_date": { - "type": "string", - "format": "date-time", - "example": "2017-11-11T00:00:00Z", - "nullable": true - }, - "unit_count": { - "type": "integer", - "nullable": true - }, - "on_free_trial": { - "type": "boolean", - "example": true - }, - "free_trial_ends_on": { - "type": "string", - "format": "date-time", - "example": "2017-11-11T00:00:00Z", - "nullable": true - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-11-02T01:12:12Z", - "nullable": true - }, - "account": { - "$ref": "#/components/schemas/marketplace-account" + "action": { + "type": "string" }, - "plan": { - "$ref": "#/components/schemas/marketplace-listing-plan" + "release": { + "allOf": [ + { + "$ref": "#/components/schemas/release" + }, + { + "type": "object", + "properties": { + "is_short_description_html_truncated": { + "type": "boolean" + }, + "short_description_html": { + "type": "string" + } + } + } + ] } }, "required": [ - "billing_cycle", - "next_billing_date", - "unit_count", - "updated_at", - "on_free_trial", - "free_trial_ends_on", - "account", - "plan" + "action", + "release" ] }, - "starred-repository": { - "title": "Starred Repository", - "description": "Starred Repository", + "watch-event": { + "title": "WatchEvent", "type": "object", "properties": { - "starred_at": { - "type": "string", - "format": "date-time" - }, - "repo": { - "$ref": "#/components/schemas/repository" + "action": { + "type": "string" } }, "required": [ - "starred_at", - "repo" + "action" ] + } + }, + "examples": { + "root": { + "value": { + "current_user_url": "https://api.github.com/user", + "current_user_authorizations_html_url": "https://github.com/settings/connections/applications{/client_id}", + "authorizations_url": "https://api.github.com/authorizations", + "code_search_url": "https://api.github.com/search/code?q={query}{&page,per_page,sort,order}", + "commit_search_url": "https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}", + "emails_url": "https://api.github.com/user/emails", + "emojis_url": "https://api.github.com/emojis", + "events_url": "https://api.github.com/events", + "feeds_url": "https://api.github.com/feeds", + "followers_url": "https://api.github.com/user/followers", + "following_url": "https://api.github.com/user/following{/target}", + "gists_url": "https://api.github.com/gists{/gist_id}", + "hub_url": "https://api.github.com/hub", + "issue_search_url": "https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}", + "issues_url": "https://api.github.com/issues", + "keys_url": "https://api.github.com/user/keys", + "label_search_url": "https://api.github.com/search/labels?q={query}&repository_id={repository_id}{&page,per_page}", + "notifications_url": "https://api.github.com/notifications", + "organization_url": "https://api.github.com/orgs/{org}", + "organization_repositories_url": "https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}", + "organization_teams_url": "https://api.github.com/orgs/{org}/teams", + "public_gists_url": "https://api.github.com/gists/public", + "rate_limit_url": "https://api.github.com/rate_limit", + "repository_url": "https://api.github.com/repos/{owner}/{repo}", + "repository_search_url": "https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}", + "current_user_repositories_url": "https://api.github.com/user/repos{?type,page,per_page,sort}", + "starred_url": "https://api.github.com/user/starred{/owner}{/repo}", + "starred_gists_url": "https://api.github.com/gists/starred", + "topic_search_url": "https://api.github.com/search/topics?q={query}{&page,per_page}", + "user_url": "https://api.github.com/users/{user}", + "user_organizations_url": "https://api.github.com/user/orgs", + "user_repositories_url": "https://api.github.com/users/{user}/repos{?type,page,per_page,sort}", + "user_search_url": "https://api.github.com/search/users?q={query}{&page,per_page,sort,order}" + } }, - "hovercard": { - "title": "Hovercard", - "description": "Hovercard", - "type": "object", - "properties": { - "contexts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "message": { - "type": "string" + "global-advisory-items": { + "value": [ + { + "id": 1, + "ghsa_id": "GHSA-abcd-1234-efgh", + "cve_id": "CVE-2050-00000", + "url": "https://api.github.com/advisories/GHSA-abcd-1234-efgh", + "html_url": "https://github.com/advisories/GHSA-abcd-1234-efgh", + "repository_advisory_url": "https://api.github.com/repos/project/a-package/security-advisories/GHSA-abcd-1234-efgh", + "summary": "Heartbleed security advisory", + "description": "This bug allows an attacker to read portions of the affected server’s memory, potentially disclosing sensitive information.", + "type": "reviewed", + "severity": "high", + "source_code_location": "https://github.com/project/a-package", + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-abcd-1234-efgh" + }, + { + "type": "CVE", + "value": "CVE-2050-00000" + } + ], + "references": [ + "https://nvd.nist.gov/vuln/detail/CVE-2050-00000" + ], + "published_at": "2023-03-23T02:30:56Z", + "updated_at": "2023-03-24T02:30:56Z", + "github_reviewed_at": "2023-03-23T02:30:56Z", + "nvd_published_at": "2023-03-25T02:30:56Z", + "withdrawn_at": null, + "vulnerabilities": [ + { + "package": { + "ecosystem": "npm", + "name": "a-package" }, - "octicon": { - "type": "string" - } + "first_patched_version": "1.0.3", + "vulnerable_version_range": "<=1.0.2", + "vulnerable_functions": [ + "a_function" + ] + } + ], + "cvss": { + "vector_string": "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H", + "score": 7.6 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H", + "score": 7.6 }, - "required": [ - "message", - "octicon" - ] - } + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 9.3 + } + }, + "cwes": [ + { + "cwe_id": "CWE-400", + "name": "Uncontrolled Resource Consumption" + } + ], + "epss": [ + { + "percentage": 0.00045, + "percentile": "0.16001e0" + } + ], + "credits": [ + { + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "type": "analyst" + } + ] } - }, - "required": [ - "contexts" ] }, - "key-simple": { - "title": "Key Simple", - "description": "Key Simple", - "type": "object", - "properties": { - "id": { - "type": "integer" + "global-advisory": { + "value": { + "ghsa_id": "GHSA-abcd-1234-efgh", + "cve_id": "CVE-2050-00000", + "url": "https://api.github.com/advisories/GHSA-abcd-1234-efgh", + "html_url": "https://github.com/advisories/GHSA-abcd-1234-efgh", + "repository_advisory_url": "https://api.github.com/repos/project/a-package/security-advisories/GHSA-abcd-1234-efgh", + "summary": "A short summary of the advisory.", + "description": "A detailed description of what the advisory entails.", + "type": "reviewed", + "severity": "high", + "source_code_location": "https://github.com/project/a-package", + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-abcd-1234-efgh" + }, + { + "type": "CVE", + "value": "CVE-2050-00000" + } + ], + "references": [ + "https://nvd.nist.gov/vuln/detail/CVE-2050-00000" + ], + "published_at": "2023-03-23T02:30:56Z", + "updated_at": "2023-03-24T02:30:56Z", + "github_reviewed_at": "2023-03-23T02:30:56Z", + "nvd_published_at": "2023-03-25T02:30:56Z", + "withdrawn_at": null, + "vulnerabilities": [ + { + "package": { + "ecosystem": "npm", + "name": "a-package" + }, + "first_patched_version": "1.0.3", + "vulnerable_version_range": "<=1.0.2", + "vulnerable_functions": [ + "a_function" + ] + } + ], + "cvss": { + "vector_string": "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H", + "score": 7.6 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H", + "score": 7.6 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 9.3 + } }, - "key": { - "type": "string" - } - }, - "required": [ - "key", - "id" - ] - } - }, - "examples": { + "cwes": [ + { + "cwe_id": "CWE-400", + "name": "Uncontrolled Resource Consumption" + } + ], + "credits": [ + { + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "type": "analyst" + } + ] + } + }, "integration": { "value": { "id": 1, "slug": "octoapp", + "client_id": "Iv1.ab1112223334445c", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { - "login": "github", + "login": "octocat", "id": 1, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", - "url": "https://api.github.com/orgs/github", - "repos_url": "https://api.github.com/orgs/github/repos", - "events_url": "https://api.github.com/orgs/github/events", + "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", + "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", @@ -74858,9 +280749,11 @@ "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", - "site_admin": true + "site_admin": false }, "name": "Octocat App", "description": "", @@ -74948,7 +280841,8 @@ "event": "issues", "action": "opened", "installation_id": 123, - "repository_id": 456 + "repository_id": 456, + "throttled_at": "2019-06-03T00:57:16Z" }, { "id": 123456789, @@ -74961,7 +280855,8 @@ "event": "issues", "action": "opened", "installation_id": 123, - "repository_id": 456 + "repository_id": 456, + "throttled_at": null } ] }, @@ -74978,6 +280873,8 @@ "action": "opened", "installation_id": 123, "repository_id": 456, + "url": "https://www.example.com", + "throttled_at": "2019-06-03T00:57:16Z", "request": { "headers": { "X-GitHub-Delivery": "0b989ba4-242f-11e5-81e1-c7b6966d2516", @@ -75009,6 +280906,54 @@ } } }, + "integration-installation-request-paginated": { + "value": [ + { + "id": 25381, + "node_id": "MDEyOkludGVncmF0aW9uMTIzNDU2Nzg5MA==", + "account": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "requester": { + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2022-07-08T16:18:44-04:00" + } + ] + }, "base-installation-items": { "value": [ { @@ -75033,7 +280978,7 @@ "type": "User", "site_admin": false }, - "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "access_tokens_url": "https://api.github.com/app/installations/1/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/organizations/github/settings/installations/1", "app_id": 1, @@ -75086,7 +281031,7 @@ "type": "User", "site_admin": false }, - "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "access_tokens_url": "https://api.github.com/app/installations/1/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/organizations/github/settings/installations/1", "app_id": 1, @@ -75251,40 +281196,6 @@ ] } }, - "application-grant-items": { - "value": [ - { - "id": 1, - "url": "https://api.github.com/applications/grants/1", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" - }, - "created_at": "2011-09-06T17:26:27Z", - "updated_at": "2011-09-06T20:39:23Z", - "scopes": [ - "public_repo" - ] - } - ] - }, - "application-grant": { - "value": { - "id": 1, - "url": "https://api.github.com/applications/grants/1", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" - }, - "created_at": "2011-09-06T17:26:27Z", - "updated_at": "2011-09-06T20:39:23Z", - "scopes": [ - "public_repo" - ] - } - }, "authorization-with-user": { "value": { "id": 1, @@ -75299,13 +281210,14 @@ "app": { "url": "http://my-github-app.com", "name": "my github app", - "client_id": "abcde12345fghij67890" + "client_id": "Iv1.8a61f9b3a7aba766" }, "note": "optional note", "note_url": "http://optional/note/url", "updated_at": "2011-09-06T20:39:23Z", "created_at": "2011-09-06T17:26:27Z", "fingerprint": "jklmnop12345678", + "expires_at": "2011-09-08T17:26:27Z", "user": { "login": "octocat", "id": 1, @@ -75332,22 +281244,21 @@ "value": { "id": 1, "url": "https://api.github.com/authorizations/1", - "scopes": [ - - ], + "scopes": [], "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", "token_last_eight": "Ae178B4a", "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", "app": { "url": "http://my-github-app.com", "name": "my github app", - "client_id": "abcde12345fghij67890" + "client_id": "Iv1.8a61f9b3a7aba766" }, "note": "optional note", "note_url": "http://optional/note/url", "updated_at": "2011-09-06T20:39:23Z", "created_at": "2011-09-06T17:26:27Z", "fingerprint": "jklmnop12345678", + "expires_at": "2011-09-08T17:26:27Z", "user": { "login": "octocat", "id": 1, @@ -75398,144 +281309,173 @@ "site_admin": false }, "has_multiple_single_files": false, - "single_file_paths": [ - - ] + "single_file_paths": [] } } }, - "authorization-items": { - "value": [ - { - "id": 1, - "url": "https://api.github.com/authorizations/1", - "scopes": [ - "public_repo" - ], - "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", - "token_last_eight": "Ae178B4a", - "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" - }, - "note": "optional note", - "note_url": "http://optional/note/url", - "updated_at": "2011-09-06T20:39:23Z", - "created_at": "2011-09-06T17:26:27Z", - "fingerprint": "jklmnop12345678" - } - ] - }, - "authorization": { + "classroom-assignment": { "value": { - "id": 1, - "url": "https://api.github.com/authorizations/1", - "scopes": [ - "public_repo" - ], - "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", - "token_last_eight": "Ae178B4a", - "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" + "id": "12,", + "public_repo": "false,", + "title": "Intro to Binaries", + "type": "individual", + "invite_link": "https://classroom.github.com/a/Lx7jiUgx", + "invitations_enabled": "true,", + "slug": "intro-to-binaries", + "students_are_repo_admins": false, + "feedback_pull_requests_enabled": true, + "max_teams": 0, + "max_members": 0, + "editor": "codespaces", + "accepted": 100, + "submitted": 40, + "passing": 10, + "language": "ruby", + "deadline": "2011-01-26T19:06:43Z", + "stater_code_repository": { + "id": 1296269, + "full_name": "octocat/Hello-World", + "html_url": "https://github.com/octocat/Hello-World", + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "private": false, + "default_branch": "main" }, - "note": "optional note", - "note_url": "http://optional/note/url", - "updated_at": "2011-09-06T20:39:23Z", - "created_at": "2011-09-06T17:26:27Z", - "fingerprint": "" + "classroom": { + "id": 1296269, + "name": "Programming Elixir", + "archived": "false,", + "url": "https://classroom.github.com/classrooms/1-programming-elixir" + } } }, - "authorization-response-if-returning-an-existing-token-2": { + "classroom-accepted-assignment": { "value": { - "id": 1, - "url": "https://api.github.com/authorizations/1", - "scopes": [ - "public_repo" + "id": "12,", + "submitted": "false,", + "passing": "false,", + "commit_count": 5, + "grade": "5/10", + "students": [ + { + "id": 1, + "login": "octocat", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "html_url": "https://github.com/octocat" + } ], - "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", - "token_last_eight": "Ae178B4a", - "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" - }, - "note": "optional note", - "note_url": "http://optional/note/url", - "updated_at": "2011-09-06T20:39:23Z", - "created_at": "2011-09-06T17:26:27Z", - "fingerprint": "" + "repository": { + "id": 1296269, + "full_name": "octocat/Hello-World", + "html_url": "https://github.com/octocat/Hello-World", + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "private": false, + "default_branch": "main" + }, + "assignment": { + "id": "12,", + "public_repo": "false,", + "title": "Intro to Binaries", + "type": "individual", + "invite_link": "https://classroom.github.com/a/Lx7jiUgx", + "invitations_enabled": "true,", + "slug": "intro-to-binaries", + "students_are_repo_admins": false, + "feedback_pull_requests_enabled": true, + "max_teams": 0, + "max_members": 0, + "editor": "codespaces", + "accepted": 100, + "submitted": 40, + "passing": 10, + "language": "ruby", + "classroom": { + "id": 1296269, + "name": "Programming Elixir", + "archived": "false,", + "url": "https://classroom.github.com/classrooms/1-programming-elixir" + } + } } }, - "authorization-response-if-returning-an-existing-token": { + "classroom-assignment-grades": { + "value": [ + { + "assignment_name": "Introduction to Strings", + "assignment_url": "https://classroom.github.com/classrooms/1337/assignments/1337", + "starter_code_url": "", + "github_username": "octocat", + "roster_identifier": "octocat@github.com", + "student_repository_name": "intro-to-strings-1337-octocat", + "student_repository_url": "https://github.com/timeforschool/intro-to-strings-1337-octocat", + "submission_timestamp": "2018-11-12 01:02", + "points_awarded": 10, + "points_available": 15, + "group_name": "octocat-and-friends" + }, + { + "assignment_name": "Introduction to Strings", + "assignment_url": "https://classroom.github.com/classrooms/1337/assignments/1337", + "starter_code_url": "", + "github_username": "monalisa", + "roster_identifier": "monalisa@github.com", + "student_repository_name": "intro-to-strings-1337-monalisa", + "student_repository_url": "https://github.com/timeforschool/intro-to-strings-1337-monalisa", + "submission_timestamp": "2018-11-12 01:11", + "points_awarded": 15, + "points_available": 15, + "group_name": "monalisa-and-friends" + } + ] + }, + "simple-classroom": { "value": { - "id": 1, - "url": "https://api.github.com/authorizations/1", - "scopes": [ - "public_repo" - ], - "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", - "token_last_eight": "Ae178B4a", - "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" - }, - "note": "optional note", - "note_url": "http://optional/note/url", - "updated_at": "2011-09-06T20:39:23Z", - "created_at": "2011-09-06T17:26:27Z", - "fingerprint": "jklmnop12345678" + "id": 1296269, + "name": "Programming Elixir", + "archived": "false,", + "url": "https://classroom.github.com/classrooms/1-programming-elixir" } }, - "authorization-3": { + "classroom": { "value": { - "id": 1, - "url": "https://api.github.com/authorizations/1", - "scopes": [ - "public_repo" - ], - "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", - "token_last_eight": "Ae178B4a", - "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" + "id": 1296269, + "name": "Programming Elixir", + "archived": "false,", + "organization": { + "id": 1, + "login": "programming-elixir", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "html_url": "https://github.com/programming-elixir", + "name": "Learn how to build fault tolerant applications", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4" }, - "note": "optional note", - "note_url": "http://optional/note/url", - "updated_at": "2011-09-06T20:39:23Z", - "created_at": "2011-09-06T17:26:27Z", - "fingerprint": "jklmnop12345678" + "url": "https://classroom.github.com/classrooms/1-programming-elixir" } }, - "authorization-2": { + "simple-classroom-assignment": { "value": { - "id": 1, - "url": "https://api.github.com/authorizations/1", - "scopes": [ - "public_repo" - ], - "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", - "token_last_eight": "Ae178B4a", - "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", - "app": { - "url": "http://my-github-app.com", - "name": "my github app", - "client_id": "abcde12345fghij67890" - }, - "note": "optional note", - "note_url": "http://optional/note/url", - "updated_at": "2011-09-06T20:39:23Z", - "created_at": "2011-09-06T17:26:27Z", - "fingerprint": "jklmnop12345678" + "id": "12,", + "public_repo": "false,", + "title": "Intro to Binaries", + "type": "individual", + "invite_link": "https://classroom.github.com/a/Lx7jiUgx", + "invitations_enabled": "true,", + "slug": "intro-to-binaries", + "students_are_repo_admins": false, + "feedback_pull_requests_enabled": true, + "max_teams": 0, + "max_members": 0, + "editor": "codespaces", + "accepted": 100, + "submitted": 40, + "passing": 10, + "language": "ruby", + "deadline": "2020-01-11T11:59:22Z", + "classroom": { + "id": 1296269, + "name": "Programming Elixir", + "archived": "false,", + "url": "https://classroom.github.com/classrooms/1-programming-elixir" + } } }, "code-of-conduct-simple-items": { @@ -75559,296 +281499,2741 @@ "key": "contributor_covenant", "name": "Contributor Covenant", "url": "https://api.github.com/codes_of_conduct/contributor_covenant", - "body": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n", + "body": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/).\n", "html_url": "http://contributor-covenant.org/version/1/4/" } }, - "actions-enterprise-permissions": { + "emojis-get": { "value": { - "enabled_organizations": "all", - "allowed_actions": "selected", - "selected_actions_url": "https://api.github.com/enterprises/2/actions/permissions/selected-actions" + "+1": "https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png?v8", + "-1": "https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png?v8", + "100": "https://github.githubassets.com/images/icons/emoji/unicode/1f4af.png?v8", + "1234": "https://github.githubassets.com/images/icons/emoji/unicode/1f522.png?v8", + "1st_place_medal": "https://github.githubassets.com/images/icons/emoji/unicode/1f947.png?v8", + "2nd_place_medal": "https://github.githubassets.com/images/icons/emoji/unicode/1f948.png?v8", + "3rd_place_medal": "https://github.githubassets.com/images/icons/emoji/unicode/1f949.png?v8", + "8ball": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b1.png?v8", + "a": "https://github.githubassets.com/images/icons/emoji/unicode/1f170.png?v8", + "ab": "https://github.githubassets.com/images/icons/emoji/unicode/1f18e.png?v8", + "abacus": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ee.png?v8", + "abc": "https://github.githubassets.com/images/icons/emoji/unicode/1f524.png?v8", + "abcd": "https://github.githubassets.com/images/icons/emoji/unicode/1f521.png?v8", + "accept": "https://github.githubassets.com/images/icons/emoji/unicode/1f251.png?v8", + "accessibility": "https://github.githubassets.com/images/icons/emoji/accessibility.png?v8", + "accordion": "https://github.githubassets.com/images/icons/emoji/unicode/1fa97.png?v8", + "adhesive_bandage": "https://github.githubassets.com/images/icons/emoji/unicode/1fa79.png?v8", + "adult": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1.png?v8", + "aerial_tramway": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a1.png?v8", + "afghanistan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1eb.png?v8", + "airplane": "https://github.githubassets.com/images/icons/emoji/unicode/2708.png?v8", + "aland_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1fd.png?v8", + "alarm_clock": "https://github.githubassets.com/images/icons/emoji/unicode/23f0.png?v8", + "albania": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f1.png?v8", + "alembic": "https://github.githubassets.com/images/icons/emoji/unicode/2697.png?v8", + "algeria": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ff.png?v8", + "alien": "https://github.githubassets.com/images/icons/emoji/unicode/1f47d.png?v8", + "ambulance": "https://github.githubassets.com/images/icons/emoji/unicode/1f691.png?v8", + "american_samoa": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f8.png?v8", + "amphora": "https://github.githubassets.com/images/icons/emoji/unicode/1f3fa.png?v8", + "anatomical_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1fac0.png?v8", + "anchor": "https://github.githubassets.com/images/icons/emoji/unicode/2693.png?v8", + "andorra": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1e9.png?v8", + "angel": "https://github.githubassets.com/images/icons/emoji/unicode/1f47c.png?v8", + "anger": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a2.png?v8", + "angola": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f4.png?v8", + "angry": "https://github.githubassets.com/images/icons/emoji/unicode/1f620.png?v8", + "anguilla": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ee.png?v8", + "anguished": "https://github.githubassets.com/images/icons/emoji/unicode/1f627.png?v8", + "ant": "https://github.githubassets.com/images/icons/emoji/unicode/1f41c.png?v8", + "antarctica": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f6.png?v8", + "antigua_barbuda": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ec.png?v8", + "apple": "https://github.githubassets.com/images/icons/emoji/unicode/1f34e.png?v8", + "aquarius": "https://github.githubassets.com/images/icons/emoji/unicode/2652.png?v8", + "argentina": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f7.png?v8", + "aries": "https://github.githubassets.com/images/icons/emoji/unicode/2648.png?v8", + "armenia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f2.png?v8", + "arrow_backward": "https://github.githubassets.com/images/icons/emoji/unicode/25c0.png?v8", + "arrow_double_down": "https://github.githubassets.com/images/icons/emoji/unicode/23ec.png?v8", + "arrow_double_up": "https://github.githubassets.com/images/icons/emoji/unicode/23eb.png?v8", + "arrow_down": "https://github.githubassets.com/images/icons/emoji/unicode/2b07.png?v8", + "arrow_down_small": "https://github.githubassets.com/images/icons/emoji/unicode/1f53d.png?v8", + "arrow_forward": "https://github.githubassets.com/images/icons/emoji/unicode/25b6.png?v8", + "arrow_heading_down": "https://github.githubassets.com/images/icons/emoji/unicode/2935.png?v8", + "arrow_heading_up": "https://github.githubassets.com/images/icons/emoji/unicode/2934.png?v8", + "arrow_left": "https://github.githubassets.com/images/icons/emoji/unicode/2b05.png?v8", + "arrow_lower_left": "https://github.githubassets.com/images/icons/emoji/unicode/2199.png?v8", + "arrow_lower_right": "https://github.githubassets.com/images/icons/emoji/unicode/2198.png?v8", + "arrow_right": "https://github.githubassets.com/images/icons/emoji/unicode/27a1.png?v8", + "arrow_right_hook": "https://github.githubassets.com/images/icons/emoji/unicode/21aa.png?v8", + "arrow_up": "https://github.githubassets.com/images/icons/emoji/unicode/2b06.png?v8", + "arrow_up_down": "https://github.githubassets.com/images/icons/emoji/unicode/2195.png?v8", + "arrow_up_small": "https://github.githubassets.com/images/icons/emoji/unicode/1f53c.png?v8", + "arrow_upper_left": "https://github.githubassets.com/images/icons/emoji/unicode/2196.png?v8", + "arrow_upper_right": "https://github.githubassets.com/images/icons/emoji/unicode/2197.png?v8", + "arrows_clockwise": "https://github.githubassets.com/images/icons/emoji/unicode/1f503.png?v8", + "arrows_counterclockwise": "https://github.githubassets.com/images/icons/emoji/unicode/1f504.png?v8", + "art": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a8.png?v8", + "articulated_lorry": "https://github.githubassets.com/images/icons/emoji/unicode/1f69b.png?v8", + "artificial_satellite": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f0.png?v8", + "artist": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3a8.png?v8", + "aruba": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1fc.png?v8", + "ascension_island": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1e8.png?v8", + "asterisk": "https://github.githubassets.com/images/icons/emoji/unicode/002a-20e3.png?v8", + "astonished": "https://github.githubassets.com/images/icons/emoji/unicode/1f632.png?v8", + "astronaut": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f680.png?v8", + "athletic_shoe": "https://github.githubassets.com/images/icons/emoji/unicode/1f45f.png?v8", + "atm": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e7.png?v8", + "atom": "https://github.githubassets.com/images/icons/emoji/atom.png?v8", + "atom_symbol": "https://github.githubassets.com/images/icons/emoji/unicode/269b.png?v8", + "australia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1fa.png?v8", + "austria": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1f9.png?v8", + "auto_rickshaw": "https://github.githubassets.com/images/icons/emoji/unicode/1f6fa.png?v8", + "avocado": "https://github.githubassets.com/images/icons/emoji/unicode/1f951.png?v8", + "axe": "https://github.githubassets.com/images/icons/emoji/unicode/1fa93.png?v8", + "azerbaijan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ff.png?v8", + "b": "https://github.githubassets.com/images/icons/emoji/unicode/1f171.png?v8", + "baby": "https://github.githubassets.com/images/icons/emoji/unicode/1f476.png?v8", + "baby_bottle": "https://github.githubassets.com/images/icons/emoji/unicode/1f37c.png?v8", + "baby_chick": "https://github.githubassets.com/images/icons/emoji/unicode/1f424.png?v8", + "baby_symbol": "https://github.githubassets.com/images/icons/emoji/unicode/1f6bc.png?v8", + "back": "https://github.githubassets.com/images/icons/emoji/unicode/1f519.png?v8", + "bacon": "https://github.githubassets.com/images/icons/emoji/unicode/1f953.png?v8", + "badger": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a1.png?v8", + "badminton": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f8.png?v8", + "bagel": "https://github.githubassets.com/images/icons/emoji/unicode/1f96f.png?v8", + "baggage_claim": "https://github.githubassets.com/images/icons/emoji/unicode/1f6c4.png?v8", + "baguette_bread": "https://github.githubassets.com/images/icons/emoji/unicode/1f956.png?v8", + "bahamas": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f8.png?v8", + "bahrain": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ed.png?v8", + "balance_scale": "https://github.githubassets.com/images/icons/emoji/unicode/2696.png?v8", + "bald_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b2.png?v8", + "bald_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b2.png?v8", + "ballet_shoes": "https://github.githubassets.com/images/icons/emoji/unicode/1fa70.png?v8", + "balloon": "https://github.githubassets.com/images/icons/emoji/unicode/1f388.png?v8", + "ballot_box": "https://github.githubassets.com/images/icons/emoji/unicode/1f5f3.png?v8", + "ballot_box_with_check": "https://github.githubassets.com/images/icons/emoji/unicode/2611.png?v8", + "bamboo": "https://github.githubassets.com/images/icons/emoji/unicode/1f38d.png?v8", + "banana": "https://github.githubassets.com/images/icons/emoji/unicode/1f34c.png?v8", + "bangbang": "https://github.githubassets.com/images/icons/emoji/unicode/203c.png?v8", + "bangladesh": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1e9.png?v8", + "banjo": "https://github.githubassets.com/images/icons/emoji/unicode/1fa95.png?v8", + "bank": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e6.png?v8", + "bar_chart": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ca.png?v8", + "barbados": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1e7.png?v8", + "barber": "https://github.githubassets.com/images/icons/emoji/unicode/1f488.png?v8", + "baseball": "https://github.githubassets.com/images/icons/emoji/unicode/26be.png?v8", + "basecamp": "https://github.githubassets.com/images/icons/emoji/basecamp.png?v8", + "basecampy": "https://github.githubassets.com/images/icons/emoji/basecampy.png?v8", + "basket": "https://github.githubassets.com/images/icons/emoji/unicode/1f9fa.png?v8", + "basketball": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c0.png?v8", + "basketball_man": "https://github.githubassets.com/images/icons/emoji/unicode/26f9-2642.png?v8", + "basketball_woman": "https://github.githubassets.com/images/icons/emoji/unicode/26f9-2640.png?v8", + "bat": "https://github.githubassets.com/images/icons/emoji/unicode/1f987.png?v8", + "bath": "https://github.githubassets.com/images/icons/emoji/unicode/1f6c0.png?v8", + "bathtub": "https://github.githubassets.com/images/icons/emoji/unicode/1f6c1.png?v8", + "battery": "https://github.githubassets.com/images/icons/emoji/unicode/1f50b.png?v8", + "beach_umbrella": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d6.png?v8", + "bear": "https://github.githubassets.com/images/icons/emoji/unicode/1f43b.png?v8", + "bearded_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d4.png?v8", + "beaver": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ab.png?v8", + "bed": "https://github.githubassets.com/images/icons/emoji/unicode/1f6cf.png?v8", + "bee": "https://github.githubassets.com/images/icons/emoji/unicode/1f41d.png?v8", + "beer": "https://github.githubassets.com/images/icons/emoji/unicode/1f37a.png?v8", + "beers": "https://github.githubassets.com/images/icons/emoji/unicode/1f37b.png?v8", + "beetle": "https://github.githubassets.com/images/icons/emoji/unicode/1fab2.png?v8", + "beginner": "https://github.githubassets.com/images/icons/emoji/unicode/1f530.png?v8", + "belarus": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1fe.png?v8", + "belgium": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ea.png?v8", + "belize": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ff.png?v8", + "bell": "https://github.githubassets.com/images/icons/emoji/unicode/1f514.png?v8", + "bell_pepper": "https://github.githubassets.com/images/icons/emoji/unicode/1fad1.png?v8", + "bellhop_bell": "https://github.githubassets.com/images/icons/emoji/unicode/1f6ce.png?v8", + "benin": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ef.png?v8", + "bento": "https://github.githubassets.com/images/icons/emoji/unicode/1f371.png?v8", + "bermuda": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f2.png?v8", + "beverage_box": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c3.png?v8", + "bhutan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f9.png?v8", + "bicyclist": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b4.png?v8", + "bike": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b2.png?v8", + "biking_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b4-2642.png?v8", + "biking_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b4-2640.png?v8", + "bikini": "https://github.githubassets.com/images/icons/emoji/unicode/1f459.png?v8", + "billed_cap": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e2.png?v8", + "biohazard": "https://github.githubassets.com/images/icons/emoji/unicode/2623.png?v8", + "bird": "https://github.githubassets.com/images/icons/emoji/unicode/1f426.png?v8", + "birthday": "https://github.githubassets.com/images/icons/emoji/unicode/1f382.png?v8", + "bison": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ac.png?v8", + "black_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f408-2b1b.png?v8", + "black_circle": "https://github.githubassets.com/images/icons/emoji/unicode/26ab.png?v8", + "black_flag": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f4.png?v8", + "black_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f5a4.png?v8", + "black_joker": "https://github.githubassets.com/images/icons/emoji/unicode/1f0cf.png?v8", + "black_large_square": "https://github.githubassets.com/images/icons/emoji/unicode/2b1b.png?v8", + "black_medium_small_square": "https://github.githubassets.com/images/icons/emoji/unicode/25fe.png?v8", + "black_medium_square": "https://github.githubassets.com/images/icons/emoji/unicode/25fc.png?v8", + "black_nib": "https://github.githubassets.com/images/icons/emoji/unicode/2712.png?v8", + "black_small_square": "https://github.githubassets.com/images/icons/emoji/unicode/25aa.png?v8", + "black_square_button": "https://github.githubassets.com/images/icons/emoji/unicode/1f532.png?v8", + "blond_haired_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f471-2642.png?v8", + "blond_haired_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f471.png?v8", + "blond_haired_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f471-2640.png?v8", + "blonde_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f471-2640.png?v8", + "blossom": "https://github.githubassets.com/images/icons/emoji/unicode/1f33c.png?v8", + "blowfish": "https://github.githubassets.com/images/icons/emoji/unicode/1f421.png?v8", + "blue_book": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d8.png?v8", + "blue_car": "https://github.githubassets.com/images/icons/emoji/unicode/1f699.png?v8", + "blue_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f499.png?v8", + "blue_square": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e6.png?v8", + "blueberries": "https://github.githubassets.com/images/icons/emoji/unicode/1fad0.png?v8", + "blush": "https://github.githubassets.com/images/icons/emoji/unicode/1f60a.png?v8", + "boar": "https://github.githubassets.com/images/icons/emoji/unicode/1f417.png?v8", + "boat": "https://github.githubassets.com/images/icons/emoji/unicode/26f5.png?v8", + "bolivia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f4.png?v8", + "bomb": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a3.png?v8", + "bone": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b4.png?v8", + "book": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d6.png?v8", + "bookmark": "https://github.githubassets.com/images/icons/emoji/unicode/1f516.png?v8", + "bookmark_tabs": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d1.png?v8", + "books": "https://github.githubassets.com/images/icons/emoji/unicode/1f4da.png?v8", + "boom": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a5.png?v8", + "boomerang": "https://github.githubassets.com/images/icons/emoji/unicode/1fa83.png?v8", + "boot": "https://github.githubassets.com/images/icons/emoji/unicode/1f462.png?v8", + "bosnia_herzegovina": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1e6.png?v8", + "botswana": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1fc.png?v8", + "bouncing_ball_man": "https://github.githubassets.com/images/icons/emoji/unicode/26f9-2642.png?v8", + "bouncing_ball_person": "https://github.githubassets.com/images/icons/emoji/unicode/26f9.png?v8", + "bouncing_ball_woman": "https://github.githubassets.com/images/icons/emoji/unicode/26f9-2640.png?v8", + "bouquet": "https://github.githubassets.com/images/icons/emoji/unicode/1f490.png?v8", + "bouvet_island": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1fb.png?v8", + "bow": "https://github.githubassets.com/images/icons/emoji/unicode/1f647.png?v8", + "bow_and_arrow": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f9.png?v8", + "bowing_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f647-2642.png?v8", + "bowing_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f647-2640.png?v8", + "bowl_with_spoon": "https://github.githubassets.com/images/icons/emoji/unicode/1f963.png?v8", + "bowling": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b3.png?v8", + "bowtie": "https://github.githubassets.com/images/icons/emoji/bowtie.png?v8", + "boxing_glove": "https://github.githubassets.com/images/icons/emoji/unicode/1f94a.png?v8", + "boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f466.png?v8", + "brain": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e0.png?v8", + "brazil": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f7.png?v8", + "bread": "https://github.githubassets.com/images/icons/emoji/unicode/1f35e.png?v8", + "breast_feeding": "https://github.githubassets.com/images/icons/emoji/unicode/1f931.png?v8", + "bricks": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f1.png?v8", + "bride_with_veil": "https://github.githubassets.com/images/icons/emoji/unicode/1f470-2640.png?v8", + "bridge_at_night": "https://github.githubassets.com/images/icons/emoji/unicode/1f309.png?v8", + "briefcase": "https://github.githubassets.com/images/icons/emoji/unicode/1f4bc.png?v8", + "british_indian_ocean_territory": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f4.png?v8", + "british_virgin_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1ec.png?v8", + "broccoli": "https://github.githubassets.com/images/icons/emoji/unicode/1f966.png?v8", + "broken_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f494.png?v8", + "broom": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f9.png?v8", + "brown_circle": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e4.png?v8", + "brown_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f90e.png?v8", + "brown_square": "https://github.githubassets.com/images/icons/emoji/unicode/1f7eb.png?v8", + "brunei": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f3.png?v8", + "bubble_tea": "https://github.githubassets.com/images/icons/emoji/unicode/1f9cb.png?v8", + "bucket": "https://github.githubassets.com/images/icons/emoji/unicode/1faa3.png?v8", + "bug": "https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png?v8", + "building_construction": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d7.png?v8", + "bulb": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png?v8", + "bulgaria": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ec.png?v8", + "bullettrain_front": "https://github.githubassets.com/images/icons/emoji/unicode/1f685.png?v8", + "bullettrain_side": "https://github.githubassets.com/images/icons/emoji/unicode/1f684.png?v8", + "burkina_faso": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1eb.png?v8", + "burrito": "https://github.githubassets.com/images/icons/emoji/unicode/1f32f.png?v8", + "burundi": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1ee.png?v8", + "bus": "https://github.githubassets.com/images/icons/emoji/unicode/1f68c.png?v8", + "business_suit_levitating": "https://github.githubassets.com/images/icons/emoji/unicode/1f574.png?v8", + "busstop": "https://github.githubassets.com/images/icons/emoji/unicode/1f68f.png?v8", + "bust_in_silhouette": "https://github.githubassets.com/images/icons/emoji/unicode/1f464.png?v8", + "busts_in_silhouette": "https://github.githubassets.com/images/icons/emoji/unicode/1f465.png?v8", + "butter": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c8.png?v8", + "butterfly": "https://github.githubassets.com/images/icons/emoji/unicode/1f98b.png?v8", + "cactus": "https://github.githubassets.com/images/icons/emoji/unicode/1f335.png?v8", + "cake": "https://github.githubassets.com/images/icons/emoji/unicode/1f370.png?v8", + "calendar": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c6.png?v8", + "call_me_hand": "https://github.githubassets.com/images/icons/emoji/unicode/1f919.png?v8", + "calling": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f2.png?v8", + "cambodia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ed.png?v8", + "camel": "https://github.githubassets.com/images/icons/emoji/unicode/1f42b.png?v8", + "camera": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f7.png?v8", + "camera_flash": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f8.png?v8", + "cameroon": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f2.png?v8", + "camping": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d5.png?v8", + "canada": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1e6.png?v8", + "canary_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1e8.png?v8", + "cancer": "https://github.githubassets.com/images/icons/emoji/unicode/264b.png?v8", + "candle": "https://github.githubassets.com/images/icons/emoji/unicode/1f56f.png?v8", + "candy": "https://github.githubassets.com/images/icons/emoji/unicode/1f36c.png?v8", + "canned_food": "https://github.githubassets.com/images/icons/emoji/unicode/1f96b.png?v8", + "canoe": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f6.png?v8", + "cape_verde": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fb.png?v8", + "capital_abcd": "https://github.githubassets.com/images/icons/emoji/unicode/1f520.png?v8", + "capricorn": "https://github.githubassets.com/images/icons/emoji/unicode/2651.png?v8", + "car": "https://github.githubassets.com/images/icons/emoji/unicode/1f697.png?v8", + "card_file_box": "https://github.githubassets.com/images/icons/emoji/unicode/1f5c3.png?v8", + "card_index": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c7.png?v8", + "card_index_dividers": "https://github.githubassets.com/images/icons/emoji/unicode/1f5c2.png?v8", + "caribbean_netherlands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f6.png?v8", + "carousel_horse": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a0.png?v8", + "carpentry_saw": "https://github.githubassets.com/images/icons/emoji/unicode/1fa9a.png?v8", + "carrot": "https://github.githubassets.com/images/icons/emoji/unicode/1f955.png?v8", + "cartwheeling": "https://github.githubassets.com/images/icons/emoji/unicode/1f938.png?v8", + "cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f431.png?v8", + "cat2": "https://github.githubassets.com/images/icons/emoji/unicode/1f408.png?v8", + "cayman_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1fe.png?v8", + "cd": "https://github.githubassets.com/images/icons/emoji/unicode/1f4bf.png?v8", + "central_african_republic": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1eb.png?v8", + "ceuta_melilla": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1e6.png?v8", + "chad": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1e9.png?v8", + "chains": "https://github.githubassets.com/images/icons/emoji/unicode/26d3.png?v8", + "chair": "https://github.githubassets.com/images/icons/emoji/unicode/1fa91.png?v8", + "champagne": "https://github.githubassets.com/images/icons/emoji/unicode/1f37e.png?v8", + "chart": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b9.png?v8", + "chart_with_downwards_trend": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c9.png?v8", + "chart_with_upwards_trend": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c8.png?v8", + "checkered_flag": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c1.png?v8", + "cheese": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c0.png?v8", + "cherries": "https://github.githubassets.com/images/icons/emoji/unicode/1f352.png?v8", + "cherry_blossom": "https://github.githubassets.com/images/icons/emoji/unicode/1f338.png?v8", + "chess_pawn": "https://github.githubassets.com/images/icons/emoji/unicode/265f.png?v8", + "chestnut": "https://github.githubassets.com/images/icons/emoji/unicode/1f330.png?v8", + "chicken": "https://github.githubassets.com/images/icons/emoji/unicode/1f414.png?v8", + "child": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d2.png?v8", + "children_crossing": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b8.png?v8", + "chile": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f1.png?v8", + "chipmunk": "https://github.githubassets.com/images/icons/emoji/unicode/1f43f.png?v8", + "chocolate_bar": "https://github.githubassets.com/images/icons/emoji/unicode/1f36b.png?v8", + "chopsticks": "https://github.githubassets.com/images/icons/emoji/unicode/1f962.png?v8", + "christmas_island": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fd.png?v8", + "christmas_tree": "https://github.githubassets.com/images/icons/emoji/unicode/1f384.png?v8", + "church": "https://github.githubassets.com/images/icons/emoji/unicode/26ea.png?v8", + "cinema": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a6.png?v8", + "circus_tent": "https://github.githubassets.com/images/icons/emoji/unicode/1f3aa.png?v8", + "city_sunrise": "https://github.githubassets.com/images/icons/emoji/unicode/1f307.png?v8", + "city_sunset": "https://github.githubassets.com/images/icons/emoji/unicode/1f306.png?v8", + "cityscape": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d9.png?v8", + "cl": "https://github.githubassets.com/images/icons/emoji/unicode/1f191.png?v8", + "clamp": "https://github.githubassets.com/images/icons/emoji/unicode/1f5dc.png?v8", + "clap": "https://github.githubassets.com/images/icons/emoji/unicode/1f44f.png?v8", + "clapper": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ac.png?v8", + "classical_building": "https://github.githubassets.com/images/icons/emoji/unicode/1f3db.png?v8", + "climbing": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d7.png?v8", + "climbing_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d7-2642.png?v8", + "climbing_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d7-2640.png?v8", + "clinking_glasses": "https://github.githubassets.com/images/icons/emoji/unicode/1f942.png?v8", + "clipboard": "https://github.githubassets.com/images/icons/emoji/unicode/1f4cb.png?v8", + "clipperton_island": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f5.png?v8", + "clock1": "https://github.githubassets.com/images/icons/emoji/unicode/1f550.png?v8", + "clock10": "https://github.githubassets.com/images/icons/emoji/unicode/1f559.png?v8", + "clock1030": "https://github.githubassets.com/images/icons/emoji/unicode/1f565.png?v8", + "clock11": "https://github.githubassets.com/images/icons/emoji/unicode/1f55a.png?v8", + "clock1130": "https://github.githubassets.com/images/icons/emoji/unicode/1f566.png?v8", + "clock12": "https://github.githubassets.com/images/icons/emoji/unicode/1f55b.png?v8", + "clock1230": "https://github.githubassets.com/images/icons/emoji/unicode/1f567.png?v8", + "clock130": "https://github.githubassets.com/images/icons/emoji/unicode/1f55c.png?v8", + "clock2": "https://github.githubassets.com/images/icons/emoji/unicode/1f551.png?v8", + "clock230": "https://github.githubassets.com/images/icons/emoji/unicode/1f55d.png?v8", + "clock3": "https://github.githubassets.com/images/icons/emoji/unicode/1f552.png?v8", + "clock330": "https://github.githubassets.com/images/icons/emoji/unicode/1f55e.png?v8", + "clock4": "https://github.githubassets.com/images/icons/emoji/unicode/1f553.png?v8", + "clock430": "https://github.githubassets.com/images/icons/emoji/unicode/1f55f.png?v8", + "clock5": "https://github.githubassets.com/images/icons/emoji/unicode/1f554.png?v8", + "clock530": "https://github.githubassets.com/images/icons/emoji/unicode/1f560.png?v8", + "clock6": "https://github.githubassets.com/images/icons/emoji/unicode/1f555.png?v8", + "clock630": "https://github.githubassets.com/images/icons/emoji/unicode/1f561.png?v8", + "clock7": "https://github.githubassets.com/images/icons/emoji/unicode/1f556.png?v8", + "clock730": "https://github.githubassets.com/images/icons/emoji/unicode/1f562.png?v8", + "clock8": "https://github.githubassets.com/images/icons/emoji/unicode/1f557.png?v8", + "clock830": "https://github.githubassets.com/images/icons/emoji/unicode/1f563.png?v8", + "clock9": "https://github.githubassets.com/images/icons/emoji/unicode/1f558.png?v8", + "clock930": "https://github.githubassets.com/images/icons/emoji/unicode/1f564.png?v8", + "closed_book": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d5.png?v8", + "closed_lock_with_key": "https://github.githubassets.com/images/icons/emoji/unicode/1f510.png?v8", + "closed_umbrella": "https://github.githubassets.com/images/icons/emoji/unicode/1f302.png?v8", + "cloud": "https://github.githubassets.com/images/icons/emoji/unicode/2601.png?v8", + "cloud_with_lightning": "https://github.githubassets.com/images/icons/emoji/unicode/1f329.png?v8", + "cloud_with_lightning_and_rain": "https://github.githubassets.com/images/icons/emoji/unicode/26c8.png?v8", + "cloud_with_rain": "https://github.githubassets.com/images/icons/emoji/unicode/1f327.png?v8", + "cloud_with_snow": "https://github.githubassets.com/images/icons/emoji/unicode/1f328.png?v8", + "clown_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f921.png?v8", + "clubs": "https://github.githubassets.com/images/icons/emoji/unicode/2663.png?v8", + "cn": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f3.png?v8", + "coat": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e5.png?v8", + "cockroach": "https://github.githubassets.com/images/icons/emoji/unicode/1fab3.png?v8", + "cocktail": "https://github.githubassets.com/images/icons/emoji/unicode/1f378.png?v8", + "coconut": "https://github.githubassets.com/images/icons/emoji/unicode/1f965.png?v8", + "cocos_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1e8.png?v8", + "coffee": "https://github.githubassets.com/images/icons/emoji/unicode/2615.png?v8", + "coffin": "https://github.githubassets.com/images/icons/emoji/unicode/26b0.png?v8", + "coin": "https://github.githubassets.com/images/icons/emoji/unicode/1fa99.png?v8", + "cold_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f976.png?v8", + "cold_sweat": "https://github.githubassets.com/images/icons/emoji/unicode/1f630.png?v8", + "collision": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a5.png?v8", + "colombia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f4.png?v8", + "comet": "https://github.githubassets.com/images/icons/emoji/unicode/2604.png?v8", + "comoros": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f2.png?v8", + "compass": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ed.png?v8", + "computer": "https://github.githubassets.com/images/icons/emoji/unicode/1f4bb.png?v8", + "computer_mouse": "https://github.githubassets.com/images/icons/emoji/unicode/1f5b1.png?v8", + "confetti_ball": "https://github.githubassets.com/images/icons/emoji/unicode/1f38a.png?v8", + "confounded": "https://github.githubassets.com/images/icons/emoji/unicode/1f616.png?v8", + "confused": "https://github.githubassets.com/images/icons/emoji/unicode/1f615.png?v8", + "congo_brazzaville": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ec.png?v8", + "congo_kinshasa": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1e9.png?v8", + "congratulations": "https://github.githubassets.com/images/icons/emoji/unicode/3297.png?v8", + "construction": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png?v8", + "construction_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f477.png?v8", + "construction_worker_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f477-2642.png?v8", + "construction_worker_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f477-2640.png?v8", + "control_knobs": "https://github.githubassets.com/images/icons/emoji/unicode/1f39b.png?v8", + "convenience_store": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ea.png?v8", + "cook": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f373.png?v8", + "cook_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f0.png?v8", + "cookie": "https://github.githubassets.com/images/icons/emoji/unicode/1f36a.png?v8", + "cool": "https://github.githubassets.com/images/icons/emoji/unicode/1f192.png?v8", + "cop": "https://github.githubassets.com/images/icons/emoji/unicode/1f46e.png?v8", + "copilot": "https://github.githubassets.com/images/icons/emoji/copilot.png?v8", + "copyright": "https://github.githubassets.com/images/icons/emoji/unicode/00a9.png?v8", + "corn": "https://github.githubassets.com/images/icons/emoji/unicode/1f33d.png?v8", + "costa_rica": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f7.png?v8", + "cote_divoire": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ee.png?v8", + "couch_and_lamp": "https://github.githubassets.com/images/icons/emoji/unicode/1f6cb.png?v8", + "couple": "https://github.githubassets.com/images/icons/emoji/unicode/1f46b.png?v8", + "couple_with_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f491.png?v8", + "couple_with_heart_man_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-2764-1f468.png?v8", + "couple_with_heart_woman_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f468.png?v8", + "couple_with_heart_woman_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f469.png?v8", + "couplekiss": "https://github.githubassets.com/images/icons/emoji/unicode/1f48f.png?v8", + "couplekiss_man_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-2764-1f48b-1f468.png?v8", + "couplekiss_man_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f48b-1f468.png?v8", + "couplekiss_woman_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-2764-1f48b-1f469.png?v8", + "cow": "https://github.githubassets.com/images/icons/emoji/unicode/1f42e.png?v8", + "cow2": "https://github.githubassets.com/images/icons/emoji/unicode/1f404.png?v8", + "cowboy_hat_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f920.png?v8", + "crab": "https://github.githubassets.com/images/icons/emoji/unicode/1f980.png?v8", + "crayon": "https://github.githubassets.com/images/icons/emoji/unicode/1f58d.png?v8", + "credit_card": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b3.png?v8", + "crescent_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f319.png?v8", + "cricket": "https://github.githubassets.com/images/icons/emoji/unicode/1f997.png?v8", + "cricket_game": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cf.png?v8", + "croatia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f7.png?v8", + "crocodile": "https://github.githubassets.com/images/icons/emoji/unicode/1f40a.png?v8", + "croissant": "https://github.githubassets.com/images/icons/emoji/unicode/1f950.png?v8", + "crossed_fingers": "https://github.githubassets.com/images/icons/emoji/unicode/1f91e.png?v8", + "crossed_flags": "https://github.githubassets.com/images/icons/emoji/unicode/1f38c.png?v8", + "crossed_swords": "https://github.githubassets.com/images/icons/emoji/unicode/2694.png?v8", + "crown": "https://github.githubassets.com/images/icons/emoji/unicode/1f451.png?v8", + "cry": "https://github.githubassets.com/images/icons/emoji/unicode/1f622.png?v8", + "crying_cat_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f63f.png?v8", + "crystal_ball": "https://github.githubassets.com/images/icons/emoji/unicode/1f52e.png?v8", + "cuba": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fa.png?v8", + "cucumber": "https://github.githubassets.com/images/icons/emoji/unicode/1f952.png?v8", + "cup_with_straw": "https://github.githubassets.com/images/icons/emoji/unicode/1f964.png?v8", + "cupcake": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c1.png?v8", + "cupid": "https://github.githubassets.com/images/icons/emoji/unicode/1f498.png?v8", + "curacao": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fc.png?v8", + "curling_stone": "https://github.githubassets.com/images/icons/emoji/unicode/1f94c.png?v8", + "curly_haired_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b1.png?v8", + "curly_haired_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b1.png?v8", + "curly_loop": "https://github.githubassets.com/images/icons/emoji/unicode/27b0.png?v8", + "currency_exchange": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b1.png?v8", + "curry": "https://github.githubassets.com/images/icons/emoji/unicode/1f35b.png?v8", + "cursing_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f92c.png?v8", + "custard": "https://github.githubassets.com/images/icons/emoji/unicode/1f36e.png?v8", + "customs": "https://github.githubassets.com/images/icons/emoji/unicode/1f6c3.png?v8", + "cut_of_meat": "https://github.githubassets.com/images/icons/emoji/unicode/1f969.png?v8", + "cyclone": "https://github.githubassets.com/images/icons/emoji/unicode/1f300.png?v8", + "cyprus": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1fe.png?v8", + "czech_republic": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ff.png?v8", + "dagger": "https://github.githubassets.com/images/icons/emoji/unicode/1f5e1.png?v8", + "dancer": "https://github.githubassets.com/images/icons/emoji/unicode/1f483.png?v8", + "dancers": "https://github.githubassets.com/images/icons/emoji/unicode/1f46f.png?v8", + "dancing_men": "https://github.githubassets.com/images/icons/emoji/unicode/1f46f-2642.png?v8", + "dancing_women": "https://github.githubassets.com/images/icons/emoji/unicode/1f46f-2640.png?v8", + "dango": "https://github.githubassets.com/images/icons/emoji/unicode/1f361.png?v8", + "dark_sunglasses": "https://github.githubassets.com/images/icons/emoji/unicode/1f576.png?v8", + "dart": "https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png?v8", + "dash": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a8.png?v8", + "date": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c5.png?v8", + "de": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ea.png?v8", + "deaf_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9cf-2642.png?v8", + "deaf_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f9cf.png?v8", + "deaf_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9cf-2640.png?v8", + "deciduous_tree": "https://github.githubassets.com/images/icons/emoji/unicode/1f333.png?v8", + "deer": "https://github.githubassets.com/images/icons/emoji/unicode/1f98c.png?v8", + "denmark": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1f0.png?v8", + "department_store": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ec.png?v8", + "dependabot": "https://github.githubassets.com/images/icons/emoji/dependabot.png?v8", + "derelict_house": "https://github.githubassets.com/images/icons/emoji/unicode/1f3da.png?v8", + "desert": "https://github.githubassets.com/images/icons/emoji/unicode/1f3dc.png?v8", + "desert_island": "https://github.githubassets.com/images/icons/emoji/unicode/1f3dd.png?v8", + "desktop_computer": "https://github.githubassets.com/images/icons/emoji/unicode/1f5a5.png?v8", + "detective": "https://github.githubassets.com/images/icons/emoji/unicode/1f575.png?v8", + "diamond_shape_with_a_dot_inside": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a0.png?v8", + "diamonds": "https://github.githubassets.com/images/icons/emoji/unicode/2666.png?v8", + "diego_garcia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ec.png?v8", + "disappointed": "https://github.githubassets.com/images/icons/emoji/unicode/1f61e.png?v8", + "disappointed_relieved": "https://github.githubassets.com/images/icons/emoji/unicode/1f625.png?v8", + "disguised_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f978.png?v8", + "diving_mask": "https://github.githubassets.com/images/icons/emoji/unicode/1f93f.png?v8", + "diya_lamp": "https://github.githubassets.com/images/icons/emoji/unicode/1fa94.png?v8", + "dizzy": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ab.png?v8", + "dizzy_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f635.png?v8", + "djibouti": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ef.png?v8", + "dna": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ec.png?v8", + "do_not_litter": "https://github.githubassets.com/images/icons/emoji/unicode/1f6af.png?v8", + "dodo": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a4.png?v8", + "dog": "https://github.githubassets.com/images/icons/emoji/unicode/1f436.png?v8", + "dog2": "https://github.githubassets.com/images/icons/emoji/unicode/1f415.png?v8", + "dollar": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b5.png?v8", + "dolls": "https://github.githubassets.com/images/icons/emoji/unicode/1f38e.png?v8", + "dolphin": "https://github.githubassets.com/images/icons/emoji/unicode/1f42c.png?v8", + "dominica": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1f2.png?v8", + "dominican_republic": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1f4.png?v8", + "door": "https://github.githubassets.com/images/icons/emoji/unicode/1f6aa.png?v8", + "doughnut": "https://github.githubassets.com/images/icons/emoji/unicode/1f369.png?v8", + "dove": "https://github.githubassets.com/images/icons/emoji/unicode/1f54a.png?v8", + "dragon": "https://github.githubassets.com/images/icons/emoji/unicode/1f409.png?v8", + "dragon_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f432.png?v8", + "dress": "https://github.githubassets.com/images/icons/emoji/unicode/1f457.png?v8", + "dromedary_camel": "https://github.githubassets.com/images/icons/emoji/unicode/1f42a.png?v8", + "drooling_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f924.png?v8", + "drop_of_blood": "https://github.githubassets.com/images/icons/emoji/unicode/1fa78.png?v8", + "droplet": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a7.png?v8", + "drum": "https://github.githubassets.com/images/icons/emoji/unicode/1f941.png?v8", + "duck": "https://github.githubassets.com/images/icons/emoji/unicode/1f986.png?v8", + "dumpling": "https://github.githubassets.com/images/icons/emoji/unicode/1f95f.png?v8", + "dvd": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c0.png?v8", + "e-mail": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e7.png?v8", + "eagle": "https://github.githubassets.com/images/icons/emoji/unicode/1f985.png?v8", + "ear": "https://github.githubassets.com/images/icons/emoji/unicode/1f442.png?v8", + "ear_of_rice": "https://github.githubassets.com/images/icons/emoji/unicode/1f33e.png?v8", + "ear_with_hearing_aid": "https://github.githubassets.com/images/icons/emoji/unicode/1f9bb.png?v8", + "earth_africa": "https://github.githubassets.com/images/icons/emoji/unicode/1f30d.png?v8", + "earth_americas": "https://github.githubassets.com/images/icons/emoji/unicode/1f30e.png?v8", + "earth_asia": "https://github.githubassets.com/images/icons/emoji/unicode/1f30f.png?v8", + "ecuador": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1e8.png?v8", + "egg": "https://github.githubassets.com/images/icons/emoji/unicode/1f95a.png?v8", + "eggplant": "https://github.githubassets.com/images/icons/emoji/unicode/1f346.png?v8", + "egypt": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ec.png?v8", + "eight": "https://github.githubassets.com/images/icons/emoji/unicode/0038-20e3.png?v8", + "eight_pointed_black_star": "https://github.githubassets.com/images/icons/emoji/unicode/2734.png?v8", + "eight_spoked_asterisk": "https://github.githubassets.com/images/icons/emoji/unicode/2733.png?v8", + "eject_button": "https://github.githubassets.com/images/icons/emoji/unicode/23cf.png?v8", + "el_salvador": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1fb.png?v8", + "electric_plug": "https://github.githubassets.com/images/icons/emoji/unicode/1f50c.png?v8", + "electron": "https://github.githubassets.com/images/icons/emoji/electron.png?v8", + "elephant": "https://github.githubassets.com/images/icons/emoji/unicode/1f418.png?v8", + "elevator": "https://github.githubassets.com/images/icons/emoji/unicode/1f6d7.png?v8", + "elf": "https://github.githubassets.com/images/icons/emoji/unicode/1f9dd.png?v8", + "elf_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9dd-2642.png?v8", + "elf_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9dd-2640.png?v8", + "email": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e7.png?v8", + "end": "https://github.githubassets.com/images/icons/emoji/unicode/1f51a.png?v8", + "england": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.png?v8", + "envelope": "https://github.githubassets.com/images/icons/emoji/unicode/2709.png?v8", + "envelope_with_arrow": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e9.png?v8", + "equatorial_guinea": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f6.png?v8", + "eritrea": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f7.png?v8", + "es": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f8.png?v8", + "estonia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ea.png?v8", + "ethiopia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f9.png?v8", + "eu": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1fa.png?v8", + "euro": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b6.png?v8", + "european_castle": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f0.png?v8", + "european_post_office": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e4.png?v8", + "european_union": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1fa.png?v8", + "evergreen_tree": "https://github.githubassets.com/images/icons/emoji/unicode/1f332.png?v8", + "exclamation": "https://github.githubassets.com/images/icons/emoji/unicode/2757.png?v8", + "exploding_head": "https://github.githubassets.com/images/icons/emoji/unicode/1f92f.png?v8", + "expressionless": "https://github.githubassets.com/images/icons/emoji/unicode/1f611.png?v8", + "eye": "https://github.githubassets.com/images/icons/emoji/unicode/1f441.png?v8", + "eye_speech_bubble": "https://github.githubassets.com/images/icons/emoji/unicode/1f441-1f5e8.png?v8", + "eyeglasses": "https://github.githubassets.com/images/icons/emoji/unicode/1f453.png?v8", + "eyes": "https://github.githubassets.com/images/icons/emoji/unicode/1f440.png?v8", + "face_exhaling": "https://github.githubassets.com/images/icons/emoji/unicode/1f62e-1f4a8.png?v8", + "face_in_clouds": "https://github.githubassets.com/images/icons/emoji/unicode/1f636-1f32b.png?v8", + "face_with_head_bandage": "https://github.githubassets.com/images/icons/emoji/unicode/1f915.png?v8", + "face_with_spiral_eyes": "https://github.githubassets.com/images/icons/emoji/unicode/1f635-1f4ab.png?v8", + "face_with_thermometer": "https://github.githubassets.com/images/icons/emoji/unicode/1f912.png?v8", + "facepalm": "https://github.githubassets.com/images/icons/emoji/unicode/1f926.png?v8", + "facepunch": "https://github.githubassets.com/images/icons/emoji/unicode/1f44a.png?v8", + "factory": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ed.png?v8", + "factory_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3ed.png?v8", + "fairy": "https://github.githubassets.com/images/icons/emoji/unicode/1f9da.png?v8", + "fairy_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9da-2642.png?v8", + "fairy_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9da-2640.png?v8", + "falafel": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c6.png?v8", + "falkland_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f0.png?v8", + "fallen_leaf": "https://github.githubassets.com/images/icons/emoji/unicode/1f342.png?v8", + "family": "https://github.githubassets.com/images/icons/emoji/unicode/1f46a.png?v8", + "family_man_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f466.png?v8", + "family_man_boy_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f466-1f466.png?v8", + "family_man_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f467.png?v8", + "family_man_girl_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f467-1f466.png?v8", + "family_man_girl_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f467-1f467.png?v8", + "family_man_man_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f466.png?v8", + "family_man_man_boy_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f466-1f466.png?v8", + "family_man_man_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f467.png?v8", + "family_man_man_girl_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f467-1f466.png?v8", + "family_man_man_girl_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f468-1f467-1f467.png?v8", + "family_man_woman_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f466.png?v8", + "family_man_woman_boy_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f466-1f466.png?v8", + "family_man_woman_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f467.png?v8", + "family_man_woman_girl_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f467-1f466.png?v8", + "family_man_woman_girl_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f469-1f467-1f467.png?v8", + "family_woman_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f466.png?v8", + "family_woman_boy_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f466-1f466.png?v8", + "family_woman_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f467.png?v8", + "family_woman_girl_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f467-1f466.png?v8", + "family_woman_girl_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f467-1f467.png?v8", + "family_woman_woman_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f466.png?v8", + "family_woman_woman_boy_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f466-1f466.png?v8", + "family_woman_woman_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f467.png?v8", + "family_woman_woman_girl_boy": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f467-1f466.png?v8", + "family_woman_woman_girl_girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f469-1f467-1f467.png?v8", + "farmer": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f33e.png?v8", + "faroe_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f4.png?v8", + "fast_forward": "https://github.githubassets.com/images/icons/emoji/unicode/23e9.png?v8", + "fax": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e0.png?v8", + "fearful": "https://github.githubassets.com/images/icons/emoji/unicode/1f628.png?v8", + "feather": "https://github.githubassets.com/images/icons/emoji/unicode/1fab6.png?v8", + "feelsgood": "https://github.githubassets.com/images/icons/emoji/feelsgood.png?v8", + "feet": "https://github.githubassets.com/images/icons/emoji/unicode/1f43e.png?v8", + "female_detective": "https://github.githubassets.com/images/icons/emoji/unicode/1f575-2640.png?v8", + "female_sign": "https://github.githubassets.com/images/icons/emoji/unicode/2640.png?v8", + "ferris_wheel": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a1.png?v8", + "ferry": "https://github.githubassets.com/images/icons/emoji/unicode/26f4.png?v8", + "field_hockey": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d1.png?v8", + "fiji": "https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1ef.png?v8", + "file_cabinet": "https://github.githubassets.com/images/icons/emoji/unicode/1f5c4.png?v8", + "file_folder": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c1.png?v8", + "film_projector": "https://github.githubassets.com/images/icons/emoji/unicode/1f4fd.png?v8", + "film_strip": "https://github.githubassets.com/images/icons/emoji/unicode/1f39e.png?v8", + "finland": "https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1ee.png?v8", + "finnadie": "https://github.githubassets.com/images/icons/emoji/finnadie.png?v8", + "fire": "https://github.githubassets.com/images/icons/emoji/unicode/1f525.png?v8", + "fire_engine": "https://github.githubassets.com/images/icons/emoji/unicode/1f692.png?v8", + "fire_extinguisher": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ef.png?v8", + "firecracker": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e8.png?v8", + "firefighter": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f692.png?v8", + "fireworks": "https://github.githubassets.com/images/icons/emoji/unicode/1f386.png?v8", + "first_quarter_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f313.png?v8", + "first_quarter_moon_with_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f31b.png?v8", + "fish": "https://github.githubassets.com/images/icons/emoji/unicode/1f41f.png?v8", + "fish_cake": "https://github.githubassets.com/images/icons/emoji/unicode/1f365.png?v8", + "fishsticks": "https://github.githubassets.com/images/icons/emoji/fishsticks.png?v8", + "fishing_pole_and_fish": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a3.png?v8", + "fist": "https://github.githubassets.com/images/icons/emoji/unicode/270a.png?v8", + "fist_left": "https://github.githubassets.com/images/icons/emoji/unicode/1f91b.png?v8", + "fist_oncoming": "https://github.githubassets.com/images/icons/emoji/unicode/1f44a.png?v8", + "fist_raised": "https://github.githubassets.com/images/icons/emoji/unicode/270a.png?v8", + "fist_right": "https://github.githubassets.com/images/icons/emoji/unicode/1f91c.png?v8", + "five": "https://github.githubassets.com/images/icons/emoji/unicode/0035-20e3.png?v8", + "flags": "https://github.githubassets.com/images/icons/emoji/unicode/1f38f.png?v8", + "flamingo": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a9.png?v8", + "flashlight": "https://github.githubassets.com/images/icons/emoji/unicode/1f526.png?v8", + "flat_shoe": "https://github.githubassets.com/images/icons/emoji/unicode/1f97f.png?v8", + "flatbread": "https://github.githubassets.com/images/icons/emoji/unicode/1fad3.png?v8", + "fleur_de_lis": "https://github.githubassets.com/images/icons/emoji/unicode/269c.png?v8", + "flight_arrival": "https://github.githubassets.com/images/icons/emoji/unicode/1f6ec.png?v8", + "flight_departure": "https://github.githubassets.com/images/icons/emoji/unicode/1f6eb.png?v8", + "flipper": "https://github.githubassets.com/images/icons/emoji/unicode/1f42c.png?v8", + "floppy_disk": "https://github.githubassets.com/images/icons/emoji/unicode/1f4be.png?v8", + "flower_playing_cards": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b4.png?v8", + "flushed": "https://github.githubassets.com/images/icons/emoji/unicode/1f633.png?v8", + "fly": "https://github.githubassets.com/images/icons/emoji/unicode/1fab0.png?v8", + "flying_disc": "https://github.githubassets.com/images/icons/emoji/unicode/1f94f.png?v8", + "flying_saucer": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f8.png?v8", + "fog": "https://github.githubassets.com/images/icons/emoji/unicode/1f32b.png?v8", + "foggy": "https://github.githubassets.com/images/icons/emoji/unicode/1f301.png?v8", + "fondue": "https://github.githubassets.com/images/icons/emoji/unicode/1fad5.png?v8", + "foot": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b6.png?v8", + "football": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c8.png?v8", + "footprints": "https://github.githubassets.com/images/icons/emoji/unicode/1f463.png?v8", + "fork_and_knife": "https://github.githubassets.com/images/icons/emoji/unicode/1f374.png?v8", + "fortune_cookie": "https://github.githubassets.com/images/icons/emoji/unicode/1f960.png?v8", + "fountain": "https://github.githubassets.com/images/icons/emoji/unicode/26f2.png?v8", + "fountain_pen": "https://github.githubassets.com/images/icons/emoji/unicode/1f58b.png?v8", + "four": "https://github.githubassets.com/images/icons/emoji/unicode/0034-20e3.png?v8", + "four_leaf_clover": "https://github.githubassets.com/images/icons/emoji/unicode/1f340.png?v8", + "fox_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f98a.png?v8", + "fr": "https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f7.png?v8", + "framed_picture": "https://github.githubassets.com/images/icons/emoji/unicode/1f5bc.png?v8", + "free": "https://github.githubassets.com/images/icons/emoji/unicode/1f193.png?v8", + "french_guiana": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1eb.png?v8", + "french_polynesia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1eb.png?v8", + "french_southern_territories": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1eb.png?v8", + "fried_egg": "https://github.githubassets.com/images/icons/emoji/unicode/1f373.png?v8", + "fried_shrimp": "https://github.githubassets.com/images/icons/emoji/unicode/1f364.png?v8", + "fries": "https://github.githubassets.com/images/icons/emoji/unicode/1f35f.png?v8", + "frog": "https://github.githubassets.com/images/icons/emoji/unicode/1f438.png?v8", + "frowning": "https://github.githubassets.com/images/icons/emoji/unicode/1f626.png?v8", + "frowning_face": "https://github.githubassets.com/images/icons/emoji/unicode/2639.png?v8", + "frowning_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f64d-2642.png?v8", + "frowning_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f64d.png?v8", + "frowning_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f64d-2640.png?v8", + "fu": "https://github.githubassets.com/images/icons/emoji/unicode/1f595.png?v8", + "fuelpump": "https://github.githubassets.com/images/icons/emoji/unicode/26fd.png?v8", + "full_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f315.png?v8", + "full_moon_with_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f31d.png?v8", + "funeral_urn": "https://github.githubassets.com/images/icons/emoji/unicode/26b1.png?v8", + "gabon": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e6.png?v8", + "gambia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f2.png?v8", + "game_die": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b2.png?v8", + "garlic": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c4.png?v8", + "gb": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png?v8", + "gear": "https://github.githubassets.com/images/icons/emoji/unicode/2699.png?v8", + "gem": "https://github.githubassets.com/images/icons/emoji/unicode/1f48e.png?v8", + "gemini": "https://github.githubassets.com/images/icons/emoji/unicode/264a.png?v8", + "genie": "https://github.githubassets.com/images/icons/emoji/unicode/1f9de.png?v8", + "genie_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9de-2642.png?v8", + "genie_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9de-2640.png?v8", + "georgia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ea.png?v8", + "ghana": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ed.png?v8", + "ghost": "https://github.githubassets.com/images/icons/emoji/unicode/1f47b.png?v8", + "gibraltar": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ee.png?v8", + "gift": "https://github.githubassets.com/images/icons/emoji/unicode/1f381.png?v8", + "gift_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f49d.png?v8", + "giraffe": "https://github.githubassets.com/images/icons/emoji/unicode/1f992.png?v8", + "girl": "https://github.githubassets.com/images/icons/emoji/unicode/1f467.png?v8", + "globe_with_meridians": "https://github.githubassets.com/images/icons/emoji/unicode/1f310.png?v8", + "gloves": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e4.png?v8", + "goal_net": "https://github.githubassets.com/images/icons/emoji/unicode/1f945.png?v8", + "goat": "https://github.githubassets.com/images/icons/emoji/unicode/1f410.png?v8", + "goberserk": "https://github.githubassets.com/images/icons/emoji/goberserk.png?v8", + "godmode": "https://github.githubassets.com/images/icons/emoji/godmode.png?v8", + "goggles": "https://github.githubassets.com/images/icons/emoji/unicode/1f97d.png?v8", + "golf": "https://github.githubassets.com/images/icons/emoji/unicode/26f3.png?v8", + "golfing": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cc.png?v8", + "golfing_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cc-2642.png?v8", + "golfing_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cc-2640.png?v8", + "gorilla": "https://github.githubassets.com/images/icons/emoji/unicode/1f98d.png?v8", + "grapes": "https://github.githubassets.com/images/icons/emoji/unicode/1f347.png?v8", + "greece": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f7.png?v8", + "green_apple": "https://github.githubassets.com/images/icons/emoji/unicode/1f34f.png?v8", + "green_book": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d7.png?v8", + "green_circle": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e2.png?v8", + "green_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f49a.png?v8", + "green_salad": "https://github.githubassets.com/images/icons/emoji/unicode/1f957.png?v8", + "green_square": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e9.png?v8", + "greenland": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f1.png?v8", + "grenada": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e9.png?v8", + "grey_exclamation": "https://github.githubassets.com/images/icons/emoji/unicode/2755.png?v8", + "grey_question": "https://github.githubassets.com/images/icons/emoji/unicode/2754.png?v8", + "grimacing": "https://github.githubassets.com/images/icons/emoji/unicode/1f62c.png?v8", + "grin": "https://github.githubassets.com/images/icons/emoji/unicode/1f601.png?v8", + "grinning": "https://github.githubassets.com/images/icons/emoji/unicode/1f600.png?v8", + "guadeloupe": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f5.png?v8", + "guam": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1fa.png?v8", + "guard": "https://github.githubassets.com/images/icons/emoji/unicode/1f482.png?v8", + "guardsman": "https://github.githubassets.com/images/icons/emoji/unicode/1f482-2642.png?v8", + "guardswoman": "https://github.githubassets.com/images/icons/emoji/unicode/1f482-2640.png?v8", + "guatemala": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f9.png?v8", + "guernsey": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1ec.png?v8", + "guide_dog": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ae.png?v8", + "guinea": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f3.png?v8", + "guinea_bissau": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1fc.png?v8", + "guitar": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b8.png?v8", + "gun": "https://github.githubassets.com/images/icons/emoji/unicode/1f52b.png?v8", + "guyana": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1fe.png?v8", + "haircut": "https://github.githubassets.com/images/icons/emoji/unicode/1f487.png?v8", + "haircut_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f487-2642.png?v8", + "haircut_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f487-2640.png?v8", + "haiti": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f9.png?v8", + "hamburger": "https://github.githubassets.com/images/icons/emoji/unicode/1f354.png?v8", + "hammer": "https://github.githubassets.com/images/icons/emoji/unicode/1f528.png?v8", + "hammer_and_pick": "https://github.githubassets.com/images/icons/emoji/unicode/2692.png?v8", + "hammer_and_wrench": "https://github.githubassets.com/images/icons/emoji/unicode/1f6e0.png?v8", + "hamster": "https://github.githubassets.com/images/icons/emoji/unicode/1f439.png?v8", + "hand": "https://github.githubassets.com/images/icons/emoji/unicode/270b.png?v8", + "hand_over_mouth": "https://github.githubassets.com/images/icons/emoji/unicode/1f92d.png?v8", + "handbag": "https://github.githubassets.com/images/icons/emoji/unicode/1f45c.png?v8", + "handball_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f93e.png?v8", + "handshake": "https://github.githubassets.com/images/icons/emoji/unicode/1f91d.png?v8", + "hankey": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a9.png?v8", + "hash": "https://github.githubassets.com/images/icons/emoji/unicode/0023-20e3.png?v8", + "hatched_chick": "https://github.githubassets.com/images/icons/emoji/unicode/1f425.png?v8", + "hatching_chick": "https://github.githubassets.com/images/icons/emoji/unicode/1f423.png?v8", + "headphones": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a7.png?v8", + "headstone": "https://github.githubassets.com/images/icons/emoji/unicode/1faa6.png?v8", + "health_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-2695.png?v8", + "hear_no_evil": "https://github.githubassets.com/images/icons/emoji/unicode/1f649.png?v8", + "heard_mcdonald_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f2.png?v8", + "heart": "https://github.githubassets.com/images/icons/emoji/unicode/2764.png?v8", + "heart_decoration": "https://github.githubassets.com/images/icons/emoji/unicode/1f49f.png?v8", + "heart_eyes": "https://github.githubassets.com/images/icons/emoji/unicode/1f60d.png?v8", + "heart_eyes_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f63b.png?v8", + "heart_on_fire": "https://github.githubassets.com/images/icons/emoji/unicode/2764-1f525.png?v8", + "heartbeat": "https://github.githubassets.com/images/icons/emoji/unicode/1f493.png?v8", + "heartpulse": "https://github.githubassets.com/images/icons/emoji/unicode/1f497.png?v8", + "hearts": "https://github.githubassets.com/images/icons/emoji/unicode/2665.png?v8", + "heavy_check_mark": "https://github.githubassets.com/images/icons/emoji/unicode/2714.png?v8", + "heavy_division_sign": "https://github.githubassets.com/images/icons/emoji/unicode/2797.png?v8", + "heavy_dollar_sign": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b2.png?v8", + "heavy_exclamation_mark": "https://github.githubassets.com/images/icons/emoji/unicode/2757.png?v8", + "heavy_heart_exclamation": "https://github.githubassets.com/images/icons/emoji/unicode/2763.png?v8", + "heavy_minus_sign": "https://github.githubassets.com/images/icons/emoji/unicode/2796.png?v8", + "heavy_multiplication_x": "https://github.githubassets.com/images/icons/emoji/unicode/2716.png?v8", + "heavy_plus_sign": "https://github.githubassets.com/images/icons/emoji/unicode/2795.png?v8", + "hedgehog": "https://github.githubassets.com/images/icons/emoji/unicode/1f994.png?v8", + "helicopter": "https://github.githubassets.com/images/icons/emoji/unicode/1f681.png?v8", + "herb": "https://github.githubassets.com/images/icons/emoji/unicode/1f33f.png?v8", + "hibiscus": "https://github.githubassets.com/images/icons/emoji/unicode/1f33a.png?v8", + "high_brightness": "https://github.githubassets.com/images/icons/emoji/unicode/1f506.png?v8", + "high_heel": "https://github.githubassets.com/images/icons/emoji/unicode/1f460.png?v8", + "hiking_boot": "https://github.githubassets.com/images/icons/emoji/unicode/1f97e.png?v8", + "hindu_temple": "https://github.githubassets.com/images/icons/emoji/unicode/1f6d5.png?v8", + "hippopotamus": "https://github.githubassets.com/images/icons/emoji/unicode/1f99b.png?v8", + "hocho": "https://github.githubassets.com/images/icons/emoji/unicode/1f52a.png?v8", + "hole": "https://github.githubassets.com/images/icons/emoji/unicode/1f573.png?v8", + "honduras": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f3.png?v8", + "honey_pot": "https://github.githubassets.com/images/icons/emoji/unicode/1f36f.png?v8", + "honeybee": "https://github.githubassets.com/images/icons/emoji/unicode/1f41d.png?v8", + "hong_kong": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1f0.png?v8", + "hook": "https://github.githubassets.com/images/icons/emoji/unicode/1fa9d.png?v8", + "horse": "https://github.githubassets.com/images/icons/emoji/unicode/1f434.png?v8", + "horse_racing": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c7.png?v8", + "hospital": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e5.png?v8", + "hot_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f975.png?v8", + "hot_pepper": "https://github.githubassets.com/images/icons/emoji/unicode/1f336.png?v8", + "hotdog": "https://github.githubassets.com/images/icons/emoji/unicode/1f32d.png?v8", + "hotel": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e8.png?v8", + "hotsprings": "https://github.githubassets.com/images/icons/emoji/unicode/2668.png?v8", + "hourglass": "https://github.githubassets.com/images/icons/emoji/unicode/231b.png?v8", + "hourglass_flowing_sand": "https://github.githubassets.com/images/icons/emoji/unicode/23f3.png?v8", + "house": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png?v8", + "house_with_garden": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e1.png?v8", + "houses": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d8.png?v8", + "hugs": "https://github.githubassets.com/images/icons/emoji/unicode/1f917.png?v8", + "hungary": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ed-1f1fa.png?v8", + "hurtrealbad": "https://github.githubassets.com/images/icons/emoji/hurtrealbad.png?v8", + "hushed": "https://github.githubassets.com/images/icons/emoji/unicode/1f62f.png?v8", + "hut": "https://github.githubassets.com/images/icons/emoji/unicode/1f6d6.png?v8", + "ice_cream": "https://github.githubassets.com/images/icons/emoji/unicode/1f368.png?v8", + "ice_cube": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ca.png?v8", + "ice_hockey": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d2.png?v8", + "ice_skate": "https://github.githubassets.com/images/icons/emoji/unicode/26f8.png?v8", + "icecream": "https://github.githubassets.com/images/icons/emoji/unicode/1f366.png?v8", + "iceland": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f8.png?v8", + "id": "https://github.githubassets.com/images/icons/emoji/unicode/1f194.png?v8", + "ideograph_advantage": "https://github.githubassets.com/images/icons/emoji/unicode/1f250.png?v8", + "imp": "https://github.githubassets.com/images/icons/emoji/unicode/1f47f.png?v8", + "inbox_tray": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e5.png?v8", + "incoming_envelope": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e8.png?v8", + "india": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f3.png?v8", + "indonesia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1e9.png?v8", + "infinity": "https://github.githubassets.com/images/icons/emoji/unicode/267e.png?v8", + "information_desk_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f481.png?v8", + "information_source": "https://github.githubassets.com/images/icons/emoji/unicode/2139.png?v8", + "innocent": "https://github.githubassets.com/images/icons/emoji/unicode/1f607.png?v8", + "interrobang": "https://github.githubassets.com/images/icons/emoji/unicode/2049.png?v8", + "iphone": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f1.png?v8", + "iran": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f7.png?v8", + "iraq": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f6.png?v8", + "ireland": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1ea.png?v8", + "isle_of_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f2.png?v8", + "israel": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f1.png?v8", + "it": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ee-1f1f9.png?v8", + "izakaya_lantern": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ee.png?v8", + "jack_o_lantern": "https://github.githubassets.com/images/icons/emoji/unicode/1f383.png?v8", + "jamaica": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1f2.png?v8", + "japan": "https://github.githubassets.com/images/icons/emoji/unicode/1f5fe.png?v8", + "japanese_castle": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ef.png?v8", + "japanese_goblin": "https://github.githubassets.com/images/icons/emoji/unicode/1f47a.png?v8", + "japanese_ogre": "https://github.githubassets.com/images/icons/emoji/unicode/1f479.png?v8", + "jeans": "https://github.githubassets.com/images/icons/emoji/unicode/1f456.png?v8", + "jersey": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1ea.png?v8", + "jigsaw": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e9.png?v8", + "jordan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1f4.png?v8", + "joy": "https://github.githubassets.com/images/icons/emoji/unicode/1f602.png?v8", + "joy_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f639.png?v8", + "joystick": "https://github.githubassets.com/images/icons/emoji/unicode/1f579.png?v8", + "jp": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ef-1f1f5.png?v8", + "judge": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-2696.png?v8", + "juggling_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f939.png?v8", + "kangaroo": "https://github.githubassets.com/images/icons/emoji/unicode/1f998.png?v8", + "kazakhstan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ff.png?v8", + "kenya": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ea.png?v8", + "key": "https://github.githubassets.com/images/icons/emoji/unicode/1f511.png?v8", + "keyboard": "https://github.githubassets.com/images/icons/emoji/unicode/2328.png?v8", + "keycap_ten": "https://github.githubassets.com/images/icons/emoji/unicode/1f51f.png?v8", + "kick_scooter": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f4.png?v8", + "kimono": "https://github.githubassets.com/images/icons/emoji/unicode/1f458.png?v8", + "kiribati": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ee.png?v8", + "kiss": "https://github.githubassets.com/images/icons/emoji/unicode/1f48b.png?v8", + "kissing": "https://github.githubassets.com/images/icons/emoji/unicode/1f617.png?v8", + "kissing_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f63d.png?v8", + "kissing_closed_eyes": "https://github.githubassets.com/images/icons/emoji/unicode/1f61a.png?v8", + "kissing_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f618.png?v8", + "kissing_smiling_eyes": "https://github.githubassets.com/images/icons/emoji/unicode/1f619.png?v8", + "kite": "https://github.githubassets.com/images/icons/emoji/unicode/1fa81.png?v8", + "kiwi_fruit": "https://github.githubassets.com/images/icons/emoji/unicode/1f95d.png?v8", + "kneeling_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ce-2642.png?v8", + "kneeling_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ce.png?v8", + "kneeling_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ce-2640.png?v8", + "knife": "https://github.githubassets.com/images/icons/emoji/unicode/1f52a.png?v8", + "knot": "https://github.githubassets.com/images/icons/emoji/unicode/1faa2.png?v8", + "koala": "https://github.githubassets.com/images/icons/emoji/unicode/1f428.png?v8", + "koko": "https://github.githubassets.com/images/icons/emoji/unicode/1f201.png?v8", + "kosovo": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fd-1f1f0.png?v8", + "kr": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f7.png?v8", + "kuwait": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1fc.png?v8", + "kyrgyzstan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1ec.png?v8", + "lab_coat": "https://github.githubassets.com/images/icons/emoji/unicode/1f97c.png?v8", + "label": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f7.png?v8", + "lacrosse": "https://github.githubassets.com/images/icons/emoji/unicode/1f94d.png?v8", + "ladder": "https://github.githubassets.com/images/icons/emoji/unicode/1fa9c.png?v8", + "lady_beetle": "https://github.githubassets.com/images/icons/emoji/unicode/1f41e.png?v8", + "lantern": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ee.png?v8", + "laos": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1e6.png?v8", + "large_blue_circle": "https://github.githubassets.com/images/icons/emoji/unicode/1f535.png?v8", + "large_blue_diamond": "https://github.githubassets.com/images/icons/emoji/unicode/1f537.png?v8", + "large_orange_diamond": "https://github.githubassets.com/images/icons/emoji/unicode/1f536.png?v8", + "last_quarter_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f317.png?v8", + "last_quarter_moon_with_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f31c.png?v8", + "latin_cross": "https://github.githubassets.com/images/icons/emoji/unicode/271d.png?v8", + "latvia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1fb.png?v8", + "laughing": "https://github.githubassets.com/images/icons/emoji/unicode/1f606.png?v8", + "leafy_green": "https://github.githubassets.com/images/icons/emoji/unicode/1f96c.png?v8", + "leaves": "https://github.githubassets.com/images/icons/emoji/unicode/1f343.png?v8", + "lebanon": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1e7.png?v8", + "ledger": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d2.png?v8", + "left_luggage": "https://github.githubassets.com/images/icons/emoji/unicode/1f6c5.png?v8", + "left_right_arrow": "https://github.githubassets.com/images/icons/emoji/unicode/2194.png?v8", + "left_speech_bubble": "https://github.githubassets.com/images/icons/emoji/unicode/1f5e8.png?v8", + "leftwards_arrow_with_hook": "https://github.githubassets.com/images/icons/emoji/unicode/21a9.png?v8", + "leg": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b5.png?v8", + "lemon": "https://github.githubassets.com/images/icons/emoji/unicode/1f34b.png?v8", + "leo": "https://github.githubassets.com/images/icons/emoji/unicode/264c.png?v8", + "leopard": "https://github.githubassets.com/images/icons/emoji/unicode/1f406.png?v8", + "lesotho": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f8.png?v8", + "level_slider": "https://github.githubassets.com/images/icons/emoji/unicode/1f39a.png?v8", + "liberia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f7.png?v8", + "libra": "https://github.githubassets.com/images/icons/emoji/unicode/264e.png?v8", + "libya": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1fe.png?v8", + "liechtenstein": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1ee.png?v8", + "light_rail": "https://github.githubassets.com/images/icons/emoji/unicode/1f688.png?v8", + "link": "https://github.githubassets.com/images/icons/emoji/unicode/1f517.png?v8", + "lion": "https://github.githubassets.com/images/icons/emoji/unicode/1f981.png?v8", + "lips": "https://github.githubassets.com/images/icons/emoji/unicode/1f444.png?v8", + "lipstick": "https://github.githubassets.com/images/icons/emoji/unicode/1f484.png?v8", + "lithuania": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f9.png?v8", + "lizard": "https://github.githubassets.com/images/icons/emoji/unicode/1f98e.png?v8", + "llama": "https://github.githubassets.com/images/icons/emoji/unicode/1f999.png?v8", + "lobster": "https://github.githubassets.com/images/icons/emoji/unicode/1f99e.png?v8", + "lock": "https://github.githubassets.com/images/icons/emoji/unicode/1f512.png?v8", + "lock_with_ink_pen": "https://github.githubassets.com/images/icons/emoji/unicode/1f50f.png?v8", + "lollipop": "https://github.githubassets.com/images/icons/emoji/unicode/1f36d.png?v8", + "long_drum": "https://github.githubassets.com/images/icons/emoji/unicode/1fa98.png?v8", + "loop": "https://github.githubassets.com/images/icons/emoji/unicode/27bf.png?v8", + "lotion_bottle": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f4.png?v8", + "lotus_position": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d8.png?v8", + "lotus_position_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d8-2642.png?v8", + "lotus_position_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d8-2640.png?v8", + "loud_sound": "https://github.githubassets.com/images/icons/emoji/unicode/1f50a.png?v8", + "loudspeaker": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png?v8", + "love_hotel": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e9.png?v8", + "love_letter": "https://github.githubassets.com/images/icons/emoji/unicode/1f48c.png?v8", + "love_you_gesture": "https://github.githubassets.com/images/icons/emoji/unicode/1f91f.png?v8", + "low_brightness": "https://github.githubassets.com/images/icons/emoji/unicode/1f505.png?v8", + "luggage": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f3.png?v8", + "lungs": "https://github.githubassets.com/images/icons/emoji/unicode/1fac1.png?v8", + "luxembourg": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1fa.png?v8", + "lying_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f925.png?v8", + "m": "https://github.githubassets.com/images/icons/emoji/unicode/24c2.png?v8", + "macau": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f4.png?v8", + "macedonia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f0.png?v8", + "madagascar": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ec.png?v8", + "mag": "https://github.githubassets.com/images/icons/emoji/unicode/1f50d.png?v8", + "mag_right": "https://github.githubassets.com/images/icons/emoji/unicode/1f50e.png?v8", + "mage": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d9.png?v8", + "mage_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d9-2642.png?v8", + "mage_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d9-2640.png?v8", + "magic_wand": "https://github.githubassets.com/images/icons/emoji/unicode/1fa84.png?v8", + "magnet": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f2.png?v8", + "mahjong": "https://github.githubassets.com/images/icons/emoji/unicode/1f004.png?v8", + "mailbox": "https://github.githubassets.com/images/icons/emoji/unicode/1f4eb.png?v8", + "mailbox_closed": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ea.png?v8", + "mailbox_with_mail": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ec.png?v8", + "mailbox_with_no_mail": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ed.png?v8", + "malawi": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fc.png?v8", + "malaysia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fe.png?v8", + "maldives": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fb.png?v8", + "male_detective": "https://github.githubassets.com/images/icons/emoji/unicode/1f575-2642.png?v8", + "male_sign": "https://github.githubassets.com/images/icons/emoji/unicode/2642.png?v8", + "mali": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f1.png?v8", + "malta": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f9.png?v8", + "mammoth": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a3.png?v8", + "man": "https://github.githubassets.com/images/icons/emoji/unicode/1f468.png?v8", + "man_artist": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3a8.png?v8", + "man_astronaut": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f680.png?v8", + "man_beard": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d4-2642.png?v8", + "man_cartwheeling": "https://github.githubassets.com/images/icons/emoji/unicode/1f938-2642.png?v8", + "man_cook": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f373.png?v8", + "man_dancing": "https://github.githubassets.com/images/icons/emoji/unicode/1f57a.png?v8", + "man_facepalming": "https://github.githubassets.com/images/icons/emoji/unicode/1f926-2642.png?v8", + "man_factory_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3ed.png?v8", + "man_farmer": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f33e.png?v8", + "man_feeding_baby": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f37c.png?v8", + "man_firefighter": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f692.png?v8", + "man_health_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-2695.png?v8", + "man_in_manual_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9bd.png?v8", + "man_in_motorized_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9bc.png?v8", + "man_in_tuxedo": "https://github.githubassets.com/images/icons/emoji/unicode/1f935-2642.png?v8", + "man_judge": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-2696.png?v8", + "man_juggling": "https://github.githubassets.com/images/icons/emoji/unicode/1f939-2642.png?v8", + "man_mechanic": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f527.png?v8", + "man_office_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f4bc.png?v8", + "man_pilot": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-2708.png?v8", + "man_playing_handball": "https://github.githubassets.com/images/icons/emoji/unicode/1f93e-2642.png?v8", + "man_playing_water_polo": "https://github.githubassets.com/images/icons/emoji/unicode/1f93d-2642.png?v8", + "man_scientist": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f52c.png?v8", + "man_shrugging": "https://github.githubassets.com/images/icons/emoji/unicode/1f937-2642.png?v8", + "man_singer": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3a4.png?v8", + "man_student": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f393.png?v8", + "man_teacher": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f3eb.png?v8", + "man_technologist": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f4bb.png?v8", + "man_with_gua_pi_mao": "https://github.githubassets.com/images/icons/emoji/unicode/1f472.png?v8", + "man_with_probing_cane": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9af.png?v8", + "man_with_turban": "https://github.githubassets.com/images/icons/emoji/unicode/1f473-2642.png?v8", + "man_with_veil": "https://github.githubassets.com/images/icons/emoji/unicode/1f470-2642.png?v8", + "mandarin": "https://github.githubassets.com/images/icons/emoji/unicode/1f34a.png?v8", + "mango": "https://github.githubassets.com/images/icons/emoji/unicode/1f96d.png?v8", + "mans_shoe": "https://github.githubassets.com/images/icons/emoji/unicode/1f45e.png?v8", + "mantelpiece_clock": "https://github.githubassets.com/images/icons/emoji/unicode/1f570.png?v8", + "manual_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f9bd.png?v8", + "maple_leaf": "https://github.githubassets.com/images/icons/emoji/unicode/1f341.png?v8", + "marshall_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ed.png?v8", + "martial_arts_uniform": "https://github.githubassets.com/images/icons/emoji/unicode/1f94b.png?v8", + "martinique": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f6.png?v8", + "mask": "https://github.githubassets.com/images/icons/emoji/unicode/1f637.png?v8", + "massage": "https://github.githubassets.com/images/icons/emoji/unicode/1f486.png?v8", + "massage_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f486-2642.png?v8", + "massage_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f486-2640.png?v8", + "mate": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c9.png?v8", + "mauritania": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f7.png?v8", + "mauritius": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fa.png?v8", + "mayotte": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fe-1f1f9.png?v8", + "meat_on_bone": "https://github.githubassets.com/images/icons/emoji/unicode/1f356.png?v8", + "mechanic": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f527.png?v8", + "mechanical_arm": "https://github.githubassets.com/images/icons/emoji/unicode/1f9be.png?v8", + "mechanical_leg": "https://github.githubassets.com/images/icons/emoji/unicode/1f9bf.png?v8", + "medal_military": "https://github.githubassets.com/images/icons/emoji/unicode/1f396.png?v8", + "medal_sports": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c5.png?v8", + "medical_symbol": "https://github.githubassets.com/images/icons/emoji/unicode/2695.png?v8", + "mega": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e3.png?v8", + "melon": "https://github.githubassets.com/images/icons/emoji/unicode/1f348.png?v8", + "memo": "https://github.githubassets.com/images/icons/emoji/unicode/1f4dd.png?v8", + "men_wrestling": "https://github.githubassets.com/images/icons/emoji/unicode/1f93c-2642.png?v8", + "mending_heart": "https://github.githubassets.com/images/icons/emoji/unicode/2764-1fa79.png?v8", + "menorah": "https://github.githubassets.com/images/icons/emoji/unicode/1f54e.png?v8", + "mens": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b9.png?v8", + "mermaid": "https://github.githubassets.com/images/icons/emoji/unicode/1f9dc-2640.png?v8", + "merman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9dc-2642.png?v8", + "merperson": "https://github.githubassets.com/images/icons/emoji/unicode/1f9dc.png?v8", + "metal": "https://github.githubassets.com/images/icons/emoji/unicode/1f918.png?v8", + "metro": "https://github.githubassets.com/images/icons/emoji/unicode/1f687.png?v8", + "mexico": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1fd.png?v8", + "microbe": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a0.png?v8", + "micronesia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1f2.png?v8", + "microphone": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a4.png?v8", + "microscope": "https://github.githubassets.com/images/icons/emoji/unicode/1f52c.png?v8", + "middle_finger": "https://github.githubassets.com/images/icons/emoji/unicode/1f595.png?v8", + "military_helmet": "https://github.githubassets.com/images/icons/emoji/unicode/1fa96.png?v8", + "milk_glass": "https://github.githubassets.com/images/icons/emoji/unicode/1f95b.png?v8", + "milky_way": "https://github.githubassets.com/images/icons/emoji/unicode/1f30c.png?v8", + "minibus": "https://github.githubassets.com/images/icons/emoji/unicode/1f690.png?v8", + "minidisc": "https://github.githubassets.com/images/icons/emoji/unicode/1f4bd.png?v8", + "mirror": "https://github.githubassets.com/images/icons/emoji/unicode/1fa9e.png?v8", + "mobile_phone_off": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f4.png?v8", + "moldova": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1e9.png?v8", + "monaco": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1e8.png?v8", + "money_mouth_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f911.png?v8", + "money_with_wings": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b8.png?v8", + "moneybag": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b0.png?v8", + "mongolia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f3.png?v8", + "monkey": "https://github.githubassets.com/images/icons/emoji/unicode/1f412.png?v8", + "monkey_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f435.png?v8", + "monocle_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d0.png?v8", + "monorail": "https://github.githubassets.com/images/icons/emoji/unicode/1f69d.png?v8", + "montenegro": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ea.png?v8", + "montserrat": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f8.png?v8", + "moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f314.png?v8", + "moon_cake": "https://github.githubassets.com/images/icons/emoji/unicode/1f96e.png?v8", + "morocco": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1e6.png?v8", + "mortar_board": "https://github.githubassets.com/images/icons/emoji/unicode/1f393.png?v8", + "mosque": "https://github.githubassets.com/images/icons/emoji/unicode/1f54c.png?v8", + "mosquito": "https://github.githubassets.com/images/icons/emoji/unicode/1f99f.png?v8", + "motor_boat": "https://github.githubassets.com/images/icons/emoji/unicode/1f6e5.png?v8", + "motor_scooter": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f5.png?v8", + "motorcycle": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cd.png?v8", + "motorized_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f9bc.png?v8", + "motorway": "https://github.githubassets.com/images/icons/emoji/unicode/1f6e3.png?v8", + "mount_fuji": "https://github.githubassets.com/images/icons/emoji/unicode/1f5fb.png?v8", + "mountain": "https://github.githubassets.com/images/icons/emoji/unicode/26f0.png?v8", + "mountain_bicyclist": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b5.png?v8", + "mountain_biking_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b5-2642.png?v8", + "mountain_biking_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b5-2640.png?v8", + "mountain_cableway": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a0.png?v8", + "mountain_railway": "https://github.githubassets.com/images/icons/emoji/unicode/1f69e.png?v8", + "mountain_snow": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d4.png?v8", + "mouse": "https://github.githubassets.com/images/icons/emoji/unicode/1f42d.png?v8", + "mouse2": "https://github.githubassets.com/images/icons/emoji/unicode/1f401.png?v8", + "mouse_trap": "https://github.githubassets.com/images/icons/emoji/unicode/1faa4.png?v8", + "movie_camera": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a5.png?v8", + "moyai": "https://github.githubassets.com/images/icons/emoji/unicode/1f5ff.png?v8", + "mozambique": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1ff.png?v8", + "mrs_claus": "https://github.githubassets.com/images/icons/emoji/unicode/1f936.png?v8", + "muscle": "https://github.githubassets.com/images/icons/emoji/unicode/1f4aa.png?v8", + "mushroom": "https://github.githubassets.com/images/icons/emoji/unicode/1f344.png?v8", + "musical_keyboard": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b9.png?v8", + "musical_note": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b5.png?v8", + "musical_score": "https://github.githubassets.com/images/icons/emoji/unicode/1f3bc.png?v8", + "mute": "https://github.githubassets.com/images/icons/emoji/unicode/1f507.png?v8", + "mx_claus": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f384.png?v8", + "myanmar": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f2.png?v8", + "nail_care": "https://github.githubassets.com/images/icons/emoji/unicode/1f485.png?v8", + "name_badge": "https://github.githubassets.com/images/icons/emoji/unicode/1f4db.png?v8", + "namibia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1e6.png?v8", + "national_park": "https://github.githubassets.com/images/icons/emoji/unicode/1f3de.png?v8", + "nauru": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f7.png?v8", + "nauseated_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f922.png?v8", + "nazar_amulet": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ff.png?v8", + "neckbeard": "https://github.githubassets.com/images/icons/emoji/neckbeard.png?v8", + "necktie": "https://github.githubassets.com/images/icons/emoji/unicode/1f454.png?v8", + "negative_squared_cross_mark": "https://github.githubassets.com/images/icons/emoji/unicode/274e.png?v8", + "nepal": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f5.png?v8", + "nerd_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f913.png?v8", + "nesting_dolls": "https://github.githubassets.com/images/icons/emoji/unicode/1fa86.png?v8", + "netherlands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f1.png?v8", + "neutral_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f610.png?v8", + "new": "https://github.githubassets.com/images/icons/emoji/unicode/1f195.png?v8", + "new_caledonia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1e8.png?v8", + "new_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f311.png?v8", + "new_moon_with_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f31a.png?v8", + "new_zealand": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ff.png?v8", + "newspaper": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f0.png?v8", + "newspaper_roll": "https://github.githubassets.com/images/icons/emoji/unicode/1f5de.png?v8", + "next_track_button": "https://github.githubassets.com/images/icons/emoji/unicode/23ed.png?v8", + "ng": "https://github.githubassets.com/images/icons/emoji/unicode/1f196.png?v8", + "ng_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f645-2642.png?v8", + "ng_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f645-2640.png?v8", + "nicaragua": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ee.png?v8", + "niger": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ea.png?v8", + "nigeria": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1ec.png?v8", + "night_with_stars": "https://github.githubassets.com/images/icons/emoji/unicode/1f303.png?v8", + "nine": "https://github.githubassets.com/images/icons/emoji/unicode/0039-20e3.png?v8", + "ninja": "https://github.githubassets.com/images/icons/emoji/unicode/1f977.png?v8", + "niue": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1fa.png?v8", + "no_bell": "https://github.githubassets.com/images/icons/emoji/unicode/1f515.png?v8", + "no_bicycles": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b3.png?v8", + "no_entry": "https://github.githubassets.com/images/icons/emoji/unicode/26d4.png?v8", + "no_entry_sign": "https://github.githubassets.com/images/icons/emoji/unicode/1f6ab.png?v8", + "no_good": "https://github.githubassets.com/images/icons/emoji/unicode/1f645.png?v8", + "no_good_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f645-2642.png?v8", + "no_good_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f645-2640.png?v8", + "no_mobile_phones": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f5.png?v8", + "no_mouth": "https://github.githubassets.com/images/icons/emoji/unicode/1f636.png?v8", + "no_pedestrians": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b7.png?v8", + "no_smoking": "https://github.githubassets.com/images/icons/emoji/unicode/1f6ad.png?v8", + "non-potable_water": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b1.png?v8", + "norfolk_island": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1eb.png?v8", + "north_korea": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f5.png?v8", + "northern_mariana_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1f5.png?v8", + "norway": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f4.png?v8", + "nose": "https://github.githubassets.com/images/icons/emoji/unicode/1f443.png?v8", + "notebook": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d3.png?v8", + "notebook_with_decorative_cover": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d4.png?v8", + "notes": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b6.png?v8", + "nut_and_bolt": "https://github.githubassets.com/images/icons/emoji/unicode/1f529.png?v8", + "o": "https://github.githubassets.com/images/icons/emoji/unicode/2b55.png?v8", + "o2": "https://github.githubassets.com/images/icons/emoji/unicode/1f17e.png?v8", + "ocean": "https://github.githubassets.com/images/icons/emoji/unicode/1f30a.png?v8", + "octocat": "https://github.githubassets.com/images/icons/emoji/octocat.png?v8", + "octopus": "https://github.githubassets.com/images/icons/emoji/unicode/1f419.png?v8", + "oden": "https://github.githubassets.com/images/icons/emoji/unicode/1f362.png?v8", + "office": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e2.png?v8", + "office_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f4bc.png?v8", + "oil_drum": "https://github.githubassets.com/images/icons/emoji/unicode/1f6e2.png?v8", + "ok": "https://github.githubassets.com/images/icons/emoji/unicode/1f197.png?v8", + "ok_hand": "https://github.githubassets.com/images/icons/emoji/unicode/1f44c.png?v8", + "ok_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f646-2642.png?v8", + "ok_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f646.png?v8", + "ok_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f646-2640.png?v8", + "old_key": "https://github.githubassets.com/images/icons/emoji/unicode/1f5dd.png?v8", + "older_adult": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d3.png?v8", + "older_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f474.png?v8", + "older_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f475.png?v8", + "olive": "https://github.githubassets.com/images/icons/emoji/unicode/1fad2.png?v8", + "om": "https://github.githubassets.com/images/icons/emoji/unicode/1f549.png?v8", + "oman": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f4-1f1f2.png?v8", + "on": "https://github.githubassets.com/images/icons/emoji/unicode/1f51b.png?v8", + "oncoming_automobile": "https://github.githubassets.com/images/icons/emoji/unicode/1f698.png?v8", + "oncoming_bus": "https://github.githubassets.com/images/icons/emoji/unicode/1f68d.png?v8", + "oncoming_police_car": "https://github.githubassets.com/images/icons/emoji/unicode/1f694.png?v8", + "oncoming_taxi": "https://github.githubassets.com/images/icons/emoji/unicode/1f696.png?v8", + "one": "https://github.githubassets.com/images/icons/emoji/unicode/0031-20e3.png?v8", + "one_piece_swimsuit": "https://github.githubassets.com/images/icons/emoji/unicode/1fa71.png?v8", + "onion": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c5.png?v8", + "open_book": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d6.png?v8", + "open_file_folder": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c2.png?v8", + "open_hands": "https://github.githubassets.com/images/icons/emoji/unicode/1f450.png?v8", + "open_mouth": "https://github.githubassets.com/images/icons/emoji/unicode/1f62e.png?v8", + "open_umbrella": "https://github.githubassets.com/images/icons/emoji/unicode/2602.png?v8", + "ophiuchus": "https://github.githubassets.com/images/icons/emoji/unicode/26ce.png?v8", + "orange": "https://github.githubassets.com/images/icons/emoji/unicode/1f34a.png?v8", + "orange_book": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d9.png?v8", + "orange_circle": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e0.png?v8", + "orange_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e1.png?v8", + "orange_square": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e7.png?v8", + "orangutan": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a7.png?v8", + "orthodox_cross": "https://github.githubassets.com/images/icons/emoji/unicode/2626.png?v8", + "otter": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a6.png?v8", + "outbox_tray": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e4.png?v8", + "owl": "https://github.githubassets.com/images/icons/emoji/unicode/1f989.png?v8", + "ox": "https://github.githubassets.com/images/icons/emoji/unicode/1f402.png?v8", + "oyster": "https://github.githubassets.com/images/icons/emoji/unicode/1f9aa.png?v8", + "package": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png?v8", + "page_facing_up": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c4.png?v8", + "page_with_curl": "https://github.githubassets.com/images/icons/emoji/unicode/1f4c3.png?v8", + "pager": "https://github.githubassets.com/images/icons/emoji/unicode/1f4df.png?v8", + "paintbrush": "https://github.githubassets.com/images/icons/emoji/unicode/1f58c.png?v8", + "pakistan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f0.png?v8", + "palau": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1fc.png?v8", + "palestinian_territories": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f8.png?v8", + "palm_tree": "https://github.githubassets.com/images/icons/emoji/unicode/1f334.png?v8", + "palms_up_together": "https://github.githubassets.com/images/icons/emoji/unicode/1f932.png?v8", + "panama": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1e6.png?v8", + "pancakes": "https://github.githubassets.com/images/icons/emoji/unicode/1f95e.png?v8", + "panda_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f43c.png?v8", + "paperclip": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ce.png?v8", + "paperclips": "https://github.githubassets.com/images/icons/emoji/unicode/1f587.png?v8", + "papua_new_guinea": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1ec.png?v8", + "parachute": "https://github.githubassets.com/images/icons/emoji/unicode/1fa82.png?v8", + "paraguay": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1fe.png?v8", + "parasol_on_ground": "https://github.githubassets.com/images/icons/emoji/unicode/26f1.png?v8", + "parking": "https://github.githubassets.com/images/icons/emoji/unicode/1f17f.png?v8", + "parrot": "https://github.githubassets.com/images/icons/emoji/unicode/1f99c.png?v8", + "part_alternation_mark": "https://github.githubassets.com/images/icons/emoji/unicode/303d.png?v8", + "partly_sunny": "https://github.githubassets.com/images/icons/emoji/unicode/26c5.png?v8", + "partying_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f973.png?v8", + "passenger_ship": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f3.png?v8", + "passport_control": "https://github.githubassets.com/images/icons/emoji/unicode/1f6c2.png?v8", + "pause_button": "https://github.githubassets.com/images/icons/emoji/unicode/23f8.png?v8", + "paw_prints": "https://github.githubassets.com/images/icons/emoji/unicode/1f43e.png?v8", + "peace_symbol": "https://github.githubassets.com/images/icons/emoji/unicode/262e.png?v8", + "peach": "https://github.githubassets.com/images/icons/emoji/unicode/1f351.png?v8", + "peacock": "https://github.githubassets.com/images/icons/emoji/unicode/1f99a.png?v8", + "peanuts": "https://github.githubassets.com/images/icons/emoji/unicode/1f95c.png?v8", + "pear": "https://github.githubassets.com/images/icons/emoji/unicode/1f350.png?v8", + "pen": "https://github.githubassets.com/images/icons/emoji/unicode/1f58a.png?v8", + "pencil": "https://github.githubassets.com/images/icons/emoji/unicode/1f4dd.png?v8", + "pencil2": "https://github.githubassets.com/images/icons/emoji/unicode/270f.png?v8", + "penguin": "https://github.githubassets.com/images/icons/emoji/unicode/1f427.png?v8", + "pensive": "https://github.githubassets.com/images/icons/emoji/unicode/1f614.png?v8", + "people_holding_hands": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f91d-1f9d1.png?v8", + "people_hugging": "https://github.githubassets.com/images/icons/emoji/unicode/1fac2.png?v8", + "performing_arts": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ad.png?v8", + "persevere": "https://github.githubassets.com/images/icons/emoji/unicode/1f623.png?v8", + "person_bald": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b2.png?v8", + "person_curly_hair": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b1.png?v8", + "person_feeding_baby": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f37c.png?v8", + "person_fencing": "https://github.githubassets.com/images/icons/emoji/unicode/1f93a.png?v8", + "person_in_manual_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9bd.png?v8", + "person_in_motorized_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9bc.png?v8", + "person_in_tuxedo": "https://github.githubassets.com/images/icons/emoji/unicode/1f935.png?v8", + "person_red_hair": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b0.png?v8", + "person_white_hair": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9b3.png?v8", + "person_with_probing_cane": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f9af.png?v8", + "person_with_turban": "https://github.githubassets.com/images/icons/emoji/unicode/1f473.png?v8", + "person_with_veil": "https://github.githubassets.com/images/icons/emoji/unicode/1f470.png?v8", + "peru": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1ea.png?v8", + "petri_dish": "https://github.githubassets.com/images/icons/emoji/unicode/1f9eb.png?v8", + "philippines": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1ed.png?v8", + "phone": "https://github.githubassets.com/images/icons/emoji/unicode/260e.png?v8", + "pick": "https://github.githubassets.com/images/icons/emoji/unicode/26cf.png?v8", + "pickup_truck": "https://github.githubassets.com/images/icons/emoji/unicode/1f6fb.png?v8", + "pie": "https://github.githubassets.com/images/icons/emoji/unicode/1f967.png?v8", + "pig": "https://github.githubassets.com/images/icons/emoji/unicode/1f437.png?v8", + "pig2": "https://github.githubassets.com/images/icons/emoji/unicode/1f416.png?v8", + "pig_nose": "https://github.githubassets.com/images/icons/emoji/unicode/1f43d.png?v8", + "pill": "https://github.githubassets.com/images/icons/emoji/unicode/1f48a.png?v8", + "pilot": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-2708.png?v8", + "pinata": "https://github.githubassets.com/images/icons/emoji/unicode/1fa85.png?v8", + "pinched_fingers": "https://github.githubassets.com/images/icons/emoji/unicode/1f90c.png?v8", + "pinching_hand": "https://github.githubassets.com/images/icons/emoji/unicode/1f90f.png?v8", + "pineapple": "https://github.githubassets.com/images/icons/emoji/unicode/1f34d.png?v8", + "ping_pong": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d3.png?v8", + "pirate_flag": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-2620.png?v8", + "pisces": "https://github.githubassets.com/images/icons/emoji/unicode/2653.png?v8", + "pitcairn_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f3.png?v8", + "pizza": "https://github.githubassets.com/images/icons/emoji/unicode/1f355.png?v8", + "placard": "https://github.githubassets.com/images/icons/emoji/unicode/1faa7.png?v8", + "place_of_worship": "https://github.githubassets.com/images/icons/emoji/unicode/1f6d0.png?v8", + "plate_with_cutlery": "https://github.githubassets.com/images/icons/emoji/unicode/1f37d.png?v8", + "play_or_pause_button": "https://github.githubassets.com/images/icons/emoji/unicode/23ef.png?v8", + "pleading_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f97a.png?v8", + "plunger": "https://github.githubassets.com/images/icons/emoji/unicode/1faa0.png?v8", + "point_down": "https://github.githubassets.com/images/icons/emoji/unicode/1f447.png?v8", + "point_left": "https://github.githubassets.com/images/icons/emoji/unicode/1f448.png?v8", + "point_right": "https://github.githubassets.com/images/icons/emoji/unicode/1f449.png?v8", + "point_up": "https://github.githubassets.com/images/icons/emoji/unicode/261d.png?v8", + "point_up_2": "https://github.githubassets.com/images/icons/emoji/unicode/1f446.png?v8", + "poland": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f1.png?v8", + "polar_bear": "https://github.githubassets.com/images/icons/emoji/unicode/1f43b-2744.png?v8", + "police_car": "https://github.githubassets.com/images/icons/emoji/unicode/1f693.png?v8", + "police_officer": "https://github.githubassets.com/images/icons/emoji/unicode/1f46e.png?v8", + "policeman": "https://github.githubassets.com/images/icons/emoji/unicode/1f46e-2642.png?v8", + "policewoman": "https://github.githubassets.com/images/icons/emoji/unicode/1f46e-2640.png?v8", + "poodle": "https://github.githubassets.com/images/icons/emoji/unicode/1f429.png?v8", + "poop": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a9.png?v8", + "popcorn": "https://github.githubassets.com/images/icons/emoji/unicode/1f37f.png?v8", + "portugal": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f9.png?v8", + "post_office": "https://github.githubassets.com/images/icons/emoji/unicode/1f3e3.png?v8", + "postal_horn": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ef.png?v8", + "postbox": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ee.png?v8", + "potable_water": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b0.png?v8", + "potato": "https://github.githubassets.com/images/icons/emoji/unicode/1f954.png?v8", + "potted_plant": "https://github.githubassets.com/images/icons/emoji/unicode/1fab4.png?v8", + "pouch": "https://github.githubassets.com/images/icons/emoji/unicode/1f45d.png?v8", + "poultry_leg": "https://github.githubassets.com/images/icons/emoji/unicode/1f357.png?v8", + "pound": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b7.png?v8", + "pout": "https://github.githubassets.com/images/icons/emoji/unicode/1f621.png?v8", + "pouting_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f63e.png?v8", + "pouting_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f64e.png?v8", + "pouting_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f64e-2642.png?v8", + "pouting_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f64e-2640.png?v8", + "pray": "https://github.githubassets.com/images/icons/emoji/unicode/1f64f.png?v8", + "prayer_beads": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ff.png?v8", + "pregnant_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f930.png?v8", + "pretzel": "https://github.githubassets.com/images/icons/emoji/unicode/1f968.png?v8", + "previous_track_button": "https://github.githubassets.com/images/icons/emoji/unicode/23ee.png?v8", + "prince": "https://github.githubassets.com/images/icons/emoji/unicode/1f934.png?v8", + "princess": "https://github.githubassets.com/images/icons/emoji/unicode/1f478.png?v8", + "printer": "https://github.githubassets.com/images/icons/emoji/unicode/1f5a8.png?v8", + "probing_cane": "https://github.githubassets.com/images/icons/emoji/unicode/1f9af.png?v8", + "puerto_rico": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f7.png?v8", + "punch": "https://github.githubassets.com/images/icons/emoji/unicode/1f44a.png?v8", + "purple_circle": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e3.png?v8", + "purple_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f49c.png?v8", + "purple_square": "https://github.githubassets.com/images/icons/emoji/unicode/1f7ea.png?v8", + "purse": "https://github.githubassets.com/images/icons/emoji/unicode/1f45b.png?v8", + "pushpin": "https://github.githubassets.com/images/icons/emoji/unicode/1f4cc.png?v8", + "put_litter_in_its_place": "https://github.githubassets.com/images/icons/emoji/unicode/1f6ae.png?v8", + "qatar": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f6-1f1e6.png?v8", + "question": "https://github.githubassets.com/images/icons/emoji/unicode/2753.png?v8", + "rabbit": "https://github.githubassets.com/images/icons/emoji/unicode/1f430.png?v8", + "rabbit2": "https://github.githubassets.com/images/icons/emoji/unicode/1f407.png?v8", + "raccoon": "https://github.githubassets.com/images/icons/emoji/unicode/1f99d.png?v8", + "racehorse": "https://github.githubassets.com/images/icons/emoji/unicode/1f40e.png?v8", + "racing_car": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ce.png?v8", + "radio": "https://github.githubassets.com/images/icons/emoji/unicode/1f4fb.png?v8", + "radio_button": "https://github.githubassets.com/images/icons/emoji/unicode/1f518.png?v8", + "radioactive": "https://github.githubassets.com/images/icons/emoji/unicode/2622.png?v8", + "rage": "https://github.githubassets.com/images/icons/emoji/unicode/1f621.png?v8", + "rage1": "https://github.githubassets.com/images/icons/emoji/rage1.png?v8", + "rage2": "https://github.githubassets.com/images/icons/emoji/rage2.png?v8", + "rage3": "https://github.githubassets.com/images/icons/emoji/rage3.png?v8", + "rage4": "https://github.githubassets.com/images/icons/emoji/rage4.png?v8", + "railway_car": "https://github.githubassets.com/images/icons/emoji/unicode/1f683.png?v8", + "railway_track": "https://github.githubassets.com/images/icons/emoji/unicode/1f6e4.png?v8", + "rainbow": "https://github.githubassets.com/images/icons/emoji/unicode/1f308.png?v8", + "rainbow_flag": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f3-1f308.png?v8", + "raised_back_of_hand": "https://github.githubassets.com/images/icons/emoji/unicode/1f91a.png?v8", + "raised_eyebrow": "https://github.githubassets.com/images/icons/emoji/unicode/1f928.png?v8", + "raised_hand": "https://github.githubassets.com/images/icons/emoji/unicode/270b.png?v8", + "raised_hand_with_fingers_splayed": "https://github.githubassets.com/images/icons/emoji/unicode/1f590.png?v8", + "raised_hands": "https://github.githubassets.com/images/icons/emoji/unicode/1f64c.png?v8", + "raising_hand": "https://github.githubassets.com/images/icons/emoji/unicode/1f64b.png?v8", + "raising_hand_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f64b-2642.png?v8", + "raising_hand_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f64b-2640.png?v8", + "ram": "https://github.githubassets.com/images/icons/emoji/unicode/1f40f.png?v8", + "ramen": "https://github.githubassets.com/images/icons/emoji/unicode/1f35c.png?v8", + "rat": "https://github.githubassets.com/images/icons/emoji/unicode/1f400.png?v8", + "razor": "https://github.githubassets.com/images/icons/emoji/unicode/1fa92.png?v8", + "receipt": "https://github.githubassets.com/images/icons/emoji/unicode/1f9fe.png?v8", + "record_button": "https://github.githubassets.com/images/icons/emoji/unicode/23fa.png?v8", + "recycle": "https://github.githubassets.com/images/icons/emoji/unicode/267b.png?v8", + "red_car": "https://github.githubassets.com/images/icons/emoji/unicode/1f697.png?v8", + "red_circle": "https://github.githubassets.com/images/icons/emoji/unicode/1f534.png?v8", + "red_envelope": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e7.png?v8", + "red_haired_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b0.png?v8", + "red_haired_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b0.png?v8", + "red_square": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e5.png?v8", + "registered": "https://github.githubassets.com/images/icons/emoji/unicode/00ae.png?v8", + "relaxed": "https://github.githubassets.com/images/icons/emoji/unicode/263a.png?v8", + "relieved": "https://github.githubassets.com/images/icons/emoji/unicode/1f60c.png?v8", + "reminder_ribbon": "https://github.githubassets.com/images/icons/emoji/unicode/1f397.png?v8", + "repeat": "https://github.githubassets.com/images/icons/emoji/unicode/1f501.png?v8", + "repeat_one": "https://github.githubassets.com/images/icons/emoji/unicode/1f502.png?v8", + "rescue_worker_helmet": "https://github.githubassets.com/images/icons/emoji/unicode/26d1.png?v8", + "restroom": "https://github.githubassets.com/images/icons/emoji/unicode/1f6bb.png?v8", + "reunion": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1ea.png?v8", + "revolving_hearts": "https://github.githubassets.com/images/icons/emoji/unicode/1f49e.png?v8", + "rewind": "https://github.githubassets.com/images/icons/emoji/unicode/23ea.png?v8", + "rhinoceros": "https://github.githubassets.com/images/icons/emoji/unicode/1f98f.png?v8", + "ribbon": "https://github.githubassets.com/images/icons/emoji/unicode/1f380.png?v8", + "rice": "https://github.githubassets.com/images/icons/emoji/unicode/1f35a.png?v8", + "rice_ball": "https://github.githubassets.com/images/icons/emoji/unicode/1f359.png?v8", + "rice_cracker": "https://github.githubassets.com/images/icons/emoji/unicode/1f358.png?v8", + "rice_scene": "https://github.githubassets.com/images/icons/emoji/unicode/1f391.png?v8", + "right_anger_bubble": "https://github.githubassets.com/images/icons/emoji/unicode/1f5ef.png?v8", + "ring": "https://github.githubassets.com/images/icons/emoji/unicode/1f48d.png?v8", + "ringed_planet": "https://github.githubassets.com/images/icons/emoji/unicode/1fa90.png?v8", + "robot": "https://github.githubassets.com/images/icons/emoji/unicode/1f916.png?v8", + "rock": "https://github.githubassets.com/images/icons/emoji/unicode/1faa8.png?v8", + "rocket": "https://github.githubassets.com/images/icons/emoji/unicode/1f680.png?v8", + "rofl": "https://github.githubassets.com/images/icons/emoji/unicode/1f923.png?v8", + "roll_eyes": "https://github.githubassets.com/images/icons/emoji/unicode/1f644.png?v8", + "roll_of_paper": "https://github.githubassets.com/images/icons/emoji/unicode/1f9fb.png?v8", + "roller_coaster": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a2.png?v8", + "roller_skate": "https://github.githubassets.com/images/icons/emoji/unicode/1f6fc.png?v8", + "romania": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1f4.png?v8", + "rooster": "https://github.githubassets.com/images/icons/emoji/unicode/1f413.png?v8", + "rose": "https://github.githubassets.com/images/icons/emoji/unicode/1f339.png?v8", + "rosette": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f5.png?v8", + "rotating_light": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a8.png?v8", + "round_pushpin": "https://github.githubassets.com/images/icons/emoji/unicode/1f4cd.png?v8", + "rowboat": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a3.png?v8", + "rowing_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a3-2642.png?v8", + "rowing_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a3-2640.png?v8", + "ru": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1fa.png?v8", + "rugby_football": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c9.png?v8", + "runner": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c3.png?v8", + "running": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c3.png?v8", + "running_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c3-2642.png?v8", + "running_shirt_with_sash": "https://github.githubassets.com/images/icons/emoji/unicode/1f3bd.png?v8", + "running_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c3-2640.png?v8", + "rwanda": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1fc.png?v8", + "sa": "https://github.githubassets.com/images/icons/emoji/unicode/1f202.png?v8", + "safety_pin": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f7.png?v8", + "safety_vest": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ba.png?v8", + "sagittarius": "https://github.githubassets.com/images/icons/emoji/unicode/2650.png?v8", + "sailboat": "https://github.githubassets.com/images/icons/emoji/unicode/26f5.png?v8", + "sake": "https://github.githubassets.com/images/icons/emoji/unicode/1f376.png?v8", + "salt": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c2.png?v8", + "samoa": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fc-1f1f8.png?v8", + "san_marino": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f2.png?v8", + "sandal": "https://github.githubassets.com/images/icons/emoji/unicode/1f461.png?v8", + "sandwich": "https://github.githubassets.com/images/icons/emoji/unicode/1f96a.png?v8", + "santa": "https://github.githubassets.com/images/icons/emoji/unicode/1f385.png?v8", + "sao_tome_principe": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f9.png?v8", + "sari": "https://github.githubassets.com/images/icons/emoji/unicode/1f97b.png?v8", + "sassy_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f481-2642.png?v8", + "sassy_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f481-2640.png?v8", + "satellite": "https://github.githubassets.com/images/icons/emoji/unicode/1f4e1.png?v8", + "satisfied": "https://github.githubassets.com/images/icons/emoji/unicode/1f606.png?v8", + "saudi_arabia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e6.png?v8", + "sauna_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d6-2642.png?v8", + "sauna_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d6.png?v8", + "sauna_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d6-2640.png?v8", + "sauropod": "https://github.githubassets.com/images/icons/emoji/unicode/1f995.png?v8", + "saxophone": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b7.png?v8", + "scarf": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e3.png?v8", + "school": "https://github.githubassets.com/images/icons/emoji/unicode/1f3eb.png?v8", + "school_satchel": "https://github.githubassets.com/images/icons/emoji/unicode/1f392.png?v8", + "scientist": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f52c.png?v8", + "scissors": "https://github.githubassets.com/images/icons/emoji/unicode/2702.png?v8", + "scorpion": "https://github.githubassets.com/images/icons/emoji/unicode/1f982.png?v8", + "scorpius": "https://github.githubassets.com/images/icons/emoji/unicode/264f.png?v8", + "scotland": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.png?v8", + "scream": "https://github.githubassets.com/images/icons/emoji/unicode/1f631.png?v8", + "scream_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f640.png?v8", + "screwdriver": "https://github.githubassets.com/images/icons/emoji/unicode/1fa9b.png?v8", + "scroll": "https://github.githubassets.com/images/icons/emoji/unicode/1f4dc.png?v8", + "seal": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ad.png?v8", + "seat": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ba.png?v8", + "secret": "https://github.githubassets.com/images/icons/emoji/unicode/3299.png?v8", + "see_no_evil": "https://github.githubassets.com/images/icons/emoji/unicode/1f648.png?v8", + "seedling": "https://github.githubassets.com/images/icons/emoji/unicode/1f331.png?v8", + "selfie": "https://github.githubassets.com/images/icons/emoji/unicode/1f933.png?v8", + "senegal": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f3.png?v8", + "serbia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1f8.png?v8", + "service_dog": "https://github.githubassets.com/images/icons/emoji/unicode/1f415-1f9ba.png?v8", + "seven": "https://github.githubassets.com/images/icons/emoji/unicode/0037-20e3.png?v8", + "sewing_needle": "https://github.githubassets.com/images/icons/emoji/unicode/1faa1.png?v8", + "seychelles": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e8.png?v8", + "shallow_pan_of_food": "https://github.githubassets.com/images/icons/emoji/unicode/1f958.png?v8", + "shamrock": "https://github.githubassets.com/images/icons/emoji/unicode/2618.png?v8", + "shark": "https://github.githubassets.com/images/icons/emoji/unicode/1f988.png?v8", + "shaved_ice": "https://github.githubassets.com/images/icons/emoji/unicode/1f367.png?v8", + "sheep": "https://github.githubassets.com/images/icons/emoji/unicode/1f411.png?v8", + "shell": "https://github.githubassets.com/images/icons/emoji/unicode/1f41a.png?v8", + "shield": "https://github.githubassets.com/images/icons/emoji/unicode/1f6e1.png?v8", + "shinto_shrine": "https://github.githubassets.com/images/icons/emoji/unicode/26e9.png?v8", + "ship": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a2.png?v8", + "shipit": "https://github.githubassets.com/images/icons/emoji/shipit.png?v8", + "shirt": "https://github.githubassets.com/images/icons/emoji/unicode/1f455.png?v8", + "shoe": "https://github.githubassets.com/images/icons/emoji/unicode/1f45e.png?v8", + "shopping": "https://github.githubassets.com/images/icons/emoji/unicode/1f6cd.png?v8", + "shopping_cart": "https://github.githubassets.com/images/icons/emoji/unicode/1f6d2.png?v8", + "shorts": "https://github.githubassets.com/images/icons/emoji/unicode/1fa73.png?v8", + "shower": "https://github.githubassets.com/images/icons/emoji/unicode/1f6bf.png?v8", + "shrimp": "https://github.githubassets.com/images/icons/emoji/unicode/1f990.png?v8", + "shrug": "https://github.githubassets.com/images/icons/emoji/unicode/1f937.png?v8", + "shushing_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f92b.png?v8", + "sierra_leone": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f1.png?v8", + "signal_strength": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f6.png?v8", + "singapore": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ec.png?v8", + "singer": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3a4.png?v8", + "sint_maarten": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1fd.png?v8", + "six": "https://github.githubassets.com/images/icons/emoji/unicode/0036-20e3.png?v8", + "six_pointed_star": "https://github.githubassets.com/images/icons/emoji/unicode/1f52f.png?v8", + "skateboard": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f9.png?v8", + "ski": "https://github.githubassets.com/images/icons/emoji/unicode/1f3bf.png?v8", + "skier": "https://github.githubassets.com/images/icons/emoji/unicode/26f7.png?v8", + "skull": "https://github.githubassets.com/images/icons/emoji/unicode/1f480.png?v8", + "skull_and_crossbones": "https://github.githubassets.com/images/icons/emoji/unicode/2620.png?v8", + "skunk": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a8.png?v8", + "sled": "https://github.githubassets.com/images/icons/emoji/unicode/1f6f7.png?v8", + "sleeping": "https://github.githubassets.com/images/icons/emoji/unicode/1f634.png?v8", + "sleeping_bed": "https://github.githubassets.com/images/icons/emoji/unicode/1f6cc.png?v8", + "sleepy": "https://github.githubassets.com/images/icons/emoji/unicode/1f62a.png?v8", + "slightly_frowning_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f641.png?v8", + "slightly_smiling_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f642.png?v8", + "slot_machine": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b0.png?v8", + "sloth": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a5.png?v8", + "slovakia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f0.png?v8", + "slovenia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ee.png?v8", + "small_airplane": "https://github.githubassets.com/images/icons/emoji/unicode/1f6e9.png?v8", + "small_blue_diamond": "https://github.githubassets.com/images/icons/emoji/unicode/1f539.png?v8", + "small_orange_diamond": "https://github.githubassets.com/images/icons/emoji/unicode/1f538.png?v8", + "small_red_triangle": "https://github.githubassets.com/images/icons/emoji/unicode/1f53a.png?v8", + "small_red_triangle_down": "https://github.githubassets.com/images/icons/emoji/unicode/1f53b.png?v8", + "smile": "https://github.githubassets.com/images/icons/emoji/unicode/1f604.png?v8", + "smile_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f638.png?v8", + "smiley": "https://github.githubassets.com/images/icons/emoji/unicode/1f603.png?v8", + "smiley_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f63a.png?v8", + "smiling_face_with_tear": "https://github.githubassets.com/images/icons/emoji/unicode/1f972.png?v8", + "smiling_face_with_three_hearts": "https://github.githubassets.com/images/icons/emoji/unicode/1f970.png?v8", + "smiling_imp": "https://github.githubassets.com/images/icons/emoji/unicode/1f608.png?v8", + "smirk": "https://github.githubassets.com/images/icons/emoji/unicode/1f60f.png?v8", + "smirk_cat": "https://github.githubassets.com/images/icons/emoji/unicode/1f63c.png?v8", + "smoking": "https://github.githubassets.com/images/icons/emoji/unicode/1f6ac.png?v8", + "snail": "https://github.githubassets.com/images/icons/emoji/unicode/1f40c.png?v8", + "snake": "https://github.githubassets.com/images/icons/emoji/unicode/1f40d.png?v8", + "sneezing_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f927.png?v8", + "snowboarder": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c2.png?v8", + "snowflake": "https://github.githubassets.com/images/icons/emoji/unicode/2744.png?v8", + "snowman": "https://github.githubassets.com/images/icons/emoji/unicode/26c4.png?v8", + "snowman_with_snow": "https://github.githubassets.com/images/icons/emoji/unicode/2603.png?v8", + "soap": "https://github.githubassets.com/images/icons/emoji/unicode/1f9fc.png?v8", + "sob": "https://github.githubassets.com/images/icons/emoji/unicode/1f62d.png?v8", + "soccer": "https://github.githubassets.com/images/icons/emoji/unicode/26bd.png?v8", + "socks": "https://github.githubassets.com/images/icons/emoji/unicode/1f9e6.png?v8", + "softball": "https://github.githubassets.com/images/icons/emoji/unicode/1f94e.png?v8", + "solomon_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e7.png?v8", + "somalia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f4.png?v8", + "soon": "https://github.githubassets.com/images/icons/emoji/unicode/1f51c.png?v8", + "sos": "https://github.githubassets.com/images/icons/emoji/unicode/1f198.png?v8", + "sound": "https://github.githubassets.com/images/icons/emoji/unicode/1f509.png?v8", + "south_africa": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ff-1f1e6.png?v8", + "south_georgia_south_sandwich_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1f8.png?v8", + "south_sudan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f8.png?v8", + "space_invader": "https://github.githubassets.com/images/icons/emoji/unicode/1f47e.png?v8", + "spades": "https://github.githubassets.com/images/icons/emoji/unicode/2660.png?v8", + "spaghetti": "https://github.githubassets.com/images/icons/emoji/unicode/1f35d.png?v8", + "sparkle": "https://github.githubassets.com/images/icons/emoji/unicode/2747.png?v8", + "sparkler": "https://github.githubassets.com/images/icons/emoji/unicode/1f387.png?v8", + "sparkles": "https://github.githubassets.com/images/icons/emoji/unicode/2728.png?v8", + "sparkling_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f496.png?v8", + "speak_no_evil": "https://github.githubassets.com/images/icons/emoji/unicode/1f64a.png?v8", + "speaker": "https://github.githubassets.com/images/icons/emoji/unicode/1f508.png?v8", + "speaking_head": "https://github.githubassets.com/images/icons/emoji/unicode/1f5e3.png?v8", + "speech_balloon": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ac.png?v8", + "speedboat": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a4.png?v8", + "spider": "https://github.githubassets.com/images/icons/emoji/unicode/1f577.png?v8", + "spider_web": "https://github.githubassets.com/images/icons/emoji/unicode/1f578.png?v8", + "spiral_calendar": "https://github.githubassets.com/images/icons/emoji/unicode/1f5d3.png?v8", + "spiral_notepad": "https://github.githubassets.com/images/icons/emoji/unicode/1f5d2.png?v8", + "sponge": "https://github.githubassets.com/images/icons/emoji/unicode/1f9fd.png?v8", + "spoon": "https://github.githubassets.com/images/icons/emoji/unicode/1f944.png?v8", + "squid": "https://github.githubassets.com/images/icons/emoji/unicode/1f991.png?v8", + "sri_lanka": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1f0.png?v8", + "st_barthelemy": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e7-1f1f1.png?v8", + "st_helena": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ed.png?v8", + "st_kitts_nevis": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f0-1f1f3.png?v8", + "st_lucia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f1-1f1e8.png?v8", + "st_martin": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f2-1f1eb.png?v8", + "st_pierre_miquelon": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f5-1f1f2.png?v8", + "st_vincent_grenadines": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1e8.png?v8", + "stadium": "https://github.githubassets.com/images/icons/emoji/unicode/1f3df.png?v8", + "standing_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9cd-2642.png?v8", + "standing_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f9cd.png?v8", + "standing_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9cd-2640.png?v8", + "star": "https://github.githubassets.com/images/icons/emoji/unicode/2b50.png?v8", + "star2": "https://github.githubassets.com/images/icons/emoji/unicode/1f31f.png?v8", + "star_and_crescent": "https://github.githubassets.com/images/icons/emoji/unicode/262a.png?v8", + "star_of_david": "https://github.githubassets.com/images/icons/emoji/unicode/2721.png?v8", + "star_struck": "https://github.githubassets.com/images/icons/emoji/unicode/1f929.png?v8", + "stars": "https://github.githubassets.com/images/icons/emoji/unicode/1f320.png?v8", + "station": "https://github.githubassets.com/images/icons/emoji/unicode/1f689.png?v8", + "statue_of_liberty": "https://github.githubassets.com/images/icons/emoji/unicode/1f5fd.png?v8", + "steam_locomotive": "https://github.githubassets.com/images/icons/emoji/unicode/1f682.png?v8", + "stethoscope": "https://github.githubassets.com/images/icons/emoji/unicode/1fa7a.png?v8", + "stew": "https://github.githubassets.com/images/icons/emoji/unicode/1f372.png?v8", + "stop_button": "https://github.githubassets.com/images/icons/emoji/unicode/23f9.png?v8", + "stop_sign": "https://github.githubassets.com/images/icons/emoji/unicode/1f6d1.png?v8", + "stopwatch": "https://github.githubassets.com/images/icons/emoji/unicode/23f1.png?v8", + "straight_ruler": "https://github.githubassets.com/images/icons/emoji/unicode/1f4cf.png?v8", + "strawberry": "https://github.githubassets.com/images/icons/emoji/unicode/1f353.png?v8", + "stuck_out_tongue": "https://github.githubassets.com/images/icons/emoji/unicode/1f61b.png?v8", + "stuck_out_tongue_closed_eyes": "https://github.githubassets.com/images/icons/emoji/unicode/1f61d.png?v8", + "stuck_out_tongue_winking_eye": "https://github.githubassets.com/images/icons/emoji/unicode/1f61c.png?v8", + "student": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f393.png?v8", + "studio_microphone": "https://github.githubassets.com/images/icons/emoji/unicode/1f399.png?v8", + "stuffed_flatbread": "https://github.githubassets.com/images/icons/emoji/unicode/1f959.png?v8", + "sudan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1e9.png?v8", + "sun_behind_large_cloud": "https://github.githubassets.com/images/icons/emoji/unicode/1f325.png?v8", + "sun_behind_rain_cloud": "https://github.githubassets.com/images/icons/emoji/unicode/1f326.png?v8", + "sun_behind_small_cloud": "https://github.githubassets.com/images/icons/emoji/unicode/1f324.png?v8", + "sun_with_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f31e.png?v8", + "sunflower": "https://github.githubassets.com/images/icons/emoji/unicode/1f33b.png?v8", + "sunglasses": "https://github.githubassets.com/images/icons/emoji/unicode/1f60e.png?v8", + "sunny": "https://github.githubassets.com/images/icons/emoji/unicode/2600.png?v8", + "sunrise": "https://github.githubassets.com/images/icons/emoji/unicode/1f305.png?v8", + "sunrise_over_mountains": "https://github.githubassets.com/images/icons/emoji/unicode/1f304.png?v8", + "superhero": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b8.png?v8", + "superhero_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b8-2642.png?v8", + "superhero_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b8-2640.png?v8", + "supervillain": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b9.png?v8", + "supervillain_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b9-2642.png?v8", + "supervillain_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b9-2640.png?v8", + "surfer": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c4.png?v8", + "surfing_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c4-2642.png?v8", + "surfing_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c4-2640.png?v8", + "suriname": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1f7.png?v8", + "sushi": "https://github.githubassets.com/images/icons/emoji/unicode/1f363.png?v8", + "suspect": "https://github.githubassets.com/images/icons/emoji/suspect.png?v8", + "suspension_railway": "https://github.githubassets.com/images/icons/emoji/unicode/1f69f.png?v8", + "svalbard_jan_mayen": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ef.png?v8", + "swan": "https://github.githubassets.com/images/icons/emoji/unicode/1f9a2.png?v8", + "swaziland": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ff.png?v8", + "sweat": "https://github.githubassets.com/images/icons/emoji/unicode/1f613.png?v8", + "sweat_drops": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a6.png?v8", + "sweat_smile": "https://github.githubassets.com/images/icons/emoji/unicode/1f605.png?v8", + "sweden": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1ea.png?v8", + "sweet_potato": "https://github.githubassets.com/images/icons/emoji/unicode/1f360.png?v8", + "swim_brief": "https://github.githubassets.com/images/icons/emoji/unicode/1fa72.png?v8", + "swimmer": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ca.png?v8", + "swimming_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ca-2642.png?v8", + "swimming_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ca-2640.png?v8", + "switzerland": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ed.png?v8", + "symbols": "https://github.githubassets.com/images/icons/emoji/unicode/1f523.png?v8", + "synagogue": "https://github.githubassets.com/images/icons/emoji/unicode/1f54d.png?v8", + "syria": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f8-1f1fe.png?v8", + "syringe": "https://github.githubassets.com/images/icons/emoji/unicode/1f489.png?v8", + "t-rex": "https://github.githubassets.com/images/icons/emoji/unicode/1f996.png?v8", + "taco": "https://github.githubassets.com/images/icons/emoji/unicode/1f32e.png?v8", + "tada": "https://github.githubassets.com/images/icons/emoji/unicode/1f389.png?v8", + "taiwan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1fc.png?v8", + "tajikistan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ef.png?v8", + "takeout_box": "https://github.githubassets.com/images/icons/emoji/unicode/1f961.png?v8", + "tamale": "https://github.githubassets.com/images/icons/emoji/unicode/1fad4.png?v8", + "tanabata_tree": "https://github.githubassets.com/images/icons/emoji/unicode/1f38b.png?v8", + "tangerine": "https://github.githubassets.com/images/icons/emoji/unicode/1f34a.png?v8", + "tanzania": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ff.png?v8", + "taurus": "https://github.githubassets.com/images/icons/emoji/unicode/2649.png?v8", + "taxi": "https://github.githubassets.com/images/icons/emoji/unicode/1f695.png?v8", + "tea": "https://github.githubassets.com/images/icons/emoji/unicode/1f375.png?v8", + "teacher": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f3eb.png?v8", + "teapot": "https://github.githubassets.com/images/icons/emoji/unicode/1fad6.png?v8", + "technologist": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d1-1f4bb.png?v8", + "teddy_bear": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f8.png?v8", + "telephone": "https://github.githubassets.com/images/icons/emoji/unicode/260e.png?v8", + "telephone_receiver": "https://github.githubassets.com/images/icons/emoji/unicode/1f4de.png?v8", + "telescope": "https://github.githubassets.com/images/icons/emoji/unicode/1f52d.png?v8", + "tennis": "https://github.githubassets.com/images/icons/emoji/unicode/1f3be.png?v8", + "tent": "https://github.githubassets.com/images/icons/emoji/unicode/26fa.png?v8", + "test_tube": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ea.png?v8", + "thailand": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ed.png?v8", + "thermometer": "https://github.githubassets.com/images/icons/emoji/unicode/1f321.png?v8", + "thinking": "https://github.githubassets.com/images/icons/emoji/unicode/1f914.png?v8", + "thong_sandal": "https://github.githubassets.com/images/icons/emoji/unicode/1fa74.png?v8", + "thought_balloon": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ad.png?v8", + "thread": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f5.png?v8", + "three": "https://github.githubassets.com/images/icons/emoji/unicode/0033-20e3.png?v8", + "thumbsdown": "https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png?v8", + "thumbsup": "https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png?v8", + "ticket": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ab.png?v8", + "tickets": "https://github.githubassets.com/images/icons/emoji/unicode/1f39f.png?v8", + "tiger": "https://github.githubassets.com/images/icons/emoji/unicode/1f42f.png?v8", + "tiger2": "https://github.githubassets.com/images/icons/emoji/unicode/1f405.png?v8", + "timer_clock": "https://github.githubassets.com/images/icons/emoji/unicode/23f2.png?v8", + "timor_leste": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f1.png?v8", + "tipping_hand_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f481-2642.png?v8", + "tipping_hand_person": "https://github.githubassets.com/images/icons/emoji/unicode/1f481.png?v8", + "tipping_hand_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f481-2640.png?v8", + "tired_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f62b.png?v8", + "tm": "https://github.githubassets.com/images/icons/emoji/unicode/2122.png?v8", + "togo": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1ec.png?v8", + "toilet": "https://github.githubassets.com/images/icons/emoji/unicode/1f6bd.png?v8", + "tokelau": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f0.png?v8", + "tokyo_tower": "https://github.githubassets.com/images/icons/emoji/unicode/1f5fc.png?v8", + "tomato": "https://github.githubassets.com/images/icons/emoji/unicode/1f345.png?v8", + "tonga": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f4.png?v8", + "tongue": "https://github.githubassets.com/images/icons/emoji/unicode/1f445.png?v8", + "toolbox": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f0.png?v8", + "tooth": "https://github.githubassets.com/images/icons/emoji/unicode/1f9b7.png?v8", + "toothbrush": "https://github.githubassets.com/images/icons/emoji/unicode/1faa5.png?v8", + "top": "https://github.githubassets.com/images/icons/emoji/unicode/1f51d.png?v8", + "tophat": "https://github.githubassets.com/images/icons/emoji/unicode/1f3a9.png?v8", + "tornado": "https://github.githubassets.com/images/icons/emoji/unicode/1f32a.png?v8", + "tr": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f7.png?v8", + "trackball": "https://github.githubassets.com/images/icons/emoji/unicode/1f5b2.png?v8", + "tractor": "https://github.githubassets.com/images/icons/emoji/unicode/1f69c.png?v8", + "traffic_light": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a5.png?v8", + "train": "https://github.githubassets.com/images/icons/emoji/unicode/1f68b.png?v8", + "train2": "https://github.githubassets.com/images/icons/emoji/unicode/1f686.png?v8", + "tram": "https://github.githubassets.com/images/icons/emoji/unicode/1f68a.png?v8", + "transgender_flag": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f3-26a7.png?v8", + "transgender_symbol": "https://github.githubassets.com/images/icons/emoji/unicode/26a7.png?v8", + "triangular_flag_on_post": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a9.png?v8", + "triangular_ruler": "https://github.githubassets.com/images/icons/emoji/unicode/1f4d0.png?v8", + "trident": "https://github.githubassets.com/images/icons/emoji/unicode/1f531.png?v8", + "trinidad_tobago": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f9.png?v8", + "tristan_da_cunha": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1e6.png?v8", + "triumph": "https://github.githubassets.com/images/icons/emoji/unicode/1f624.png?v8", + "trolleybus": "https://github.githubassets.com/images/icons/emoji/unicode/1f68e.png?v8", + "trollface": "https://github.githubassets.com/images/icons/emoji/trollface.png?v8", + "trophy": "https://github.githubassets.com/images/icons/emoji/unicode/1f3c6.png?v8", + "tropical_drink": "https://github.githubassets.com/images/icons/emoji/unicode/1f379.png?v8", + "tropical_fish": "https://github.githubassets.com/images/icons/emoji/unicode/1f420.png?v8", + "truck": "https://github.githubassets.com/images/icons/emoji/unicode/1f69a.png?v8", + "trumpet": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ba.png?v8", + "tshirt": "https://github.githubassets.com/images/icons/emoji/unicode/1f455.png?v8", + "tulip": "https://github.githubassets.com/images/icons/emoji/unicode/1f337.png?v8", + "tumbler_glass": "https://github.githubassets.com/images/icons/emoji/unicode/1f943.png?v8", + "tunisia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f3.png?v8", + "turkey": "https://github.githubassets.com/images/icons/emoji/unicode/1f983.png?v8", + "turkmenistan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1f2.png?v8", + "turks_caicos_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1e8.png?v8", + "turtle": "https://github.githubassets.com/images/icons/emoji/unicode/1f422.png?v8", + "tuvalu": "https://github.githubassets.com/images/icons/emoji/unicode/1f1f9-1f1fb.png?v8", + "tv": "https://github.githubassets.com/images/icons/emoji/unicode/1f4fa.png?v8", + "twisted_rightwards_arrows": "https://github.githubassets.com/images/icons/emoji/unicode/1f500.png?v8", + "two": "https://github.githubassets.com/images/icons/emoji/unicode/0032-20e3.png?v8", + "two_hearts": "https://github.githubassets.com/images/icons/emoji/unicode/1f495.png?v8", + "two_men_holding_hands": "https://github.githubassets.com/images/icons/emoji/unicode/1f46c.png?v8", + "two_women_holding_hands": "https://github.githubassets.com/images/icons/emoji/unicode/1f46d.png?v8", + "u5272": "https://github.githubassets.com/images/icons/emoji/unicode/1f239.png?v8", + "u5408": "https://github.githubassets.com/images/icons/emoji/unicode/1f234.png?v8", + "u55b6": "https://github.githubassets.com/images/icons/emoji/unicode/1f23a.png?v8", + "u6307": "https://github.githubassets.com/images/icons/emoji/unicode/1f22f.png?v8", + "u6708": "https://github.githubassets.com/images/icons/emoji/unicode/1f237.png?v8", + "u6709": "https://github.githubassets.com/images/icons/emoji/unicode/1f236.png?v8", + "u6e80": "https://github.githubassets.com/images/icons/emoji/unicode/1f235.png?v8", + "u7121": "https://github.githubassets.com/images/icons/emoji/unicode/1f21a.png?v8", + "u7533": "https://github.githubassets.com/images/icons/emoji/unicode/1f238.png?v8", + "u7981": "https://github.githubassets.com/images/icons/emoji/unicode/1f232.png?v8", + "u7a7a": "https://github.githubassets.com/images/icons/emoji/unicode/1f233.png?v8", + "uganda": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1ec.png?v8", + "uk": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png?v8", + "ukraine": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1e6.png?v8", + "umbrella": "https://github.githubassets.com/images/icons/emoji/unicode/2614.png?v8", + "unamused": "https://github.githubassets.com/images/icons/emoji/unicode/1f612.png?v8", + "underage": "https://github.githubassets.com/images/icons/emoji/unicode/1f51e.png?v8", + "unicorn": "https://github.githubassets.com/images/icons/emoji/unicode/1f984.png?v8", + "united_arab_emirates": "https://github.githubassets.com/images/icons/emoji/unicode/1f1e6-1f1ea.png?v8", + "united_nations": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1f3.png?v8", + "unlock": "https://github.githubassets.com/images/icons/emoji/unicode/1f513.png?v8", + "up": "https://github.githubassets.com/images/icons/emoji/unicode/1f199.png?v8", + "upside_down_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f643.png?v8", + "uruguay": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1fe.png?v8", + "us": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1f8.png?v8", + "us_outlying_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1f2.png?v8", + "us_virgin_islands": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1ee.png?v8", + "uzbekistan": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fa-1f1ff.png?v8", + "v": "https://github.githubassets.com/images/icons/emoji/unicode/270c.png?v8", + "vampire": "https://github.githubassets.com/images/icons/emoji/unicode/1f9db.png?v8", + "vampire_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9db-2642.png?v8", + "vampire_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9db-2640.png?v8", + "vanuatu": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1fa.png?v8", + "vatican_city": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1e6.png?v8", + "venezuela": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1ea.png?v8", + "vertical_traffic_light": "https://github.githubassets.com/images/icons/emoji/unicode/1f6a6.png?v8", + "vhs": "https://github.githubassets.com/images/icons/emoji/unicode/1f4fc.png?v8", + "vibration_mode": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f3.png?v8", + "video_camera": "https://github.githubassets.com/images/icons/emoji/unicode/1f4f9.png?v8", + "video_game": "https://github.githubassets.com/images/icons/emoji/unicode/1f3ae.png?v8", + "vietnam": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fb-1f1f3.png?v8", + "violin": "https://github.githubassets.com/images/icons/emoji/unicode/1f3bb.png?v8", + "virgo": "https://github.githubassets.com/images/icons/emoji/unicode/264d.png?v8", + "volcano": "https://github.githubassets.com/images/icons/emoji/unicode/1f30b.png?v8", + "volleyball": "https://github.githubassets.com/images/icons/emoji/unicode/1f3d0.png?v8", + "vomiting_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f92e.png?v8", + "vs": "https://github.githubassets.com/images/icons/emoji/unicode/1f19a.png?v8", + "vulcan_salute": "https://github.githubassets.com/images/icons/emoji/unicode/1f596.png?v8", + "waffle": "https://github.githubassets.com/images/icons/emoji/unicode/1f9c7.png?v8", + "wales": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.png?v8", + "walking": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b6.png?v8", + "walking_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b6-2642.png?v8", + "walking_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f6b6-2640.png?v8", + "wallis_futuna": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fc-1f1eb.png?v8", + "waning_crescent_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f318.png?v8", + "waning_gibbous_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f316.png?v8", + "warning": "https://github.githubassets.com/images/icons/emoji/unicode/26a0.png?v8", + "wastebasket": "https://github.githubassets.com/images/icons/emoji/unicode/1f5d1.png?v8", + "watch": "https://github.githubassets.com/images/icons/emoji/unicode/231a.png?v8", + "water_buffalo": "https://github.githubassets.com/images/icons/emoji/unicode/1f403.png?v8", + "water_polo": "https://github.githubassets.com/images/icons/emoji/unicode/1f93d.png?v8", + "watermelon": "https://github.githubassets.com/images/icons/emoji/unicode/1f349.png?v8", + "wave": "https://github.githubassets.com/images/icons/emoji/unicode/1f44b.png?v8", + "wavy_dash": "https://github.githubassets.com/images/icons/emoji/unicode/3030.png?v8", + "waxing_crescent_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f312.png?v8", + "waxing_gibbous_moon": "https://github.githubassets.com/images/icons/emoji/unicode/1f314.png?v8", + "wc": "https://github.githubassets.com/images/icons/emoji/unicode/1f6be.png?v8", + "weary": "https://github.githubassets.com/images/icons/emoji/unicode/1f629.png?v8", + "wedding": "https://github.githubassets.com/images/icons/emoji/unicode/1f492.png?v8", + "weight_lifting": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cb.png?v8", + "weight_lifting_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cb-2642.png?v8", + "weight_lifting_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f3cb-2640.png?v8", + "western_sahara": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ed.png?v8", + "whale": "https://github.githubassets.com/images/icons/emoji/unicode/1f433.png?v8", + "whale2": "https://github.githubassets.com/images/icons/emoji/unicode/1f40b.png?v8", + "wheel_of_dharma": "https://github.githubassets.com/images/icons/emoji/unicode/2638.png?v8", + "wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/267f.png?v8", + "white_check_mark": "https://github.githubassets.com/images/icons/emoji/unicode/2705.png?v8", + "white_circle": "https://github.githubassets.com/images/icons/emoji/unicode/26aa.png?v8", + "white_flag": "https://github.githubassets.com/images/icons/emoji/unicode/1f3f3.png?v8", + "white_flower": "https://github.githubassets.com/images/icons/emoji/unicode/1f4ae.png?v8", + "white_haired_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f468-1f9b3.png?v8", + "white_haired_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9b3.png?v8", + "white_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f90d.png?v8", + "white_large_square": "https://github.githubassets.com/images/icons/emoji/unicode/2b1c.png?v8", + "white_medium_small_square": "https://github.githubassets.com/images/icons/emoji/unicode/25fd.png?v8", + "white_medium_square": "https://github.githubassets.com/images/icons/emoji/unicode/25fb.png?v8", + "white_small_square": "https://github.githubassets.com/images/icons/emoji/unicode/25ab.png?v8", + "white_square_button": "https://github.githubassets.com/images/icons/emoji/unicode/1f533.png?v8", + "wilted_flower": "https://github.githubassets.com/images/icons/emoji/unicode/1f940.png?v8", + "wind_chime": "https://github.githubassets.com/images/icons/emoji/unicode/1f390.png?v8", + "wind_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f32c.png?v8", + "window": "https://github.githubassets.com/images/icons/emoji/unicode/1fa9f.png?v8", + "wine_glass": "https://github.githubassets.com/images/icons/emoji/unicode/1f377.png?v8", + "wink": "https://github.githubassets.com/images/icons/emoji/unicode/1f609.png?v8", + "wolf": "https://github.githubassets.com/images/icons/emoji/unicode/1f43a.png?v8", + "woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f469.png?v8", + "woman_artist": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3a8.png?v8", + "woman_astronaut": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f680.png?v8", + "woman_beard": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d4-2640.png?v8", + "woman_cartwheeling": "https://github.githubassets.com/images/icons/emoji/unicode/1f938-2640.png?v8", + "woman_cook": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f373.png?v8", + "woman_dancing": "https://github.githubassets.com/images/icons/emoji/unicode/1f483.png?v8", + "woman_facepalming": "https://github.githubassets.com/images/icons/emoji/unicode/1f926-2640.png?v8", + "woman_factory_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3ed.png?v8", + "woman_farmer": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f33e.png?v8", + "woman_feeding_baby": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f37c.png?v8", + "woman_firefighter": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f692.png?v8", + "woman_health_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-2695.png?v8", + "woman_in_manual_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9bd.png?v8", + "woman_in_motorized_wheelchair": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9bc.png?v8", + "woman_in_tuxedo": "https://github.githubassets.com/images/icons/emoji/unicode/1f935-2640.png?v8", + "woman_judge": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-2696.png?v8", + "woman_juggling": "https://github.githubassets.com/images/icons/emoji/unicode/1f939-2640.png?v8", + "woman_mechanic": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f527.png?v8", + "woman_office_worker": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f4bc.png?v8", + "woman_pilot": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-2708.png?v8", + "woman_playing_handball": "https://github.githubassets.com/images/icons/emoji/unicode/1f93e-2640.png?v8", + "woman_playing_water_polo": "https://github.githubassets.com/images/icons/emoji/unicode/1f93d-2640.png?v8", + "woman_scientist": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f52c.png?v8", + "woman_shrugging": "https://github.githubassets.com/images/icons/emoji/unicode/1f937-2640.png?v8", + "woman_singer": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3a4.png?v8", + "woman_student": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f393.png?v8", + "woman_teacher": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f3eb.png?v8", + "woman_technologist": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f4bb.png?v8", + "woman_with_headscarf": "https://github.githubassets.com/images/icons/emoji/unicode/1f9d5.png?v8", + "woman_with_probing_cane": "https://github.githubassets.com/images/icons/emoji/unicode/1f469-1f9af.png?v8", + "woman_with_turban": "https://github.githubassets.com/images/icons/emoji/unicode/1f473-2640.png?v8", + "woman_with_veil": "https://github.githubassets.com/images/icons/emoji/unicode/1f470-2640.png?v8", + "womans_clothes": "https://github.githubassets.com/images/icons/emoji/unicode/1f45a.png?v8", + "womans_hat": "https://github.githubassets.com/images/icons/emoji/unicode/1f452.png?v8", + "women_wrestling": "https://github.githubassets.com/images/icons/emoji/unicode/1f93c-2640.png?v8", + "womens": "https://github.githubassets.com/images/icons/emoji/unicode/1f6ba.png?v8", + "wood": "https://github.githubassets.com/images/icons/emoji/unicode/1fab5.png?v8", + "woozy_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f974.png?v8", + "world_map": "https://github.githubassets.com/images/icons/emoji/unicode/1f5fa.png?v8", + "worm": "https://github.githubassets.com/images/icons/emoji/unicode/1fab1.png?v8", + "worried": "https://github.githubassets.com/images/icons/emoji/unicode/1f61f.png?v8", + "wrench": "https://github.githubassets.com/images/icons/emoji/unicode/1f527.png?v8", + "wrestling": "https://github.githubassets.com/images/icons/emoji/unicode/1f93c.png?v8", + "writing_hand": "https://github.githubassets.com/images/icons/emoji/unicode/270d.png?v8", + "x": "https://github.githubassets.com/images/icons/emoji/unicode/274c.png?v8", + "yarn": "https://github.githubassets.com/images/icons/emoji/unicode/1f9f6.png?v8", + "yawning_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f971.png?v8", + "yellow_circle": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e1.png?v8", + "yellow_heart": "https://github.githubassets.com/images/icons/emoji/unicode/1f49b.png?v8", + "yellow_square": "https://github.githubassets.com/images/icons/emoji/unicode/1f7e8.png?v8", + "yemen": "https://github.githubassets.com/images/icons/emoji/unicode/1f1fe-1f1ea.png?v8", + "yen": "https://github.githubassets.com/images/icons/emoji/unicode/1f4b4.png?v8", + "yin_yang": "https://github.githubassets.com/images/icons/emoji/unicode/262f.png?v8", + "yo_yo": "https://github.githubassets.com/images/icons/emoji/unicode/1fa80.png?v8", + "yum": "https://github.githubassets.com/images/icons/emoji/unicode/1f60b.png?v8", + "zambia": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ff-1f1f2.png?v8", + "zany_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f92a.png?v8", + "zap": "https://github.githubassets.com/images/icons/emoji/unicode/26a1.png?v8", + "zebra": "https://github.githubassets.com/images/icons/emoji/unicode/1f993.png?v8", + "zero": "https://github.githubassets.com/images/icons/emoji/unicode/0030-20e3.png?v8", + "zimbabwe": "https://github.githubassets.com/images/icons/emoji/unicode/1f1ff-1f1fc.png?v8", + "zipper_mouth_face": "https://github.githubassets.com/images/icons/emoji/unicode/1f910.png?v8", + "zombie": "https://github.githubassets.com/images/icons/emoji/unicode/1f9df.png?v8", + "zombie_man": "https://github.githubassets.com/images/icons/emoji/unicode/1f9df-2642.png?v8", + "zombie_woman": "https://github.githubassets.com/images/icons/emoji/unicode/1f9df-2640.png?v8", + "zzz": "https://github.githubassets.com/images/icons/emoji/unicode/1f4a4.png?v8" } }, - "organization-targets": { + "actions-cache-retention-limit": { "value": { - "total_count": 1, - "organizations": [ - { - "login": "octocat", - "id": 161335, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "url": "https://api.github.com/orgs/octo-org", - "repos_url": "https://api.github.com/orgs/octo-org/repos", - "events_url": "https://api.github.com/orgs/octo-org/events", - "hooks_url": "https://api.github.com/orgs/octo-org/hooks", - "issues_url": "https://api.github.com/orgs/octo-org/issues", - "members_url": "https://api.github.com/orgs/octo-org/members{/member}", - "public_members_url": "https://api.github.com/orgs/octo-org/public_members{/member}", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "description": "A great organization" - } - ] + "max_cache_retention_days": 80 } }, - "selected-actions": { + "actions-cache-storage-limit": { "value": { - "github_owned_allowed": true, - "verified_allowed": false, - "patterns_allowed": [ - "monalisa/octocat@*", - "docker/*" - ] + "max_cache_size_gb": 150 } }, - "runner-groups-enterprise": { - "value": { - "total_count": 3, - "runner_groups": [ - { - "id": 1, - "name": "Default", - "visibility": "all", - "default": true, - "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/1/runners", - "allows_public_repositories": false + "enterprise-code-security-configuration-list": { + "value": [ + { + "id": 17, + "target_type": "global", + "name": "GitHub recommended", + "description": "Suggested settings for Dependabot, secret scanning, and code scanning.", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "not_set", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false }, - { - "id": 2, - "name": "octo-runner-group", - "visibility": "selected", - "default": false, - "selected_organizations_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/2/organizations", - "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/2/runners", - "allows_public_repositories": true + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "enabled", + "code_scanning_default_setup_options": { + "runner_type": "not_set", + "runner_label": null }, - { - "id": 3, - "name": "expensive-hardware", - "visibility": "private", - "default": false, - "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/3/runners", - "allows_public_repositories": true - } - ] - } + "secret_scanning": "enabled", + "secret_scanning_push_protection": "enabled", + "secret_scanning_validity_checks": "enabled", + "secret_scanning_non_provider_patterns": "enabled", + "private_vulnerability_reporting": "enabled", + "enforcement": "enforced", + "url": "https://api.github.com/enterprises/octo-enterprise/code-security/configurations/17", + "html_url": "https://github.com/organizations/octo-enterprise/settings/security_analysis/configurations/17/view", + "created_at": "2023-12-04T15:58:07Z", + "updated_at": "2023-12-04T15:58:07Z" + }, + { + "id": 1326, + "target_type": "enterprise", + "name": "High risk settings", + "description": "This is a code security configuration for octo-enterprise high risk repositories", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "enabled", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "enabled", + "code_scanning_default_setup": "enabled", + "code_scanning_default_setup_options": { + "runner_type": "not_set", + "runner_label": null + }, + "secret_scanning": "enabled", + "secret_scanning_push_protection": "enabled", + "secret_scanning_validity_checks": "disabled", + "secret_scanning_non_provider_patterns": "disabled", + "private_vulnerability_reporting": "enabled", + "enforcement": "enforced", + "url": "https://api.github.com/enterprises/octo-enterprise/code-security/configurations/1326", + "html_url": "https://github.com/enterprises/octo-enterprise/settings/security_analysis/configurations/1326/edit", + "created_at": "2024-05-10T00:00:00Z", + "updated_at": "2024-05-10T00:00:00Z" + } + ] }, - "runner-group-enterprise": { + "enterprise-code-security-configuration": { "value": { - "id": 2, - "name": "octo-runner-group", - "visibility": "selected", - "default": false, - "selected_organizations_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/organizations", - "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/runners", - "allows_public_repositories": false + "id": 1325, + "target_type": "enterprise", + "name": "High risk settings", + "description": "This is a code security configuration for octo-enterprise", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "enabled", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "disabled", + "code_scanning_delegated_alert_dismissal": "disabled", + "secret_scanning": "enabled", + "secret_scanning_push_protection": "disabled", + "secret_scanning_delegated_bypass": "disabled", + "secret_scanning_validity_checks": "disabled", + "secret_scanning_non_provider_patterns": "disabled", + "secret_scanning_generic_secrets": "disabled", + "secret_scanning_delegated_alert_dismissal": "disabled", + "private_vulnerability_reporting": "disabled", + "enforcement": "enforced", + "url": "https://api.github.com/enterprises/octo-enterprise/code-security/configurations/1325", + "html_url": "https://github.com/enterprises/octo-enterprise/settings/security_analysis/configurations/1325/edit", + "created_at": "2024-05-01T00:00:00Z", + "updated_at": "2024-05-01T00:00:00Z" } }, - "runner-group-update-enterprise": { + "code-security-default-configurations": { + "value": [ + { + "default_for_new_repos": "public", + "configuration": { + "id": 1325, + "target_type": "organization", + "name": "octo-org recommended settings", + "description": "This is a code security configuration for octo-org", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "not_set", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "enabled", + "code_scanning_default_setup_options": { + "runner_type": "not_set", + "runner_label": null + }, + "code_scanning_options": { + "allow_advanced": false + }, + "secret_scanning": "enabled", + "secret_scanning_push_protection": "enabled", + "secret_scanning_delegated_bypass": "enabled", + "secret_scanning_delegated_bypass_options": { + "reviewers": [ + { + "security_configuration_id": 1325, + "reviewer_id": 5678, + "reviewer_type": "TEAM" + } + ] + }, + "secret_scanning_validity_checks": "enabled", + "secret_scanning_non_provider_patterns": "enabled", + "private_vulnerability_reporting": "enabled", + "enforcement": "enforced", + "url": "https://api.github.com/orgs/octo-org/code-security/configurations/1325", + "html_url": "https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325", + "created_at": "2024-05-01T00:00:00Z", + "updated_at": "2024-05-01T00:00:00Z" + } + }, + { + "default_for_new_repos": "private_and_internal", + "configuration": { + "id": 17, + "target_type": "global", + "name": "GitHub recommended", + "description": "Suggested settings for Dependabot, secret scanning, and code scanning.", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "not_set", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "enabled", + "code_scanning_default_setup_options": { + "runner_type": "not_set", + "runner_label": null + }, + "code_scanning_options": { + "allow_advanced": false + }, + "secret_scanning": "enabled", + "secret_scanning_push_protection": "enabled", + "secret_scanning_delegated_bypass": "disabled", + "secret_scanning_validity_checks": "disabled", + "private_vulnerability_reporting": "enabled", + "enforcement": "enforced", + "url": "https://api.github.com/orgs/octo-org/code-security/configurations/17", + "html_url": "https://github.com/organizations/octo-org/settings/security_products/configurations/view", + "created_at": "2023-12-04T15:58:07Z", + "updated_at": "2023-12-04T15:58:07Z" + } + } + ] + }, + "code-security-configuration": { "value": { - "id": 2, - "name": "Expensive hardware runners", - "visibility": "selected", - "default": false, - "selected_organizations_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/organizations", - "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/runners", - "allows_public_repositories": true + "id": 1325, + "target_type": "organization", + "name": "octo-org recommended settings", + "description": "This is a code security configuration for octo-org", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "enabled", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "disabled", + "code_scanning_default_setup_options": { + "runner_type": "not_set", + "runner_label": null + }, + "code_scanning_options": { + "allow_advanced": false + }, + "code_scanning_delegated_alert_dismissal": "disabled", + "secret_scanning": "enabled", + "secret_scanning_push_protection": "disabled", + "secret_scanning_delegated_bypass": "disabled", + "secret_scanning_validity_checks": "disabled", + "secret_scanning_non_provider_patterns": "disabled", + "secret_scanning_generic_secrets": "disabled", + "secret_scanning_delegated_alert_dismissal": "disabled", + "private_vulnerability_reporting": "disabled", + "enforcement": "enforced", + "url": "https://api.github.com/orgs/octo-org/code-security/configurations/1325", + "html_url": "https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325", + "created_at": "2024-05-01T00:00:00Z", + "updated_at": "2024-05-01T00:00:00Z" } }, - "runner-paginated": { + "simple-repository": { "value": { - "total_count": 2, - "runners": [ - { - "id": 23, - "name": "linux_runner", - "os": "linux", - "status": "online", - "busy": true, - "labels": [ + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + } + }, + "dependabot-alerts-for-organization": { + "value": [ + { + "number": 2, + "state": "dismissed", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-rf4j-j272-fj86", + "cve_id": "CVE-2018-6188", + "summary": "Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive", + "description": "django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.", + "vulnerabilities": [ { - "id": 5, - "name": "self-hosted", - "type": "read-only" + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } }, { - "id": 7, - "name": "X64", - "type": "read-only" + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 1.11.8, < 1.11.10", + "first_patched_version": { + "identifier": "1.11.10" + } + } + ], + "severity": "high", + "cvss": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N", + "score": 8.7 + } + }, + "epss": [ { - "id": 11, - "name": "Linux", - "type": "read-only" + "percentage": 0.00045, + "percentile": "0.16001e0" } - ] + ], + "cwes": [ + { + "cwe_id": "CWE-200", + "name": "Exposure of Sensitive Information to an Unauthorized Actor" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-rf4j-j272-fj86" + }, + { + "type": "CVE", + "value": "CVE-2018-6188" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-6188" + }, + { + "url": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + }, + { + "url": "https://usn.ubuntu.com/3559-1/" + }, + { + "url": "https://www.djangoproject.com/weblog/2018/feb/01/security-releases/" + }, + { + "url": "http://www.securitytracker.com/id/1040422" + } + ], + "published_at": "2018-10-03T21:13:54Z", + "updated_at": "2022-04-26T18:35:37Z", + "withdrawn_at": null }, - { - "id": 24, - "name": "mac_runner", - "os": "macos", - "status": "offline", - "busy": false, - "labels": [ + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + "url": "https://api.github.com/repos/octo-org/octo-repo/dependabot/alerts/2", + "html_url": "https://github.com/octo-org/octo-repo/security/dependabot/2", + "created_at": "2022-06-15T07:43:03Z", + "updated_at": "2022-08-23T14:29:47Z", + "dismissed_at": "2022-08-23T14:29:47Z", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer.", + "fixed_at": null, + "repository": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo", + "full_name": "octo-org/octo-repo", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/octo-repo", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads", + "events_url": "https://api.github.com/repos/octo-org/octo-repo/events", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}" + } + }, + { + "number": 1, + "state": "open", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-8f4m-hccc-8qph", + "cve_id": "CVE-2021-20191", + "summary": "Insertion of Sensitive Information into Log File in ansible", + "description": "A flaw was found in ansible. Credentials, such as secrets, are being disclosed in console log by default and not protected by no_log feature when using those modules. An attacker can take advantage of this information to steal those credentials. The highest threat from this vulnerability is to data confidentiality.", + "vulnerabilities": [ { - "id": 5, - "name": "self-hosted", - "type": "read-only" + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.9.0, < 2.9.18", + "first_patched_version": { + "identifier": "2.9.18" + } }, { - "id": 7, - "name": "X64", - "type": "read-only" + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } }, { - "id": 20, - "name": "macOS", - "type": "read-only" + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.10.0, < 2.10.7", + "first_patched_version": { + "identifier": "2.10.7" + } + } + ], + "severity": "medium", + "cvss": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 8.5 + } + }, + "cwes": [ { - "id": 21, - "name": "no-gpu", - "type": "custom" + "cwe_id": "CWE-532", + "name": "Insertion of Sensitive Information into Log File" } - ] + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-8f4m-hccc-8qph" + }, + { + "type": "CVE", + "value": "CVE-2021-20191" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20191" + }, + { + "url": "https://access.redhat.com/security/cve/cve-2021-20191" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=1916813" + } + ], + "published_at": "2021-06-01T17:38:00Z", + "updated_at": "2021-08-12T23:06:00Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + "url": "https://api.github.com/repos/octo-org/hello-world/dependabot/alerts/1", + "html_url": "https://github.com/octo-org/hello-world/security/dependabot/1", + "created_at": "2022-06-14T15:21:52Z", + "updated_at": "2022-06-14T15:21:52Z", + "dismissed_at": null, + "dismissed_by": null, + "dismissed_reason": null, + "dismissed_comment": null, + "fixed_at": null, + "repository": { + "id": 664700648, + "node_id": "MDEwOlJlcG9zaXRvcnk2NjQ3MDA2NDg=", + "name": "hello-world", + "full_name": "octo-org/hello-world", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/hello-world", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/hello-world", + "archive_url": "https://api.github.com/repos/octo-org/hello-world/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/hello-world/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/hello-world/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/hello-world/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/hello-world/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/hello-world/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/hello-world/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/hello-world/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/hello-world/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/hello-world/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/hello-world/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/hello-world/downloads", + "events_url": "https://api.github.com/repos/octo-org/hello-world/events", + "forks_url": "https://api.github.com/repos/octo-org/hello-world/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/hello-world/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/hello-world/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/hello-world/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/hello-world/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/hello-world/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/hello-world/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/hello-world/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/hello-world/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/hello-world/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/hello-world/languages", + "merges_url": "https://api.github.com/repos/octo-org/hello-world/merges", + "milestones_url": "https://api.github.com/repos/octo-org/hello-world/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/hello-world/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/hello-world/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/hello-world/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/hello-world/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/hello-world/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/hello-world/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/hello-world/subscription", + "tags_url": "https://api.github.com/repos/octo-org/hello-world/tags", + "teams_url": "https://api.github.com/repos/octo-org/hello-world/teams", + "trees_url": "https://api.github.com/repos/octo-org/hello-world/git/trees{/sha}" } - ] - } + } + ] }, - "runner-application-items": { + "enterprise-teams-items": { "value": [ { - "os": "osx", - "architecture": "x64", - "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-osx-x64-2.164.0.tar.gz", - "filename": "actions-runner-osx-x64-2.164.0.tar.gz" - }, - { - "os": "linux", - "architecture": "x64", - "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-x64-2.164.0.tar.gz", - "filename": "actions-runner-linux-x64-2.164.0.tar.gz" - }, - { - "os": "linux", - "architecture": "arm", - "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm-2.164.0.tar.gz", - "filename": "actions-runner-linux-arm-2.164.0.tar.gz" - }, - { - "os": "win", - "architecture": "x64", - "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-win-x64-2.164.0.zip", - "filename": "actions-runner-win-x64-2.164.0.zip" - }, - { - "os": "linux", - "architecture": "arm64", - "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm64-2.164.0.tar.gz", - "filename": "actions-runner-linux-arm64-2.164.0.tar.gz" + "id": 1, + "name": "Justice League", + "description": "A great team.", + "slug": "justice-league", + "url": "https://api.github.com/enterprises/dc/teams/justice-league", + "group_id": "62ab9291-fae2-468e-974b-7e45096d5021", + "html_url": "https://github.com/enterprises/dc/teams/justice-league", + "members_url": "https://api.github.com/enterprises/dc/teams/justice-league/members{/member}", + "created_at": "2019-01-26T19:01:12Z", + "updated_at": "2019-01-26T19:14:43Z" } ] }, - "authentication-token": { + "enterprise-teams-item": { "value": { - "token": "LLBF3JGZDX3P5PMEXLND6TS6FCWO6", - "expires_at": "2020-01-22T12:13:35.123-08:00" + "id": 1, + "name": "Justice League", + "description": "A great team.", + "slug": "justice-league", + "url": "https://api.github.com/enterprises/dc/teams/justice-league", + "group_id": "62ab9291-fae2-468e-974b-7e45096d5021", + "html_url": "https://github.com/enterprises/dc/teams/justice-league", + "members_url": "https://api.github.com/enterprises/dc/teams/justice-league/members{/member}", + "created_at": "2019-01-26T19:01:12Z", + "updated_at": "2019-01-26T19:14:43Z" } }, - "authentication-token-2": { - "value": { - "token": "AABF3JGZDX3P5PMEXLND6TS6FCWO6", - "expires_at": "2020-01-29T12:13:35.123-08:00" - } + "simple-user-items": { + "value": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ] }, - "runner": { + "simple-user": { "value": { - "id": 23, - "name": "MBP", - "os": "macos", - "status": "online", - "busy": true, - "labels": [ - { - "id": 5, - "name": "self-hosted", - "type": "read-only" - }, - { - "id": 7, - "name": "X64", - "type": "read-only" - }, - { - "id": 20, - "name": "macOS", - "type": "read-only" - }, - { - "id": 21, - "name": "no-gpu", - "type": "custom" - } - ] + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + }, + "organization-simple": { + "value": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" } }, - "audit-log": { + "organization-simple-items": { "value": [ { - "@timestamp": 1606929874512, - "action": "team.add_member", - "actor": "octocat", - "created_at": 1606929874512, - "_document_id": "xJJFlFOhQ6b-5vaAFy9Rjw", - "org": "octo-corp", - "team": "octo-corp/example-team", - "user": "monalisa" - }, - { - "@timestamp": 1606507117008, - "action": "org.create", - "actor": "octocat", - "created_at": 1606507117008, - "_document_id": "Vqvg6kZ4MYqwWRKFDzlMoQ", - "org": "octocat-test-org" - }, - { - "@timestamp": 1605719148837, - "action": "repo.destroy", - "actor": "monalisa", - "created_at": 1605719148837, - "_document_id": "LwW2vpJZCDS-WUmo9Z-ifw", - "org": "mona-org", - "repo": "mona-org/mona-test-repo", - "visibility": "private" + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" } ] }, - "actions-billing-usage": { - "value": { - "total_minutes_used": 305, - "total_paid_minutes_used": 0, - "included_minutes": 3000, - "minutes_used_breakdown": { - "UBUNTU": 205, - "MACOS": 10, - "WINDOWS": 90 + "public-events-items": { + "value": [ + { + "id": "22249084947", + "type": "WatchEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "action": "started" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z" + }, + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": true, + "created_at": "2022-06-07T07:50:26Z" } - } - }, - "packages-billing-usage": { - "value": { - "total_gigabytes_bandwidth_used": 50, - "total_paid_gigabytes_bandwidth_used": 40, - "included_gigabytes_bandwidth": 10 - } - }, - "combined-billing-usage": { - "value": { - "days_left_in_billing_cycle": 20, - "estimated_paid_storage_for_month": 15, - "estimated_storage_for_month": 40 - } + ] }, "feed": { "value": { @@ -75953,19 +284338,246 @@ }, "gist": { "value": { - "url": "https://api.github.com/gists/aa5a315d61ae9438b18d", - "forks_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/forks", - "commits_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/commits", - "id": "aa5a315d61ae9438b18d", - "node_id": "MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk", - "git_pull_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", - "git_push_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", - "html_url": "https://gist.github.com/aa5a315d61ae9438b18d", - "created_at": "2010-04-14T02:15:15Z", - "updated_at": "2011-06-20T11:34:15Z", - "description": "Hello World Examples", + "url": "https://api.github.com/gists/2decf6c462d9b4418f2", + "forks_url": "https://api.github.com/gists/2decf6c462d9b4418f2/forks", + "commits_url": "https://api.github.com/gists/2decf6c462d9b4418f2/commits", + "id": "2decf6c462d9b4418f2", + "node_id": "G_kwDOBhHyLdZDliNDQxOGYy", + "git_pull_url": "https://gist.github.com/2decf6c462d9b4418f2.git", + "git_push_url": "https://gist.github.com/2decf6c462d9b4418f2.git", + "html_url": "https://gist.github.com/2decf6c462d9b4418f2", + "files": { + "README.md": { + "filename": "README.md", + "type": "text/markdown", + "language": "Markdown", + "raw_url": "https://gist.githubusercontent.com/monalisa/2decf6c462d9b4418f2/raw/ac3e6daf176fafe73609fd000cd188e4472010fb/README.md", + "size": 23, + "truncated": false, + "content": "Hello world from GitHub", + "encoding": "utf-8" + } + }, + "public": true, + "created_at": "2022-09-20T12:11:58Z", + "updated_at": "2022-09-21T10:28:06Z", + "description": "An updated gist description.", + "comments": 0, + "comments_enabled": true, + "user": null, + "comments_url": "https://api.github.com/gists/2decf6c462d9b4418f2/comments", + "owner": { + "login": "monalisa", + "id": 104456405, + "node_id": "U_kgDOBhHyLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/104456405?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "forks": [], + "history": [ + { + "user": { + "login": "monalisa", + "id": 104456405, + "node_id": "U_kgyLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/104456405?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "version": "468aac8caed5f0c3b859b8286968", + "committed_at": "2022-09-21T10:28:06Z", + "change_status": { + "total": 2, + "additions": 1, + "deletions": 1 + }, + "url": "https://api.github.com/gists/8481a81af6b7a2d418f2/468aac8caed5f0c3b859b8286968" + } + ], + "truncated": false + } + }, + "delete-gist-file": { + "value": { + "url": "https://api.github.com/gists/2decf6c462d9b4418f2", + "forks_url": "https://api.github.com/gists/2decf6c462d9b4418f2/forks", + "commits_url": "https://api.github.com/gists/2decf6c462d9b4418f2/commits", + "id": "2decf6c462d9b4418f2", + "node_id": "G_kwDOBhHyLdoAIDg0ODFZDliNDQxOGYy", + "git_pull_url": "https://gist.github.com/2decf6c462d9b4418f2.git", + "git_push_url": "https://gist.github.com/2decf6c462d9b4418f2.git", + "html_url": "https://gist.github.com/2decf6c462d9b4418f2", + "files": null, + "public": true, + "created_at": "2022-09-20T12:11:58Z", + "updated_at": "2022-09-21T10:28:06Z", + "description": "A gist description.", + "comments": 0, + "user": null, + "comments_url": "https://api.github.com/gists/2decf6c462d9b4418f2/comments", + "owner": { + "login": "monalisa", + "id": 104456405, + "node_id": "U_kgDOBhHyLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/104456405?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "forks": [], + "history": [ + { + "user": { + "login": "monalisa", + "id": 104456405, + "node_id": "U_kgyLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/104456405?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "version": "9cc352a89178a6d4", + "committed_at": "2022-09-21T10:28:06Z", + "change_status": { + "total": 1, + "additions": 0, + "deletions": 1 + }, + "url": "https://api.github.com/gists/8481a81af6b7a2d418f2/468aac8caed5f0c3b859b8286968" + } + ], + "truncated": false + } + }, + "rename-gist-file": { + "value": { + "url": "https://api.github.com/gists/2decf6c462d9b4418f2", + "forks_url": "https://api.github.com/gists/2decf6c462d9b4418f2/forks", + "commits_url": "https://api.github.com/gists/2decf6c462d9b4418f2/commits", + "id": "2decf6c462d9b4418f2", + "node_id": "G_kwDOBhHyLdoAIDg0ODFZDliNDQxOGYy", + "git_pull_url": "https://gist.github.com/2decf6c462d9b4418f2.git", + "git_push_url": "https://gist.github.com/2decf6c462d9b4418f2.git", + "html_url": "https://gist.github.com/2decf6c462d9b4418f2", + "files": { + "goodbye.py": { + "filename": "goodbye.py", + "type": "application/x-python", + "language": "Python", + "raw_url": "https://gist.githubusercontent.com/monalisa/8481a81af6b7a2decf6c462d9b4418f2/raw/ac3e6daf176fafe73609fd000cd188e4472010fb/goodbye.py", + "size": 4, + "truncated": false, + "content": "# Hello world" + } + }, + "public": true, + "created_at": "2022-09-20T12:11:58Z", + "updated_at": "2022-09-21T10:28:06Z", + "description": "A gist description.", "comments": 0, - "comments_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/comments/" + "user": null, + "comments_url": "https://api.github.com/gists/2decf6c462d9b4418f2/comments", + "owner": { + "login": "monalisa", + "id": 104456405, + "node_id": "U_kgDOBhHyLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/104456405?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "forks": [], + "history": [ + { + "user": { + "login": "monalisa", + "id": 104456405, + "node_id": "U_kgyLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/104456405?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "version": "468aac8caed5f0c3b859b8286968", + "committed_at": "2022-09-21T10:28:06Z", + "change_status": { + "total": 0, + "additions": 0, + "deletions": 0 + }, + "url": "https://api.github.com/gists/8481a81af6b7a2d418f2/468aac8caed5f0c3b859b8286968" + } + ], + "truncated": false } }, "gist-comment-items": { @@ -76414,26 +285026,1436 @@ "type": "User", "site_admin": false }, - "open_issues": 4, - "closed_issues": 8, - "created_at": "2011-04-10T20:09:31Z", - "updated_at": "2014-03-03T18:58:10Z", - "closed_at": "2013-02-12T13:22:01Z", - "due_on": "2012-10-09T23:39:01Z" + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "locked": true, + "active_lock_reason": "too heated", + "comments": 0, + "pull_request": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "closed_at": null, + "created_at": "2011-04-22T13:33:48Z", + "updated_at": "2011-04-22T13:33:48Z", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + }, + "author_association": "COLLABORATOR" + } + ] + }, + "license-simple-items": { + "value": [ + { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "lgpl-3.0", + "name": "GNU Lesser General Public License v3.0", + "spdx_id": "LGPL-3.0", + "url": "https://api.github.com/licenses/lgpl-3.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "mpl-2.0", + "name": "Mozilla Public License 2.0", + "spdx_id": "MPL-2.0", + "url": "https://api.github.com/licenses/mpl-2.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "agpl-3.0", + "name": "GNU Affero General Public License v3.0", + "spdx_id": "AGPL-3.0", + "url": "https://api.github.com/licenses/agpl-3.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "unlicense", + "name": "The Unlicense", + "spdx_id": "Unlicense", + "url": "https://api.github.com/licenses/unlicense", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + } + ] + }, + "license": { + "value": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "http://choosealicense.com/licenses/mit/", + "description": "A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty.", + "implementation": "Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders.", + "permissions": [ + "commercial-use", + "modifications", + "distribution", + "sublicense", + "private-use" + ], + "conditions": [ + "include-copyright" + ], + "limitations": [ + "no-liability" + ], + "body": "\n\nThe MIT License (MIT)\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "featured": true + } + }, + "marketplace-purchase": { + "value": { + "url": "https://api.github.com/orgs/github", + "type": "Organization", + "id": 4, + "login": "github", + "organization_billing_email": "billing@github.com", + "email": "billing@github.com", + "marketplace_pending_change": { + "effective_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "id": 77, + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1111", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1111/accounts", + "id": 1111, + "number": 2, + "name": "Startup", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 699, + "yearly_price_in_cents": 7870, + "price_model": "FLAT_RATE", + "has_free_trial": true, + "state": "published", + "unit_name": null, + "bullets": [ + "Up to 10 private repositories", + "3 concurrent builds" + ] + } + }, + "marketplace_purchase": { + "billing_cycle": "monthly", + "next_billing_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "on_free_trial": true, + "free_trial_ends_on": "2017-11-11T00:00:00Z", + "updated_at": "2017-11-02T01:12:12Z", + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1313", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", + "id": 1313, + "number": 3, + "name": "Pro", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 1099, + "yearly_price_in_cents": 11870, + "price_model": "FLAT_RATE", + "has_free_trial": true, + "unit_name": null, + "state": "published", + "bullets": [ + "Up to 25 private repositories", + "11 concurrent builds" + ] + } + } + } + }, + "marketplace-listing-plan-items": { + "value": [ + { + "url": "https://api.github.com/marketplace_listing/plans/1313", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", + "id": 1313, + "number": 3, + "name": "Pro", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 1099, + "yearly_price_in_cents": 11870, + "price_model": "FLAT_RATE", + "has_free_trial": true, + "unit_name": null, + "state": "published", + "bullets": [ + "Up to 25 private repositories", + "11 concurrent builds" + ] + } + ] + }, + "marketplace-purchase-items": { + "value": [ + { + "url": "https://api.github.com/orgs/github", + "type": "Organization", + "id": 4, + "login": "github", + "organization_billing_email": "billing@github.com", + "marketplace_pending_change": { + "effective_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "id": 77, + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1111", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1111/accounts", + "id": 1111, + "number": 2, + "name": "Startup", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 699, + "yearly_price_in_cents": 7870, + "price_model": "FLAT_RATE", + "has_free_trial": true, + "state": "published", + "unit_name": null, + "bullets": [ + "Up to 10 private repositories", + "3 concurrent builds" + ] + } + }, + "marketplace_purchase": { + "billing_cycle": "monthly", + "next_billing_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "on_free_trial": true, + "free_trial_ends_on": "2017-11-11T00:00:00Z", + "updated_at": "2017-11-02T01:12:12Z", + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1313", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", + "id": 1313, + "number": 3, + "name": "Pro", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 1099, + "yearly_price_in_cents": 11870, + "price_model": "FLAT_RATE", + "has_free_trial": true, + "unit_name": null, + "state": "published", + "bullets": [ + "Up to 25 private repositories", + "11 concurrent builds" + ] + } + } + } + ] + }, + "api-overview": { + "value": { + "verifiable_password_authentication": true, + "ssh_key_fingerprints": { + "SHA256_RSA": 1234567890, + "SHA256_DSA": 1234567890, + "SHA256_ECDSA": 1234567890, + "SHA256_ED25519": 1234567890 + }, + "ssh_keys": [ + "ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "ecdsa-sha2-nistp256 ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "ssh-rsa ABCDEFGHIJKLMNOPQRSTUVWXYZ" + ], + "hooks": [ + "192.0.2.1" + ], + "github_enterprise_importer": [ + "192.0.2.1" + ], + "web": [ + "192.0.2.1" + ], + "api": [ + "192.0.2.1" + ], + "git": [ + "192.0.2.1" + ], + "packages": [ + "192.0.2.1" + ], + "pages": [ + "192.0.2.1" + ], + "importer": [ + "192.0.2.1" + ], + "actions": [ + "192.0.2.1" + ], + "actions_macos": [ + "192.0.2.1" + ], + "dependabot": [ + "192.0.2.1" + ], + "copilot": [ + "192.0.2.1" + ], + "domains": { + "website": [ + "*.example.com" + ], + "codespaces": [ + "*.example.com" + ], + "copilot": [ + "*.example.com" + ], + "packages": [ + "*.example.com" + ] + } + } + }, + "public-repo-events-items": { + "value": [ + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z" + }, + { + "id": "22237752260", + "type": "WatchEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "action": "started" + }, + "public": true, + "created_at": "2022-06-08T23:29:25Z" + } + ] + }, + "thread-items": { + "value": [ + { + "id": "1", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "subject": { + "title": "Greetings", + "url": "https://api.github.com/repos/octokit/octokit.rb/issues/123", + "latest_comment_url": "https://api.github.com/repos/octokit/octokit.rb/issues/comments/123", + "type": "Issue" + }, + "reason": "subscribed", + "unread": true, + "updated_at": "2014-11-07T22:01:45Z", + "last_read_at": "2014-11-07T22:01:45Z", + "url": "https://api.github.com/notifications/threads/1", + "subscription_url": "https://api.github.com/notifications/threads/1/subscription" + } + ] + }, + "notifications-mark-read": { + "value": { + "message": "Unread notifications couldn't be marked in a single request. Notifications are being marked as read in the background." + } + }, + "thread": { + "value": { + "id": "1", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "subject": { + "title": "Greetings", + "url": "https://api.github.com/repos/octokit/octokit.rb/issues/123", + "latest_comment_url": "https://api.github.com/repos/octokit/octokit.rb/issues/comments/123", + "type": "Issue" + }, + "reason": "subscribed", + "unread": true, + "updated_at": "2014-11-07T22:01:45Z", + "last_read_at": "2014-11-07T22:01:45Z", + "url": "https://api.github.com/notifications/threads/1", + "subscription_url": "https://api.github.com/notifications/threads/1/subscription" + } + }, + "thread-subscription": { + "value": { + "subscribed": true, + "ignored": false, + "reason": null, + "created_at": "2012-10-06T21:34:12Z", + "url": "https://api.github.com/notifications/threads/1/subscription", + "thread_url": "https://api.github.com/notifications/threads/1" + } + }, + "octocat": { + "value": " MMM. .MMM\n MMMMMMMMMMMMMMMMMMM\n MMMMMMMMMMMMMMMMMMM ___________________________________\n MMMMMMMMMMMMMMMMMMMMM | |\n MMMMMMMMMMMMMMMMMMMMMMM | Avoid administrative distraction. |\n MMMMMMMMMMMMMMMMMMMMMMMM |_ _______________________________|\n MMMM::- -:::::::- -::MMMM |/\n MM~:~ 00~:::::~ 00~:~MM\n .. MMMMM::.00:::+:::.00::MMMMM ..\n .MM::::: ._. :::::MM.\n MMMM;:::::;MMMM\n -MM MMMMMMM\n ^ M+ MMMMMMMMM\n MMMMMMM MM MM MM\n MM MM MM MM\n MM MM MM MM\n .~~MM~MM~MM~MM~~.\n ~~~~MM:~MM~~~MM~:MM~~~~\n ~~~~~~==~==~~~==~==~~~~~~\n ~~~~~~==~==~==~==~~~~~~\n :~==~==~==~==~~\n" + }, + "dependabot-repository-access-details": { + "value": { + "default_level": "public", + "accessible_repositories": [ + { + "id": 123456, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjM0NTY=", + "name": "example-repo", + "full_name": "octocat/example-repo", + "owner": { + "name": "octocat", + "email": "octo@github.com", + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://avatars.githubusercontent.com/u/1?v=4", + "gravatar_id": 1, + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat/example-repo", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "starred_at": "\"2020-07-09T00:17:55Z\"", + "user_view_type": "default" + }, + "private": false, + "html_url": "https://github.com/octocat/example-repo", + "description": "This is an example repository.", + "fork": false, + "url": "https://api.github.com/repos/octocat/example-repo", + "archive_url": "https://api.github.com/repos/octocat/example-repo/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/example-repo/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/example-repo/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/example-repo/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/example-repo/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/example-repo/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/example-repo/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/example-repo/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/example-repo/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/example-repo/contributors", + "deployments_url": "https://api.github.com/repos/octocat/example-repo/deployments", + "downloads_url": "https://api.github.com/repos/octocat/example-repo/downloads", + "events_url": "https://api.github.com/repos/octocat/example-repo/events", + "forks_url": "https://api.github.com/repos/octocat/example-repo/forks", + "git_commits_url": "https://api.github.com/repos/octocat/example-repo/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/example-repo/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/example-repo/git/tags{/sha}", + "issue_comment_url": "https://api.github.com/repos/octocat/example-repo/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/example-repo/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/example-repo/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/example-repo/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/example-repo/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/example-repo/languages", + "merges_url": "https://api.github.com/repos/octocat/example-repo/merges", + "milestones_url": "https://api.github.com/repos/octocat/example-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/example-repo/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/example-repo/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/example-repo/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octocat/example-repo/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/example-repo/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/example-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/example-repo/subscription", + "tags_url": "https://api.github.com/repos/octocat/example-repo/tags", + "teams_url": "https://api.github.com/repos/octocat/example-repo/teams", + "trees_url": "https://api.github.com/repos/octocat/example-repo/git/trees{/sha}", + "hooks_url": "https://api.github.com/repos/octocat/example-repo/hooks" + } + ] + } + }, + "get_all_budgets": { + "value": { + "budgets": [ + { + "id": "2066deda-923f-43f9-88d2-62395a28c0cdd", + "budget_type": "ProductPricing", + "budget_product_skus": [ + "actions" + ], + "budget_scope": "enterprise", + "budget_amount": 1000.0, + "prevent_further_usage": true, + "budget_alerting": { + "will_alert": true, + "alert_recipients": [ + "enterprise-admin", + "billing-manager" + ] + } + }, + { + "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "budget_type": "SkuPricing", + "budget_product_skus": [ + "actions_linux" + ], + "budget_scope": "organization", + "budget_amount": 500.0, + "prevent_further_usage": false, + "budget_alerting": { + "will_alert": true, + "alert_recipients": [ + "org-owner" + ] + } + }, + { + "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", + "budget_type": "ProductPricing", + "budget_product_skus": [ + "packages" + ], + "budget_scope": "cost_center", + "budget_amount": 250.0, + "prevent_further_usage": true, + "budget_alerting": { + "will_alert": false, + "alert_recipients": [] + } + } + ] + } + }, + "get-budget": { + "value": { + "id": "2066deda-923f-43f9-88d2-62395a28c0cdd", + "budget_type": "ProductPricing", + "budget_product_sku": "actions_linux", + "budget_scope": "repository", + "budget_entity_name": "example-repo-name", + "budget_amount": 0.0, + "prevent_further_usage": true, + "budget_alerting": { + "will_alert": true, + "alert_recipients": [ + "mona", + "lisa" + ] + } + } + }, + "update-budget": { + "value": { + "message": "Budget successfully updated.", + "budget": { + "id": "2066deda-923f-43f9-88d2-62395a28c0cdd", + "budget_type": "ProductPricing", + "budget_product_sku": "actions_linux", + "budget_scope": "repository", + "budget_entity_name": "org-name/example-repo-name", + "budget_amount": 0.0, + "prevent_further_usage": true, + "budget_alerting": { + "will_alert": true, + "alert_recipients": [ + "mona", + "lisa" + ] + } + } + } + }, + "delete-budget": { + "value": { + "message": "Budget successfully deleted.", + "budget_id": "2c1feb79-3947-4dc8-a16e-80cbd732cc0b" + } + }, + "billing-premium-request-usage-report-org": { + "value": { + "timePeriod": { + "year": 2025 + }, + "organization": "GitHub", + "usageItems": [ + { + "product": "Copilot", + "sku": "Copilot Premium Request", + "model": "GPT-5", + "unitType": "requests", + "pricePerUnit": 0.04, + "grossQuantity": 100, + "grossAmount": 4.0, + "discountQuantity": 0, + "discountAmount": 0.0, + "netQuantity": 100, + "netAmount": 4.0 + } + ] + } + }, + "billing-usage-report": { + "value": { + "usageItems": [ + { + "date": "2023-08-01", + "product": "Actions", + "sku": "Actions Linux", + "quantity": 100, + "unitType": "minutes", + "pricePerUnit": 0.008, + "grossAmount": 0.8, + "discountAmount": 0, + "netAmount": 0.8, + "organizationName": "GitHub", + "repositoryName": "github/example" + } + ] + } + }, + "billing-usage-summary-report-org": { + "value": { + "timePeriod": { + "year": 2025 + }, + "organization": "GitHub", + "usageItems": [ + { + "product": "Actions", + "sku": "actions_linux", + "unitType": "minutes", + "pricePerUnit": 0.008, + "grossQuantity": 1000, + "grossAmount": 8.0, + "discountQuantity": 0, + "discountAmount": 0.0, + "netQuantity": 1000, + "netAmount": 8.0 + } + ] + } + }, + "organization-full": { + "value": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization", + "name": "github", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "twitter_username": "github", + "is_verified": true, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "html_url": "https://github.com/octocat", + "created_at": "2008-01-14T04:33:35Z", + "type": "Organization", + "total_private_repos": 100, + "owned_private_repos": 100, + "private_gists": 81, + "disk_usage": 10000, + "collaborators": 8, + "billing_email": "mona@github.com", + "plan": { + "name": "Medium", + "space": 400, + "private_repos": 20, + "filled_seats": 4, + "seats": 5 + }, + "default_repository_permission": "read", + "default_repository_branch": "main", + "members_can_create_repositories": true, + "two_factor_requirement_enabled": true, + "members_allowed_repository_creation_type": "all", + "members_can_create_public_repositories": false, + "members_can_create_private_repositories": false, + "members_can_create_internal_repositories": false, + "members_can_create_pages": true, + "members_can_create_public_pages": true, + "members_can_create_private_pages": true, + "members_can_delete_repositories": true, + "members_can_change_repo_visibility": true, + "members_can_invite_outside_collaborators": true, + "members_can_delete_issues": false, + "display_commenter_full_name_setting_enabled": false, + "readers_can_create_discussions": true, + "members_can_create_teams": true, + "members_can_view_dependency_insights": true, + "members_can_fork_private_repositories": false, + "web_commit_signoff_required": false, + "updated_at": "2014-03-03T18:58:10Z", + "deploy_keys_enabled_for_repositories": false, + "dependency_graph_enabled_for_new_repositories": false, + "dependabot_alerts_enabled_for_new_repositories": false, + "dependabot_security_updates_enabled_for_new_repositories": false, + "advanced_security_enabled_for_new_repositories": false, + "secret_scanning_enabled_for_new_repositories": false, + "secret_scanning_push_protection_enabled_for_new_repositories": false, + "secret_scanning_push_protection_custom_link": "https://github.com/octo-org/octo-repo/blob/main/im-blocked.md", + "secret_scanning_push_protection_custom_link_enabled": false + } + }, + "actions-cache-usage-org-enterprise": { + "value": { + "total_active_caches_size_in_bytes": 3344284, + "total_active_caches_count": 5 + } + }, + "org-actions-cache-usage-by-repo": { + "value": { + "total_count": 2, + "repository_cache_usages": [ + { + "full_name": "octo-org/Hello-World", + "active_caches_size_in_bytes": 2322142, + "active_caches_count": 3 + }, + { + "full_name": "octo-org/server", + "active_caches_size_in_bytes": 1022142, + "active_caches_count": 2 + } + ] + } + }, + "actions-hosted-runner-paginated": { + "value": { + "total_count": 2, + "runners": [ + { + "id": 5, + "name": "My hosted ubuntu runner", + "runner_group_id": 2, + "platform": "linux-x64", + "image": { + "id": "ubuntu-20.04", + "size": 86 + }, + "machine_size_details": { + "id": "4-core", + "cpu_cores": 4, + "memory_gb": 16, + "storage_gb": 150 + }, + "status": "Ready", + "maximum_runners": 10, + "public_ip_enabled": true, + "public_ips": [ + { + "enabled": true, + "prefix": "20.80.208.150", + "length": 31 + } + ], + "last_active_on": "2022-10-09T23:39:01Z" + }, + { + "id": 7, + "name": "My hosted Windows runner", + "runner_group_id": 2, + "platform": "win-x64", + "image": { + "id": "windows-latest", + "size": 256 + }, + "machine_size_details": { + "id": "8-core", + "cpu_cores": 8, + "memory_gb": 32, + "storage_gb": 300 + }, + "status": "Ready", + "maximum_runners": 20, + "public_ip_enabled": false, + "public_ips": [], + "last_active_on": "2023-04-26T15:23:37Z" + } + ] + } + }, + "actions-hosted-runner": { + "value": { + "id": 5, + "name": "My hosted ubuntu runner", + "runner_group_id": 2, + "platform": "linux-x64", + "image": { + "id": "ubuntu-20.04", + "size": 86 + }, + "machine_size_details": { + "id": "4-core", + "cpu_cores": 4, + "memory_gb": 16, + "storage_gb": 150 + }, + "status": "Ready", + "maximum_runners": 10, + "public_ip_enabled": true, + "public_ips": [ + { + "enabled": true, + "prefix": "20.80.208.150", + "length": 31 + } + ], + "last_active_on": "2022-10-09T23:39:01Z" + } + }, + "actions-hosted-runner-custom-image-versions": { + "value": { + "total_count": 2, + "image_versions": [ + { + "version": "1.1.0", + "size_gb": 75, + "state": "Ready", + "created_on": "2024-11-09T23:39:01Z" + }, + { + "version": "1.0.0", + "size_gb": 75, + "state": "Ready", + "created_on": "2024-11-08T20:39:01Z" + } + ] + } + }, + "actions-hosted-runner-custom-image": { + "value": { + "id": 1, + "platform": "linux-x64", + "name": "CustomImage", + "source": "custom", + "versions_count": 4, + "total_versions_size": 200, + "latest_version": "1.3.0", + "state": "Ready" + } + }, + "actions-hosted-runner-custom-image-version": { + "value": { + "version": "1.0.0", + "size_gb": 75, + "state": "Ready", + "created_on": "2024-11-08T20:39:01Z" + } + }, + "actions-hosted-runner-curated-image": { + "value": { + "id": "ubuntu-20.04", + "platform": "linux-x64", + "size_gb": 86, + "display_name": "20.04", + "source": "github" + } + }, + "actions-hosted-runner-limits-default": { + "value": { + "public_ips": { + "current_usage": 17, + "maximum": 50 + } + } + }, + "actions-hosted-runner-machine-spec": { + "value": { + "id": "4-core", + "cpu_cores": 4, + "memory_gb": 16, + "storage_gb": 150 + } + }, + "oidc-custom-sub": { + "value": { + "include_claim_keys": [ + "repo", + "context" + ] + } + }, + "actions-organization-permissions": { + "value": { + "enabled_repositories": "all", + "allowed_actions": "selected", + "selected_actions_url": "https://api.github.com/organizations/42/actions/permissions/selected-actions", + "sha_pinning_required": true + } + }, + "actions-fork-pr-contributor-approval": { + "value": { + "approval_policy": "first_time_contributors" + } + }, + "actions-fork-pr-workflows-private-repos": { + "value": { + "run_workflows_from_fork_pull_requests": true, + "send_write_tokens_to_workflows": false, + "send_secrets_and_variables": false, + "require_approval_for_fork_pr_workflows": true + } + }, + "repository-paginated": { + "value": { + "total_count": 1, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ] + } + }, + "selected-actions": { + "value": { + "github_owned_allowed": true, + "verified_allowed": false, + "patterns_allowed": [ + "monalisa/octocat@*", + "docker/*" + ] + } + }, + "actions-default-workflow-permissions": { + "summary": "Give read-only permission, and allow approving PRs.", + "value": { + "default_workflow_permissions": "read", + "can_approve_pull_request_reviews": true + } + }, + "runner-groups-org": { + "value": { + "total_count": 3, + "runner_groups": [ + { + "id": 1, + "name": "Default", + "visibility": "all", + "default": true, + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/1/runners", + "inherited": false, + "allows_public_repositories": true, + "restricted_to_workflows": false, + "selected_workflows": [], + "workflow_restrictions_read_only": false }, - "locked": true, - "active_lock_reason": "too heated", - "comments": 0, - "pull_request": { - "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", - "html_url": "https://github.com/octocat/Hello-World/pull/1347", - "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", - "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories", + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", + "inherited": true, + "allows_public_repositories": true, + "restricted_to_workflows": true, + "selected_workflows": [ + "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main" + ], + "workflow_restrictions_read_only": true }, - "closed_at": null, - "created_at": "2011-04-22T13:33:48Z", - "updated_at": "2011-04-22T13:33:48Z", - "repository": { + { + "id": 3, + "name": "expensive-hardware", + "visibility": "private", + "default": false, + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/3/runners", + "inherited": false, + "allows_public_repositories": true, + "restricted_to_workflows": false, + "selected_workflows": [ + "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main" + ], + "workflow_restrictions_read_only": false + } + ] + } + }, + "runner-group": { + "value": { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner-groups/2/repositories", + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", + "hosted_runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/hosted-runners", + "network_configuration_id": "EC486D5D793175D7E3B29C27318D5C1AAE49A7833FC85F2E82C3D2C54AC7D3BA", + "inherited": false, + "allows_public_repositories": true, + "restricted_to_workflows": true, + "selected_workflows": [ + "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main" + ], + "workflow_restrictions_read_only": false + } + }, + "runner-group-item": { + "value": { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories", + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", + "hosted_runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/hosted-runners", + "network_configuration_id": "EC486D5D793175D7E3B29C27318D5C1AAE49A7833FC85F2E82C3D2C54AC7D3BA", + "inherited": false, + "allows_public_repositories": true, + "restricted_to_workflows": true, + "selected_workflows": [ + "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main" + ], + "workflow_restrictions_read_only": false + } + }, + "minimal-repository-paginated": { + "value": { + "total_count": 1, + "repositories": [ + { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "name": "Hello-World", @@ -76535,13 +286557,132 @@ "push": false, "pull": true }, - "allow_rebase_merge": true, - "template_repository": null, + "template_repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "organization": null, + "language": null, + "forks": 9, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "watchers": 80, + "size": 108, + "default_branch": "master", + "open_issues": 0, + "open_issues_count": 0, + "is_template": true, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0 + }, "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, "delete_branch_on_merge": true, - "allow_merge_commit": true, "subscribers_count": 42, "network_count": 0, "license": { @@ -76549,284 +286690,284 @@ "name": "MIT License", "url": "https://api.github.com/licenses/mit", "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://github.com/licenses/mit" + "node_id": "MDc6TGljZW5zZW1pdA==" }, "forks": 1, "open_issues": 1, "watchers": 1 + } + ] + } + }, + "runner-paginated": { + "value": { + "total_count": 2, + "runners": [ + { + "id": 23, + "name": "linux_runner", + "os": "linux", + "status": "online", + "busy": true, + "ephemeral": false, + "labels": [ + { + "id": 5, + "name": "self-hosted", + "type": "read-only" + }, + { + "id": 7, + "name": "X64", + "type": "read-only" + }, + { + "id": 11, + "name": "Linux", + "type": "read-only" + } + ] }, - "author_association": "COLLABORATOR" - } - ] + { + "id": 24, + "name": "mac_runner", + "os": "macos", + "status": "offline", + "busy": false, + "ephemeral": false, + "labels": [ + { + "id": 5, + "name": "self-hosted", + "type": "read-only" + }, + { + "id": 7, + "name": "X64", + "type": "read-only" + }, + { + "id": 20, + "name": "macOS", + "type": "read-only" + }, + { + "id": 21, + "name": "no-gpu", + "type": "custom" + } + ] + } + ] + } }, - "license-simple-items": { + "runner-application-items": { "value": [ { - "key": "mit", - "name": "MIT License", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit", - "node_id": "MDc6TGljZW5zZW1pdA==" - }, - { - "key": "lgpl-3.0", - "name": "GNU Lesser General Public License v3.0", - "spdx_id": "LGPL-3.0", - "url": "https://api.github.com/licenses/lgpl-3.0", - "node_id": "MDc6TGljZW5zZW1pdA==" - }, - { - "key": "mpl-2.0", - "name": "Mozilla Public License 2.0", - "spdx_id": "MPL-2.0", - "url": "https://api.github.com/licenses/mpl-2.0", - "node_id": "MDc6TGljZW5zZW1pdA==" + "os": "osx", + "architecture": "x64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-osx-x64-2.164.0.tar.gz", + "filename": "actions-runner-osx-x64-2.164.0.tar.gz" }, { - "key": "agpl-3.0", - "name": "GNU Affero General Public License v3.0", - "spdx_id": "AGPL-3.0", - "url": "https://api.github.com/licenses/agpl-3.0", - "node_id": "MDc6TGljZW5zZW1pdA==" + "os": "linux", + "architecture": "x64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-x64-2.164.0.tar.gz", + "filename": "actions-runner-linux-x64-2.164.0.tar.gz" }, { - "key": "unlicense", - "name": "The Unlicense", - "spdx_id": "Unlicense", - "url": "https://api.github.com/licenses/unlicense", - "node_id": "MDc6TGljZW5zZW1pdA==" + "os": "linux", + "architecture": "arm", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm-2.164.0.tar.gz", + "filename": "actions-runner-linux-arm-2.164.0.tar.gz" }, { - "key": "apache-2.0", - "name": "Apache License 2.0", - "spdx_id": "Apache-2.0", - "url": "https://api.github.com/licenses/apache-2.0", - "node_id": "MDc6TGljZW5zZW1pdA==" + "os": "win", + "architecture": "x64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-win-x64-2.164.0.zip", + "filename": "actions-runner-win-x64-2.164.0.zip" }, { - "key": "gpl-3.0", - "name": "GNU General Public License v3.0", - "spdx_id": "GPL-3.0", - "url": "https://api.github.com/licenses/gpl-3.0", - "node_id": "MDc6TGljZW5zZW1pdA==" + "os": "linux", + "architecture": "arm64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm64-2.164.0.tar.gz", + "filename": "actions-runner-linux-arm64-2.164.0.tar.gz" } ] }, - "license": { + "runner-jitconfig": { "value": { - "key": "mit", - "name": "MIT License", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "http://choosealicense.com/licenses/mit/", - "description": "A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty.", - "implementation": "Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders.", - "permissions": [ - "commercial-use", - "modifications", - "distribution", - "sublicense", - "private-use" - ], - "conditions": [ - "include-copyright" - ], - "limitations": [ - "no-liability" - ], - "body": "\n\nThe MIT License (MIT)\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", - "featured": true + "runner": { + "id": 23, + "name": "New runner", + "os": "unknown", + "status": "offline", + "busy": false, + "labels": [ + { + "id": 5, + "name": "self-hosted", + "type": "read-only" + }, + { + "id": 7, + "name": "X64", + "type": "read-only" + }, + { + "id": 20, + "name": "macOS", + "type": "read-only" + }, + { + "id": 21, + "name": "no-gpu", + "type": "custom" + } + ] + }, + "encoded_jit_config": "abc123" } }, - "marketplace-purchase": { + "authentication-token": { "value": { - "url": "https://api.github.com/orgs/github", - "type": "Organization", - "id": 4, - "login": "github", - "organization_billing_email": "billing@github.com", - "email": "billing@github.com", - "marketplace_pending_change": { - "effective_date": "2017-11-11T00:00:00Z", - "unit_count": null, - "id": 77, - "plan": { - "url": "https://api.github.com/marketplace_listing/plans/1111", - "accounts_url": "https://api.github.com/marketplace_listing/plans/1111/accounts", - "id": 1111, - "number": 2, - "name": "Startup", - "description": "A professional-grade CI solution", - "monthly_price_in_cents": 699, - "yearly_price_in_cents": 7870, - "price_model": "flat-rate", - "has_free_trial": true, - "state": "published", - "unit_name": null, - "bullets": [ - "Up to 10 private repositories", - "3 concurrent builds" - ] - } - }, - "marketplace_purchase": { - "billing_cycle": "monthly", - "next_billing_date": "2017-11-11T00:00:00Z", - "unit_count": null, - "on_free_trial": true, - "free_trial_ends_on": "2017-11-11T00:00:00Z", - "updated_at": "2017-11-02T01:12:12Z", - "plan": { - "url": "https://api.github.com/marketplace_listing/plans/1313", - "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", - "id": 1313, - "number": 3, - "name": "Pro", - "description": "A professional-grade CI solution", - "monthly_price_in_cents": 1099, - "yearly_price_in_cents": 11870, - "price_model": "flat-rate", - "has_free_trial": true, - "unit_name": null, - "state": "published", - "bullets": [ - "Up to 25 private repositories", - "11 concurrent builds" - ] + "token": "LLBF3JGZDX3P5PMEXLND6TS6FCWO6", + "expires_at": "2020-01-22T12:13:35.123-08:00" + } + }, + "authentication-token-2": { + "value": { + "token": "AABF3JGZDX3P5PMEXLND6TS6FCWO6", + "expires_at": "2020-01-29T12:13:35.123-08:00" + } + }, + "runner": { + "value": { + "id": 23, + "name": "MBP", + "os": "macos", + "status": "online", + "busy": true, + "ephemeral": false, + "labels": [ + { + "id": 5, + "name": "self-hosted", + "type": "read-only" + }, + { + "id": 7, + "name": "X64", + "type": "read-only" + }, + { + "id": 20, + "name": "macOS", + "type": "read-only" + }, + { + "id": 21, + "name": "no-gpu", + "type": "custom" } - } + ] } }, - "marketplace-listing-plan-items": { - "value": [ - { - "url": "https://api.github.com/marketplace_listing/plans/1313", - "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", - "id": 1313, - "number": 3, - "name": "Pro", - "description": "A professional-grade CI solution", - "monthly_price_in_cents": 1099, - "yearly_price_in_cents": 11870, - "price_model": "flat-rate", - "has_free_trial": true, - "unit_name": null, - "state": "published", - "bullets": [ - "Up to 25 private repositories", - "11 concurrent builds" - ] - } - ] + "runner-labels": { + "value": { + "total_count": 4, + "labels": [ + { + "id": 5, + "name": "self-hosted", + "type": "read-only" + }, + { + "id": 7, + "name": "X64", + "type": "read-only" + }, + { + "id": 20, + "name": "macOS", + "type": "read-only" + }, + { + "id": 21, + "name": "no-gpu", + "type": "custom" + } + ] + } }, - "marketplace-purchase-items": { - "value": [ - { - "url": "https://api.github.com/orgs/github", - "type": "Organization", - "id": 4, - "login": "github", - "organization_billing_email": "billing@github.com", - "marketplace_pending_change": { - "effective_date": "2017-11-11T00:00:00Z", - "unit_count": null, - "id": 77, - "plan": { - "url": "https://api.github.com/marketplace_listing/plans/1111", - "accounts_url": "https://api.github.com/marketplace_listing/plans/1111/accounts", - "id": 1111, - "number": 2, - "name": "Startup", - "description": "A professional-grade CI solution", - "monthly_price_in_cents": 699, - "yearly_price_in_cents": 7870, - "price_model": "flat-rate", - "has_free_trial": true, - "state": "published", - "unit_name": null, - "bullets": [ - "Up to 10 private repositories", - "3 concurrent builds" - ] - } + "runner-labels-readonly": { + "value": { + "total_count": 3, + "labels": [ + { + "id": 5, + "name": "self-hosted", + "type": "read-only" }, - "marketplace_purchase": { - "billing_cycle": "monthly", - "next_billing_date": "2017-11-11T00:00:00Z", - "unit_count": null, - "on_free_trial": true, - "free_trial_ends_on": "2017-11-11T00:00:00Z", - "updated_at": "2017-11-02T01:12:12Z", - "plan": { - "url": "https://api.github.com/marketplace_listing/plans/1313", - "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", - "id": 1313, - "number": 3, - "name": "Pro", - "description": "A professional-grade CI solution", - "monthly_price_in_cents": 1099, - "yearly_price_in_cents": 11870, - "price_model": "flat-rate", - "has_free_trial": true, - "unit_name": null, - "state": "published", - "bullets": [ - "Up to 25 private repositories", - "11 concurrent builds" - ] - } + { + "id": 7, + "name": "X64", + "type": "read-only" + }, + { + "id": 20, + "name": "macOS", + "type": "read-only" } - } - ] + ] + } }, - "api-overview": { + "organization-actions-secret-paginated": { "value": { - "verifiable_password_authentication": true, - "ssh_key_fingerprints": { - "SHA256_RSA": "nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8", - "SHA256_DSA": "br9IjFspm1vxR3iA35FWE+4VTyz1hYVLIE2t1/CeyWQ" - }, - "hooks": [ - "192.30.252.0/22" - ], - "web": [ - "192.30.252.0/22", - "185.199.108.0/22" - ], - "api": [ - "192.30.252.0/22", - "185.199.108.0/22" - ], - "git": [ - "192.30.252.0/22" - ], - "packages": [ - "192.30.252.0/22" - ], - "pages": [ - "192.30.252.153/32", - "192.30.252.154/32" - ], - "importer": [ - "54.158.161.132", - "54.226.70.38" - ], - "actions": [ - "13.64.0.0/16", - "13.65.0.0/16" - ], - "dependabot": [ - "54.158.161.132" + "total_count": 3, + "secrets": [ + { + "name": "GIST_ID", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "private" + }, + { + "name": "DEPLOY_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "all" + }, + { + "name": "GH_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories" + } ] } }, - "thread-items": { - "value": [ - { - "id": "1", - "repository": { + "actions-public-key": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + }, + "organization-actions-secret": { + "value": { + "name": "GH_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories" + } + }, + "public-repository-paginated": { + "value": { + "total_count": 1, + "repositories": [ + { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "name": "Hello-World", @@ -76894,257 +287035,517 @@ "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" - }, - "subject": { - "title": "Greetings", - "url": "https://api.github.com/repos/octokit/octokit.rb/issues/123", - "latest_comment_url": "https://api.github.com/repos/octokit/octokit.rb/issues/comments/123", - "type": "Issue" - }, - "reason": "subscribed", - "unread": true, - "updated_at": "2014-11-07T22:01:45Z", - "last_read_at": "2014-11-07T22:01:45Z", - "url": "https://api.github.com/notifications/threads/1", - "subscription_url": "https://api.github.com/notifications/threads/1/subscription" - } - ] + } + ] + } }, - "thread": { + "organization-actions-variables-paginated": { "value": { - "id": "1", - "repository": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false + "total_count": 3, + "variables": [ + { + "name": "USERNAME", + "value": "octocat", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "private" }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" - }, - "subject": { - "title": "Greetings", - "url": "https://api.github.com/repos/octokit/octokit.rb/issues/123", - "latest_comment_url": "https://api.github.com/repos/octokit/octokit.rb/issues/comments/123", - "type": "Issue" - }, - "reason": "subscribed", - "unread": true, - "updated_at": "2014-11-07T22:01:45Z", - "last_read_at": "2014-11-07T22:01:45Z", - "url": "https://api.github.com/notifications/threads/1", - "subscription_url": "https://api.github.com/notifications/threads/1/subscription" + { + "name": "ACTIONS_RUNNER_DEBUG", + "value": true, + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "all" + }, + { + "name": "ADMIN_EMAIL", + "value": "octocat@github.com", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/variables/ADMIN_EMAIL/repositories" + } + ] } }, - "thread-subscription": { + "organization-actions-variable": { "value": { - "subscribed": true, - "ignored": false, - "reason": null, - "created_at": "2012-10-06T21:34:12Z", - "url": "https://api.github.com/notifications/threads/1/subscription", - "thread_url": "https://api.github.com/notifications/threads/1" + "name": "USERNAME", + "value": "octocat", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/variables/USERNAME/repositories" } }, - "organization-simple-items": { - "value": [ - { - "login": "github", - "id": 1, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", - "url": "https://api.github.com/orgs/github", - "repos_url": "https://api.github.com/orgs/github/repos", - "events_url": "https://api.github.com/orgs/github/events", - "hooks_url": "https://api.github.com/orgs/github/hooks", - "issues_url": "https://api.github.com/orgs/github/issues", - "members_url": "https://api.github.com/orgs/github/members{/member}", - "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "description": "A great organization" - } - ] - }, - "organization-full-default-response": { - "summary": "Default response", + "artifact-deployment-record-list": { "value": { - "login": "github", - "id": 1, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", - "url": "https://api.github.com/orgs/github", - "repos_url": "https://api.github.com/orgs/github/repos", - "events_url": "https://api.github.com/orgs/github/events", - "hooks_url": "https://api.github.com/orgs/github/hooks", - "issues_url": "https://api.github.com/orgs/github/issues", - "members_url": "https://api.github.com/orgs/github/members{/member}", - "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "description": "A great organization", - "name": "github", - "company": "GitHub", - "blog": "https://github.com/blog", - "location": "San Francisco", - "email": "octocat@github.com", - "twitter_username": "github", - "is_verified": true, - "has_organization_projects": true, - "has_repository_projects": true, - "public_repos": 2, - "public_gists": 1, - "followers": 20, - "following": 0, - "html_url": "https://github.com/octocat", - "created_at": "2008-01-14T04:33:35Z", - "updated_at": "2014-03-03T18:58:10Z", - "type": "Organization", - "total_private_repos": 100, - "owned_private_repos": 100, - "private_gists": 81, - "disk_usage": 10000, - "collaborators": 8, - "billing_email": "mona@github.com", - "plan": { - "name": "Medium", - "space": 400, - "private_repos": 20, - "filled_seats": 4, - "seats": 5 - }, - "default_repository_permission": "read", - "members_can_create_repositories": true, - "two_factor_requirement_enabled": true, - "members_allowed_repository_creation_type": "all", - "members_can_create_public_repositories": false, - "members_can_create_private_repositories": false, - "members_can_create_internal_repositories": false, - "members_can_create_pages": true + "total_count": 1, + "deployment_records": [ + { + "id": 123, + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "logical_environment": "prod", + "physical_environment": "pacific-east", + "cluster": "moda-1", + "deployment_name": "prod-deployment", + "tags": { + "data": "sensitive" + }, + "created": "2011-01-26T19:14:43Z", + "updated_at": "2011-01-26T19:14:43Z", + "attestation_id": 456 + } + ] } }, - "organization-full": { + "bulk-subject-digest-body": { "value": { - "login": "github", - "id": 1, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", - "url": "https://api.github.com/orgs/github", - "repos_url": "https://api.github.com/orgs/github/repos", - "events_url": "https://api.github.com/orgs/github/events", - "hooks_url": "https://api.github.com/orgs/github/hooks", - "issues_url": "https://api.github.com/orgs/github/issues", - "members_url": "https://api.github.com/orgs/github/members{/member}", - "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "description": "A great organization", - "name": "github", - "company": "GitHub", - "blog": "https://github.com/blog", - "location": "San Francisco", - "email": "octocat@github.com", - "twitter_username": "github", - "is_verified": true, - "has_organization_projects": true, - "has_repository_projects": true, - "public_repos": 2, - "public_gists": 1, - "followers": 20, - "following": 0, - "html_url": "https://github.com/octocat", - "created_at": "2008-01-14T04:33:35Z", - "type": "Organization", - "total_private_repos": 100, - "owned_private_repos": 100, - "private_gists": 81, - "disk_usage": 10000, - "collaborators": 8, - "billing_email": "mona@github.com", - "plan": { - "name": "Medium", - "space": 400, - "private_repos": 20 - }, - "default_repository_permission": "read", - "members_can_create_repositories": true, - "two_factor_requirement_enabled": true, - "members_allowed_repository_creation_type": "all", - "members_can_create_public_repositories": false, - "members_can_create_private_repositories": false, - "members_can_create_internal_repositories": false, - "members_can_create_pages": true, - "members_can_create_public_pages": true, - "members_can_create_private_pages": true, - "updated_at": "2014-03-03T18:58:10Z" + "subject_digests": [ + "sha256:abc123", + "sha512:def456" + ] } }, - "actions-organization-permissions": { + "bulk-subject-digest-body-with-predicate-type": { "value": { - "enabled_repositories": "all", - "allowed_actions": "selected", - "selected_actions_url": "https://api.github.com/organizations/42/actions/permissions/selected-actions" + "subject_digests": [ + "sha256:abc123", + "sha512:def456" + ], + "predicateType": "provenance" } }, - "repository-paginated": { + "list-attestations-bulk": { "value": { - "total_count": 1, - "repositories": [ + "attestations_subject_digests": [ + { + "sha256:abc": [ + { + "bundle": { + "mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", + "verificationMaterial": { + "tlogEntries": [ + { + "logIndex": "97913980", + "logId": { + "keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0=" + }, + "kindVersion": { + "kind": "dsse", + "version": "0.0.1" + }, + "integratedTime": "1716998992", + "inclusionPromise": { + "signedEntryTimestamp": "MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL" + }, + "inclusionProof": { + "logIndex": "93750549", + "rootHash": "KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=", + "treeSize": "93750551", + "hashes": [ + "8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg=", + "nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck=", + "hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A=", + "MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM=", + "XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc=", + "Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY=", + "wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU=", + "uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s=", + "jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs=", + "xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ=", + "cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc=", + "sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ=", + "98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8=" + ], + "checkpoint": { + "envelope": "rekor.sigstore.dev - 2605736670972794746\\n93750551\\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\\n\\n— rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\\n" + } + }, + "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0=" + } + ], + "timestampVerificationData": {}, + "certificate": { + "rawBytes": "MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw==" + } + }, + "dsseEnvelope": { + "payload": "eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19", + "payloadType": "application/vnd.in-toto+json", + "signatures": [ + { + "sig": "MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ==" + } + ] + } + }, + "repository_id": 1 + }, + { + "bundle": { + "mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", + "verificationMaterial": { + "tlogEntries": [ + { + "logIndex": "97913980", + "logId": { + "keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0=" + }, + "kindVersion": { + "kind": "dsse", + "version": "0.0.1" + }, + "integratedTime": "1716998992", + "inclusionPromise": { + "signedEntryTimestamp": "MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL" + }, + "inclusionProof": { + "logIndex": "93750549", + "rootHash": "KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=", + "treeSize": "93750551", + "hashes": [ + "8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg=", + "nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck=", + "hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A=", + "MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM=", + "XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc=", + "Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY=", + "wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU=", + "uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s=", + "jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs=", + "xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ=", + "cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc=", + "sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ=", + "98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8=" + ], + "checkpoint": { + "envelope": "rekor.sigstore.dev - 2605736670972794746\\n93750551\\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\\n\\n— rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\\n" + } + }, + "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0=" + } + ], + "timestampVerificationData": {}, + "certificate": { + "rawBytes": "MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw==" + } + }, + "dsseEnvelope": { + "payload": "eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19", + "payloadType": "application/vnd.in-toto+json", + "signatures": [ + { + "sig": "MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ==" + } + ] + } + }, + "repository_id": 1 + } + ] + } + ] + } + }, + "list-attestation-repositories": { + "value": [ + { + "id": 123, + "name": "foo" + }, + { + "id": 456, + "name": "bar" + } + ] + }, + "list-attestations": { + "value": { + "attestations": [ + { + "bundle": { + "mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", + "verificationMaterial": { + "tlogEntries": [ + { + "logIndex": "97913980", + "logId": { + "keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0=" + }, + "kindVersion": { + "kind": "dsse", + "version": "0.0.1" + }, + "integratedTime": "1716998992", + "inclusionPromise": { + "signedEntryTimestamp": "MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL" + }, + "inclusionProof": { + "logIndex": "93750549", + "rootHash": "KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=", + "treeSize": "93750551", + "hashes": [ + "8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg=", + "nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck=", + "hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A=", + "MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM=", + "XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc=", + "Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY=", + "wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU=", + "uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s=", + "jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs=", + "xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ=", + "cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc=", + "sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ=", + "98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8=" + ], + "checkpoint": { + "envelope": "rekor.sigstore.dev - 2605736670972794746\\n93750551\\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\\n\\n— rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\\n" + } + }, + "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0=" + } + ], + "timestampVerificationData": {}, + "certificate": { + "rawBytes": "MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw==" + } + }, + "dsseEnvelope": { + "payload": "eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19", + "payloadType": "application/vnd.in-toto+json", + "signatures": [ + { + "sig": "MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ==" + } + ] + } + }, + "repository_id": 1 + }, + { + "bundle": { + "mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", + "verificationMaterial": { + "tlogEntries": [ + { + "logIndex": "97913980", + "logId": { + "keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0=" + }, + "kindVersion": { + "kind": "dsse", + "version": "0.0.1" + }, + "integratedTime": "1716998992", + "inclusionPromise": { + "signedEntryTimestamp": "MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL" + }, + "inclusionProof": { + "logIndex": "93750549", + "rootHash": "KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=", + "treeSize": "93750551", + "hashes": [ + "8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg=", + "nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck=", + "hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A=", + "MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM=", + "XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc=", + "Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY=", + "wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU=", + "uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s=", + "jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs=", + "xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ=", + "cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc=", + "sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ=", + "98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8=" + ], + "checkpoint": { + "envelope": "rekor.sigstore.dev - 2605736670972794746\\n93750551\\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\\n\\n— rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\\n" + } + }, + "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0=" + } + ], + "timestampVerificationData": {}, + "certificate": { + "rawBytes": "MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw==" + } + }, + "dsseEnvelope": { + "payload": "eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19", + "payloadType": "application/vnd.in-toto+json", + "signatures": [ + { + "sig": "MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ==" + } + ] + } + }, + "repository_id": 1 + } + ] + } + }, + "campaign-org-items": { + "value": [ + { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open" + }, + { + "number": 4, + "created_at": "2024-03-30T12:29:18Z", + "updated_at": "2024-03-30T12:29:18Z", + "name": "Mitre top 10 KEV", + "description": "Remediate the MITRE Top 10 KEV (Known Exploited Vulnerabilities) to enhance security by addressing vulnerabilities actively exploited by attackers. This reduces risk, prevents breaches and can help protect sensitive data.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "ends_at": "2024-04-30T12:29:18Z", + "closed_at": null, + "state": "open" + } + ] + }, + "campaign-summary": { + "value": { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "published_at": "2024-02-14T12:29:18Z", + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open", + "alert_stats": { + "open_count": 10, + "closed_count": 3, + "in_progress_count": 3 + } + } + }, + "code-scanning-organization-alert-items": { + "value": [ + { + "number": 4, + "created_at": "2020-02-13T12:29:18Z", + "url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/4", + "html_url": "https://github.com/octocat/hello-world/code-scanning/4", + "state": "open", + "dismissed_by": null, + "dismissed_at": null, + "dismissed_reason": null, + "dismissed_comment": null, + "rule": { + "id": "js/zipslip", + "severity": "error", + "tags": [ + "security", + "external/cwe/cwe-022" + ], + "description": "Arbitrary file write during zip extraction", + "name": "js/zipslip" + }, + "tool": { + "name": "CodeQL", + "guid": null, + "version": "2.4.0" + }, + "most_recent_instance": { + "ref": "refs/heads/main", + "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "environment": "{}", + "state": "open", + "commit_sha": "39406e42cb832f683daa691dd652a8dc36ee8930", + "message": { + "text": "This path depends on a user-provided value." + }, + "location": { + "path": "spec-main/api-session-spec.ts", + "start_line": 917, + "end_line": 917, + "start_column": 7, + "end_column": 18 + }, + "classifications": [ + "test" + ] + }, + "instances_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/4/instances", + "repository": { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "name": "Hello-World", @@ -77191,7 +287592,6 @@ "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", @@ -77203,7 +287603,6 @@ "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", @@ -77211,129 +287610,74 @@ "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "language": null, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "size": 108, - "default_branch": "master", - "open_issues_count": 0, - "is_template": true, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true - }, - "allow_rebase_merge": true, - "template_repository": null, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://github.com/licenses/mit" - }, - "forks": 1, - "open_issues": 1, - "watchers": 1 + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks" } - ] - } - }, - "runner-groups-org": { - "value": { - "total_count": 3, - "runner_groups": [ - { + }, + { + "number": 3, + "created_at": "2020-02-13T12:29:18Z", + "url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3", + "html_url": "https://github.com/octocat/hello-world/code-scanning/3", + "state": "dismissed", + "dismissed_by": { + "login": "octocat", "id": 1, - "name": "Default", - "visibility": "all", - "default": true, - "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/1/runners", - "inherited": false, - "allows_public_repositories": true + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false }, - { - "id": 2, - "name": "octo-runner-group", - "visibility": "selected", - "default": false, - "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories", - "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", - "inherited": true, - "allows_public_repositories": true + "dismissed_at": "2020-02-14T12:29:18Z", + "dismissed_reason": "false positive", + "dismissed_comment": "This alert is not actually correct, because there's a sanitizer included in the library.", + "rule": { + "id": "js/zipslip", + "severity": "error", + "tags": [ + "security", + "external/cwe/cwe-022" + ], + "description": "Arbitrary file write during zip extraction", + "name": "js/zipslip" }, - { - "id": 3, - "name": "expensive-hardware", - "visibility": "private", - "default": false, - "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/3/runners", - "inherited": false, - "allows_public_repositories": true - } - ] - } - }, - "runner-group": { - "value": { - "id": 2, - "name": "octo-runner-group", - "visibility": "selected", - "default": false, - "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner-groups/2/repositories", - "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", - "inherited": false, - "allows_public_repositories": true - } - }, - "runner-group-item": { - "value": { - "id": 2, - "name": "octo-runner-group", - "visibility": "selected", - "default": false, - "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories", - "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", - "inherited": false, - "allows_public_repositories": true - } - }, - "minimal-repository-paginated": { - "value": { - "total_count": 1, - "repositories": [ - { + "tool": { + "name": "CodeQL", + "guid": null, + "version": "2.4.0" + }, + "most_recent_instance": { + "ref": "refs/heads/main", + "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "environment": "{}", + "state": "open", + "commit_sha": "39406e42cb832f683daa691dd652a8dc36ee8930", + "message": { + "text": "This path depends on a user-provided value." + }, + "location": { + "path": "lib/ab12-gen.js", + "start_line": 917, + "end_line": 917, + "start_column": 7, + "end_column": 18 + }, + "classifications": [] + }, + "instances_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3/instances", + "repository": { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "name": "Hello-World", @@ -77380,7 +287724,6 @@ "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", @@ -77392,7 +287735,6 @@ "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", @@ -77400,42 +287742,167 @@ "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "language": null, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "size": 108, - "default_branch": "master", - "open_issues_count": 0, - "is_template": true, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks" + } + } + ] + }, + "code-security-configuration-list": { + "value": [ + { + "id": 17, + "target_type": "global", + "name": "GitHub recommended", + "description": "Suggested settings for Dependabot, secret scanning, and code scanning.", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "not_set", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "enabled", + "code_scanning_delegated_alert_dismissal": "enabled", + "secret_scanning": "enabled", + "secret_scanning_push_protection": "enabled", + "secret_scanning_delegated_bypass": "enabled", + "secret_scanning_delegated_bypass_options": { + "reviewers": [ + { + "security_configuration_id": 17, + "reviewer_id": 5678, + "reviewer_type": "TEAM" + } + ] + }, + "secret_scanning_validity_checks": "enabled", + "secret_scanning_non_provider_patterns": "enabled", + "secret_scanning_delegated_alert_dismissal": "not_set", + "private_vulnerability_reporting": "enabled", + "enforcement": "enforced", + "url": "https://api.github.com/orgs/octo-org/code-security/configurations/17", + "html_url": "https://github.com/organizations/octo-org/settings/security_products/configurations/view", + "created_at": "2023-12-04T15:58:07Z", + "updated_at": "2023-12-04T15:58:07Z" + }, + { + "id": 1326, + "target_type": "organization", + "name": "High risk settings", + "description": "This is a code security configuration for octo-org high risk repositories", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "enabled", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "enabled", + "code_scanning_default_setup": "enabled", + "code_scanning_delegated_alert_dismissal": "enabled", + "secret_scanning": "enabled", + "secret_scanning_push_protection": "enabled", + "secret_scanning_delegated_bypass": "disabled", + "secret_scanning_validity_checks": "disabled", + "secret_scanning_non_provider_patterns": "disabled", + "secret_scanning_delegated_alert_dismissal": "disabled", + "private_vulnerability_reporting": "enabled", + "enforcement": "enforced", + "url": "https://api.github.com/orgs/octo-org/code-security/configurations/1326", + "html_url": "https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1326", + "created_at": "2024-05-10T00:00:00Z", + "updated_at": "2024-05-10T00:00:00Z" + } + ] + }, + "code-security-configuration-updated": { + "value": { + "id": 1325, + "target_type": "organization", + "name": "octo-org recommended settings v2", + "description": "This is a code security configuration for octo-org", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "enabled", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "enabled", + "code_scanning_default_setup_options": { + "runner_type": "not_set", + "runner_label": null + }, + "code_scanning_options": { + "allow_advanced": false + }, + "code_scanning_delegated_alert_dismissal": "disabled", + "secret_scanning": "disabled", + "secret_scanning_push_protection": "disabled", + "secret_scanning_delegated_bypass": "disabled", + "secret_scanning_validity_checks": "disabled", + "secret_scanning_non_provider_patterns": "disabled", + "secret_scanning_generic_secrets": "disabled", + "secret_scanning_delegated_alert_dismissal": "disabled", + "private_vulnerability_reporting": "disabled", + "enforcement": "enforced", + "url": "https://api.github.com/orgs/octo-org/code-security/configurations/1325", + "html_url": "https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325", + "created_at": "2024-05-01T00:00:00Z", + "updated_at": "2024-05-01T00:00:00Z" + } + }, + "codespaces-list": { + "value": { + "total_count": 3, + "codespaces": [ + { + "id": 1, + "name": "monalisa-octocat-hello-world-g4wpq6h95q", + "environment_id": "26a7c758-7299-4a73-b978-5a92a7ae98a0", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false }, - "template_repository": { + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repository": { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "name": "Hello-World", @@ -77502,132 +287969,391 @@ "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "organization": null, - "language": null, - "forks": 9, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues": 0, - "open_issues_count": 0, - "is_template": true, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "machine": { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 + }, + "prebuild": false, + "devcontainer_path": ".devcontainer/devcontainer.json", + "created_at": "2021-10-14T00:53:30-06:00", + "updated_at": "2021-10-14T00:53:32-06:00", + "last_used_at": "2021-10-14T00:53:30-06:00", + "state": "Available", + "url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q", + "git_status": { + "ahead": 0, + "behind": 0, + "has_unpushed_changes": false, + "has_uncommitted_changes": false, + "ref": "main" + }, + "location": "WestUs2", + "idle_timeout_minutes": 60, + "web_url": "https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev", + "machines_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines", + "start_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start", + "stop_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop", + "recent_folders": [] + }, + { + "id": 1, + "name": "monalisa-octocat-hello-world-3f89ada1j3", + "environment_id": "526ce4d7-46da-494f-a4f9-cfd25b818719", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false }, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "machine": { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 + }, + "prebuild": false, + "devcontainer_path": ".devcontainer/foobar/devcontainer.json", + "created_at": "2021-10-14T00:53:30-06:00", + "updated_at": "2021-10-14T00:53:32-06:00", + "last_used_at": "2021-10-14T00:53:30-06:00", + "state": "Available", + "url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3", + "git_status": { + "ahead": 0, + "behind": 0, + "has_unpushed_changes": false, + "has_uncommitted_changes": false, + "ref": "main" + }, + "location": "WestUs2", + "idle_timeout_minutes": 60, + "web_url": "https://monalisa-octocat-hello-world-3f89ada1j3.github.dev", + "machines_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines", + "start_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start", + "stop_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop", + "recent_folders": [] + }, + { + "id": 1, + "name": "monalisa-octocat-hello-world-f8adfad99a", + "environment_id": "6ac8cd6d-a2d0-4ae3-8cea-e135059264df", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false }, - "allow_rebase_merge": true, - "template_repository": null, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0 + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" }, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "delete_branch_on_merge": true, - "subscribers_count": 42, - "network_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==" + "machine": { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 }, - "forks": 1, - "open_issues": 1, - "watchers": 1 + "prebuild": false, + "devcontainer_path": ".devcontainer.json", + "created_at": "2021-10-14T00:53:30-06:00", + "updated_at": "2021-10-14T00:53:32-06:00", + "last_used_at": "2021-10-14T00:53:30-06:00", + "state": "Available", + "url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a", + "git_status": { + "ahead": 0, + "behind": 0, + "has_unpushed_changes": false, + "has_uncommitted_changes": false, + "ref": "main" + }, + "location": "WestUs2", + "idle_timeout_minutes": 60, + "web_url": "https://monalisa-octocat-hello-world-f8adfad99a.github.dev", + "machines_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/machines", + "start_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/start", + "stop_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/stop", + "recent_folders": [] } ] } }, - "organization-actions-secret-paginated": { + "repo-codespaces-secret-paginated": { "value": { - "total_count": 3, + "total_count": 2, "secrets": [ { - "name": "GIST_ID", - "created_at": "2019-08-10T14:59:22Z", - "updated_at": "2020-01-10T14:59:22Z", - "visibility": "private" - }, - { - "name": "DEPLOY_TOKEN", + "name": "GH_TOKEN", "created_at": "2019-08-10T14:59:22Z", "updated_at": "2020-01-10T14:59:22Z", "visibility": "all" }, { - "name": "GH_TOKEN", - "created_at": "2019-08-10T14:59:22Z", - "updated_at": "2020-01-10T14:59:22Z", - "visibility": "selected", - "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories" + "name": "GIST_ID", + "created_at": "2020-01-10T10:59:22Z", + "updated_at": "2020-01-11T11:59:22Z", + "visibility": "all" } ] } }, - "actions-public-key": { + "codespaces-public-key": { "value": { "key_id": "012345678912345678", "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" } }, - "organization-actions-secret": { + "repo-codespaces-secret": { "value": { "name": "GH_TOKEN", "created_at": "2019-08-10T14:59:22Z", "updated_at": "2020-01-10T14:59:22Z", - "visibility": "selected", - "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories" + "visibility": "all" } }, - "public-repository-paginated": { + "copilot-organization-details": { "value": { - "total_count": 1, - "repositories": [ + "seat_breakdown": { + "total": 12, + "added_this_cycle": 9, + "pending_invitation": 0, + "pending_cancellation": 0, + "active_this_cycle": 12, + "inactive_this_cycle": 11 + }, + "seat_management_setting": "assign_selected", + "ide_chat": "enabled", + "platform_chat": "enabled", + "cli": "enabled", + "public_code_suggestions": "block", + "plan_type": "business" + } + }, + "copilot-seats-list": { + "value": { + "total_seats": 2, + "seats": [ { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { + "created_at": "2021-08-03T18:00:00-06:00", + "updated_at": "2021-09-23T15:00:00-06:00", + "pending_cancellation_date": null, + "last_activity_at": "2021-10-14T00:53:32-06:00", + "last_activity_editor": "vscode/1.77.3/copilot/1.86.82", + "last_authenticated_at": "2021-10-14T00:53:32-06:00", + "plan_type": "business", + "assignee": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", @@ -77647,99 +288373,378 @@ "type": "User", "site_admin": false }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + "assigning_team": { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + }, + { + "created_at": "2021-09-23T18:00:00-06:00", + "updated_at": "2021-09-23T15:00:00-06:00", + "pending_cancellation_date": "2021-11-01", + "last_activity_at": "2021-10-13T00:53:32-06:00", + "last_activity_editor": "vscode/1.77.3/copilot/1.86.82", + "last_authenticated_at": "2021-10-14T00:53:32-06:00", + "assignee": { + "login": "octokitten", + "id": 1, + "node_id": "MDQ76VNlcjE=", + "avatar_url": "https://github.com/images/error/octokitten_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octokitten", + "html_url": "https://github.com/octokitten", + "followers_url": "https://api.github.com/users/octokitten/followers", + "following_url": "https://api.github.com/users/octokitten/following{/other_user}", + "gists_url": "https://api.github.com/users/octokitten/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octokitten/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octokitten/subscriptions", + "organizations_url": "https://api.github.com/users/octokitten/orgs", + "repos_url": "https://api.github.com/users/octokitten/repos", + "events_url": "https://api.github.com/users/octokitten/events{/privacy}", + "received_events_url": "https://api.github.com/users/octokitten/received_events", + "type": "User", + "site_admin": false + } } ] } }, - "simple-user-items": { + "copilot-usage-metrics-for-day": { "value": [ { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false + "date": "2024-06-24", + "total_active_users": 24, + "total_engaged_users": 20, + "copilot_ide_code_completions": { + "total_engaged_users": 20, + "languages": [ + { + "name": "python", + "total_engaged_users": 10 + }, + { + "name": "ruby", + "total_engaged_users": 10 + } + ], + "editors": [ + { + "name": "vscode", + "total_engaged_users": 13, + "models": [ + { + "name": "default", + "is_custom_model": false, + "custom_model_training_date": null, + "total_engaged_users": 13, + "languages": [ + { + "name": "python", + "total_engaged_users": 6, + "total_code_suggestions": 249, + "total_code_acceptances": 123, + "total_code_lines_suggested": 225, + "total_code_lines_accepted": 135 + }, + { + "name": "ruby", + "total_engaged_users": 7, + "total_code_suggestions": 496, + "total_code_acceptances": 253, + "total_code_lines_suggested": 520, + "total_code_lines_accepted": 270 + } + ] + } + ] + }, + { + "name": "neovim", + "total_engaged_users": 7, + "models": [ + { + "name": "a-custom-model", + "is_custom_model": true, + "custom_model_training_date": "2024-02-01", + "languages": [ + { + "name": "typescript", + "total_engaged_users": 3, + "total_code_suggestions": 112, + "total_code_acceptances": 56, + "total_code_lines_suggested": 143, + "total_code_lines_accepted": 61 + }, + { + "name": "go", + "total_engaged_users": 4, + "total_code_suggestions": 132, + "total_code_acceptances": 67, + "total_code_lines_suggested": 154, + "total_code_lines_accepted": 72 + } + ] + } + ] + } + ] + }, + "copilot_ide_chat": { + "total_engaged_users": 13, + "editors": [ + { + "name": "vscode", + "total_engaged_users": 13, + "models": [ + { + "name": "default", + "is_custom_model": false, + "custom_model_training_date": null, + "total_engaged_users": 12, + "total_chats": 45, + "total_chat_insertion_events": 12, + "total_chat_copy_events": 16 + }, + { + "name": "a-custom-model", + "is_custom_model": true, + "custom_model_training_date": "2024-02-01", + "total_engaged_users": 1, + "total_chats": 10, + "total_chat_insertion_events": 11, + "total_chat_copy_events": 3 + } + ] + } + ] + }, + "copilot_dotcom_chat": { + "total_engaged_users": 14, + "models": [ + { + "name": "default", + "is_custom_model": false, + "custom_model_training_date": null, + "total_engaged_users": 14, + "total_chats": 38 + } + ] + }, + "copilot_dotcom_pull_requests": { + "total_engaged_users": 12, + "repositories": [ + { + "name": "demo/repo1", + "total_engaged_users": 8, + "models": [ + { + "name": "default", + "is_custom_model": false, + "custom_model_training_date": null, + "total_pr_summaries_created": 6, + "total_engaged_users": 8 + } + ] + }, + { + "name": "demo/repo2", + "total_engaged_users": 4, + "models": [ + { + "name": "a-custom-model", + "is_custom_model": true, + "custom_model_training_date": "2024-02-01", + "total_pr_summaries_created": 10, + "total_engaged_users": 4 + } + ] + } + ] + } + } + ] + }, + "organization-dependabot-secret-paginated": { + "value": { + "total_count": 3, + "secrets": [ + { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "private" + }, + { + "name": "NPM_TOKEN", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "all" + }, + { + "name": "GH_TOKEN", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/dependabot/secrets/SUPER_SECRET/repositories" + } + ] + } + }, + "dependabot-public-key": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + }, + "organization-dependabot-secret": { + "value": { + "name": "NPM_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/dependabot/secrets/NPM_TOKEN/repositories" + } + }, + "packages-for-org": { + "value": [ + { + "id": 197, + "name": "hello_docker", + "package_type": "container", + "owner": { + "login": "github", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "site_admin": false + }, + "version_count": 1, + "visibility": "private", + "url": "https://api.github.com/orgs/github/packages/container/hello_docker", + "created_at": "2020-05-19T22:19:11Z", + "updated_at": "2020-05-19T22:19:11Z", + "html_url": "https://github.com/orgs/github/packages/container/package/hello_docker" + }, + { + "id": 198, + "name": "goodbye_docker", + "package_type": "container", + "owner": { + "login": "github", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "site_admin": false + }, + "version_count": 2, + "visibility": "private", + "url": "https://api.github.com/orgs/github/packages/container/goodbye_docker", + "created_at": "2020-05-20T22:19:11Z", + "updated_at": "2020-05-20T22:19:11Z", + "html_url": "https://github.com/orgs/github/packages/container/package/goodbye_docker" } ] }, - "credential-authorization-items": { + "public-org-events-items": { "value": [ { - "login": "octocat", - "credential_id": 161195, - "credential_type": "personal access token", - "token_last_eight": "71c3fc11", - "credential_authorized_at": "2011-01-26T19:06:43Z", - "scopes": [ - "user", - "repo" - ] + "id": "22237752260", + "type": "WatchEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octo-org/octo-repo", + "url": "https://api.github.com/repos/octo-org/octo-repo" + }, + "payload": { + "action": "started" + }, + "public": true, + "created_at": "2022-06-08T23:29:25Z", + "org": { + "id": 9919, + "login": "octo-org", + "gravatar_id": "", + "url": "https://api.github.com/orgs/octo-org", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?" + } }, { - "login": "hubot", - "credential_id": 161196, - "credential_type": "personal access token", - "token_last_eight": "Ae178B4a", - "credential_authorized_at": "2019-03-29T19:06:43Z", - "scopes": [ - "repo" - ] + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octo-org/octo-repo", + "url": "https://api.github.com/repos/octo-org/octo-repo" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z", + "org": { + "id": 9919, + "login": "octo-org", + "gravatar_id": "", + "url": "https://api.github.com/orgs/octo-org", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?" + } } ] }, @@ -77775,7 +288780,8 @@ "site_admin": false }, "team_count": 2, - "invitation_teams_url": "https://api.github.com/organizations/2/invitations/1/teams" + "invitation_teams_url": "https://api.github.com/organizations/2/invitations/1/teams", + "invitation_source": "member" } ] }, @@ -77843,6 +288849,85 @@ "type": "Organization" } }, + "api-insights-route-stats": { + "value": [ + { + "http_method": "GET", + "api_route": "/repositories/:repository_id", + "total_request_count": 544665, + "rate_limited_request_count": 13, + "last_request_timestamp": "2024-09-18T15:43:03Z", + "last_rate_limited_timestamp": "2024-09-18T06:30:09Z" + } + ] + }, + "api-insights-subject-stats": { + "value": [ + { + "subject_type": "installation", + "subject_id": 954453, + "subject_name": "GitHub Actions", + "total_request_count": 544665, + "rate_limited_request_count": 13, + "last_request_timestamp": "2024-09-18T15:43:03Z", + "last_rate_limited_timestamp": "2024-09-18T06:30:09Z" + } + ] + }, + "api-insights-summary-stats": { + "value": { + "total_request_count": 34225, + "rate_limited_request_count": 23 + } + }, + "api-insights-time-stats": { + "value": [ + { + "timestamp": "2024-09-11T15:00:00Z", + "total_request_count": 34225, + "rate_limited_request_count": 0 + }, + { + "timestamp": "2024-09-11T15:05:00Z", + "total_request_count": 10587, + "rate_limited_request_count": 18 + }, + { + "timestamp": "2024-09-11T15:10:00Z", + "total_request_count": 43587, + "rate_limited_request_count": 14 + }, + { + "timestamp": "2024-09-11T15:15:00Z", + "total_request_count": 19463, + "rate_limited_request_count": 4 + }, + { + "timestamp": "2024-09-11T15:20:00Z", + "total_request_count": 60542, + "rate_limited_request_count": 3 + }, + { + "timestamp": "2024-09-11T15:25:00Z", + "total_request_count": 55872, + "rate_limited_request_count": 23 + } + ] + }, + "api-insights-user-stats": { + "value": [ + { + "actor_type": "oauth_app", + "actor_id": 954453, + "actor_name": "GitHub Actions", + "oauth_application_id": 1245, + "total_request_count": 544665, + "rate_limited_request_count": 13, + "last_request_timestamp": "2024-09-18T15:43:03Z", + "last_rate_limited_timestamp": "2024-09-18T06:30:09Z" + } + ] + }, "installation": { "value": { "id": 1, @@ -77867,10 +288952,11 @@ "site_admin": false }, "repository_selection": "all", - "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "access_tokens_url": "https://api.github.com/app/installations/1/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/organizations/github/settings/installations/1", "app_id": 1, + "client_id": "Iv1.ab1112223334445c", "target_id": 1, "target_type": "Organization", "permissions": { @@ -77989,7 +289075,8 @@ "site_admin": false }, "team_count": 2, - "invitation_teams_url": "https://api.github.com/organizations/2/invitations/1/teams" + "invitation_teams_url": "https://api.github.com/organizations/2/invitations/1/teams", + "invitation_source": "member" } }, "team-items": { @@ -78003,6 +289090,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -78010,6 +289098,231 @@ } ] }, + "issue-type-items": { + "value": [ + { + "id": 410, + "node_id": "IT_kwDNAd3NAZo", + "name": "Task", + "description": "A specific piece of work", + "created_at": "2024-12-11T14:39:09Z", + "updated_at": "2024-12-11T14:39:09Z" + }, + { + "id": 411, + "node_id": "IT_kwDNAd3NAZs", + "name": "Bug", + "description": "An unexpected problem or behavior", + "created_at": "2024-12-11T14:39:09Z", + "updated_at": "2024-12-11T14:39:09Z" + } + ] + }, + "issue-type": { + "value": { + "id": 410, + "node_id": "IT_kwDNAd3NAZo", + "name": "Task", + "description": "A specific piece of work", + "created_at": "2024-12-11T14:39:09Z", + "updated_at": "2024-12-11T14:39:09Z" + } + }, + "codespace": { + "value": { + "id": 1, + "name": "monalisa-octocat-hello-world-g4wpq6h95q", + "environment_id": "26a7c758-7299-4a73-b978-5a92a7ae98a0", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "machine": { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 + }, + "prebuild": false, + "devcontainer_path": ".devcontainer/devcontainer.json", + "created_at": "2021-10-14T00:53:30-06:00", + "updated_at": "2021-10-14T00:53:32-06:00", + "last_used_at": "2021-10-14T00:53:30-06:00", + "state": "Available", + "url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q", + "git_status": { + "ahead": 0, + "behind": 0, + "has_unpushed_changes": false, + "has_uncommitted_changes": false, + "ref": "main" + }, + "location": "WestUs2", + "idle_timeout_minutes": 60, + "retention_period_minutes": 43200, + "retention_expires_at": null, + "web_url": "https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev", + "machines_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines", + "start_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start", + "stop_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1", + "recent_folders": [], + "template": null + } + }, + "copilot-seat-detail-active": { + "value": { + "created_at": "2021-08-03T18:00:00-06:00", + "updated_at": "2021-09-23T15:00:00-06:00", + "pending_cancellation_date": null, + "last_activity_at": "2021-10-14T00:53:32-06:00", + "last_activity_editor": "vscode/1.77.3/copilot/1.86.82", + "last_authenticated_at": "2021-10-14T00:53:32-06:00", + "plan_type": "business", + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assigning_team": { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + } + }, "org-membership-response-if-user-has-an-active-admin-membership-with-organization": { "summary": "Response if user has an active admin membership with organization", "value": { @@ -78017,6 +289330,11 @@ "state": "active", "role": "admin", "organization_url": "https://api.github.com/orgs/octocat", + "direct_membership": true, + "enterprise_teams_providing_indirect_membership": [ + "ent:justice-league", + "ent:security-managers" + ], "organization": { "login": "github", "id": 1, @@ -78081,6 +289399,8 @@ "state": "pending", "lock_repositories": true, "exclude_attachments": false, + "exclude_releases": false, + "exclude_owner_projects": false, "repositories": [ { "id": 1296269, @@ -78241,6 +289561,8 @@ "state": "pending", "lock_repositories": true, "exclude_attachments": false, + "exclude_releases": false, + "exclude_owner_projects": false, "repositories": [ { "id": 1296269, @@ -78399,6 +289721,8 @@ "state": "exported", "lock_repositories": true, "exclude_attachments": false, + "exclude_releases": false, + "exclude_owner_projects": false, "repositories": [ { "id": 1296269, @@ -78622,6 +289946,7 @@ "has_wiki": true, "has_pages": false, "has_downloads": true, + "has_discussions": false, "archived": false, "disabled": false, "visibility": "public", @@ -78633,131 +289958,125 @@ "push": false, "pull": true }, - "template_repository": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World-Template", - "full_name": "octocat/Hello-World-Template", - "owner": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false + "security_and_analysis": { + "advanced_security": { + "status": "enabled" }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World-Template", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World-Template", - "archive_url": "https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World-Template/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World-Template/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World-Template/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World-Template/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World-Template/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World-Template/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World-Template.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World-Template/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World-Template/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World-Template/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World-Template/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World-Template.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World-Template/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World-Template/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World-Template.git", - "mirror_url": "git:git.example.com/octocat/Hello-World-Template", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World-Template/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World-Template", - "homepage": "https://github.com", - "language": null, - "forks": 9, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues": 0, - "open_issues_count": 0, - "is_template": true, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" + "secret_scanning": { + "status": "enabled" }, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true + "secret_scanning_push_protection": { + "status": "disabled" }, - "allow_rebase_merge": true, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0 + "secret_scanning_non_provider_patterns": { + "status": "disabled" + }, + "secret_scanning_delegated_alert_dismissal": { + "status": "disabled" + } } } ] }, + "organization-role-list": { + "value": { + "total_count": 2, + "roles": [ + { + "id": 8030, + "name": "Custom Role Manager", + "description": "Permissions to manage custom roles within an org", + "permissions": [ + "write_organization_custom_repo_role", + "write_organization_custom_org_role", + "read_organization_custom_repo_role", + "read_organization_custom_org_role" + ], + "organization": { + "login": "github", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "site_admin": false + }, + "created_at": "2022-07-04T22:19:11Z", + "updated_at": "2022-07-04T22:20:11Z" + }, + { + "id": 8031, + "name": "Auditor", + "description": "Permissions to read the organization audit log", + "permissions": [ + "read_audit_logs" + ], + "organization": { + "login": "github", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "site_admin": false + }, + "created_at": "2022-07-04T22:19:11Z", + "updated_at": "2022-07-04T22:20:11Z" + } + ] + } + }, + "organization-role": { + "value": { + "id": 8030, + "name": "Custom Role Manager", + "description": "Permissions to manage custom roles within an org", + "permissions": [ + "write_organization_custom_repo_role", + "write_organization_custom_org_role", + "read_organization_custom_repo_role", + "read_organization_custom_org_role" + ], + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "created_at": "2022-07-04T22:19:11Z", + "updated_at": "2022-07-04T22:20:11Z" + } + }, "package-org": { "value": { "id": 197, @@ -78823,859 +290142,26 @@ "value": { "id": 836, "name": "sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344", - "url": "https://api.github.com/orgs/github/packages/container/hello_docker/versions/836", - "package_html_url": "https://github.com/orgs/github/packages/container/package/hello_docker", - "created_at": "2020-05-19T22:19:11Z", - "updated_at": "2020-05-19T22:19:11Z", - "html_url": "https://github.com/orgs/github/packages/container/hello_docker/836", - "metadata": { - "package_type": "container", - "container": { - "tags": [ - "latest" - ] - } - } - } - }, - "project-items": { - "value": [ - { - "owner_url": "https://api.github.com/orgs/octocat", - "url": "https://api.github.com/projects/1002605", - "html_url": "https://github.com/orgs/api-playground/projects/1", - "columns_url": "https://api.github.com/projects/1002605/columns", - "id": 1002605, - "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", - "name": "Organization Roadmap", - "body": "High-level roadmap for the upcoming year.", - "number": 1, - "state": "open", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2011-04-11T20:09:31Z", - "updated_at": "2014-03-04T18:58:10Z" - } - ] - }, - "project-2": { - "value": { - "owner_url": "https://api.github.com/orgs/octocat", - "url": "https://api.github.com/projects/1002605", - "html_url": "https://github.com/orgs/api-playground/projects/1", - "columns_url": "https://api.github.com/projects/1002605/columns", - "id": 1002605, - "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", - "name": "Organization Roadmap", - "body": "High-level roadmap for the upcoming year.", - "number": 1, - "state": "open", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2011-04-11T20:09:31Z", - "updated_at": "2014-03-04T18:58:10Z" - } - }, - "repository": { - "value": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "organization": null, - "language": null, - "forks": 9, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues": 0, - "open_issues_count": 0, - "is_template": true, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" - }, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true - }, - "allow_rebase_merge": true, - "template_repository": null, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0 - } - }, - "group-mapping-3": { - "value": { - "groups": [ - { - "group_id": "123", - "group_name": "Octocat admins", - "group_description": "The people who configure your octoworld." - }, - { - "group_id": "456", - "group_name": "Octocat docs members", - "group_description": "The people who make your octoworld come to life." - } - ] - } - }, - "team-full": { - "value": { - "id": 1, - "node_id": "MDQ6VGVhbTE=", - "url": "https://api.github.com/teams/1", - "html_url": "https://github.com/orgs/github/teams/justice-league", - "name": "Justice League", - "slug": "justice-league", - "description": "A great team.", - "privacy": "closed", - "permission": "admin", - "members_url": "https://api.github.com/teams/1/members{/member}", - "repositories_url": "https://api.github.com/teams/1/repos", - "parent": null, - "members_count": 3, - "repos_count": 10, - "created_at": "2017-07-14T16:53:42Z", - "updated_at": "2017-08-17T12:37:15Z", - "organization": { - "login": "github", - "id": 1, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", - "url": "https://api.github.com/orgs/github", - "repos_url": "https://api.github.com/orgs/github/repos", - "events_url": "https://api.github.com/orgs/github/events", - "hooks_url": "https://api.github.com/orgs/github/hooks", - "issues_url": "https://api.github.com/orgs/github/issues", - "members_url": "https://api.github.com/orgs/github/members{/member}", - "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "description": "A great organization", - "name": "github", - "company": "GitHub", - "blog": "https://github.com/blog", - "location": "San Francisco", - "email": "octocat@github.com", - "is_verified": true, - "has_organization_projects": true, - "has_repository_projects": true, - "public_repos": 2, - "public_gists": 1, - "followers": 20, - "following": 0, - "html_url": "https://github.com/octocat", - "created_at": "2008-01-14T04:33:35Z", - "updated_at": "2017-08-17T12:37:15Z", - "type": "Organization" - } - } - }, - "team-discussion-items": { - "value": [ - { - "author": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "body": "Hi! This is an area for us to collaborate as a team.", - "body_html": "

Hi! This is an area for us to collaborate as a team

", - "body_version": "0d495416a700fb06133c612575d92bfb", - "comments_count": 0, - "comments_url": "https://api.github.com/teams/2343027/discussions/1/comments", - "created_at": "2018-01-25T18:56:31Z", - "last_edited_at": null, - "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1", - "node_id": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==", - "number": 1, - "pinned": false, - "private": false, - "team_url": "https://api.github.com/teams/2343027", - "title": "Our first team post", - "updated_at": "2018-01-25T18:56:31Z", - "url": "https://api.github.com/teams/2343027/discussions/1", - "reactions": { - "url": "https://api.github.com/teams/2343027/discussions/1/reactions", - "total_count": 5, - "+1": 3, - "-1": 1, - "laugh": 0, - "confused": 0, - "heart": 1, - "hooray": 0, - "eyes": 1, - "rocket": 1 - } - } - ] - }, - "team-discussion": { - "value": { - "author": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "body": "Hi! This is an area for us to collaborate as a team.", - "body_html": "

Hi! This is an area for us to collaborate as a team

", - "body_version": "0d495416a700fb06133c612575d92bfb", - "comments_count": 0, - "comments_url": "https://api.github.com/teams/2343027/discussions/1/comments", - "created_at": "2018-01-25T18:56:31Z", - "last_edited_at": null, - "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1", - "node_id": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==", - "number": 1, - "pinned": false, - "private": false, - "team_url": "https://api.github.com/teams/2343027", - "title": "Our first team post", - "updated_at": "2018-01-25T18:56:31Z", - "url": "https://api.github.com/teams/2343027/discussions/1", - "reactions": { - "url": "https://api.github.com/teams/2343027/discussions/1/reactions", - "total_count": 5, - "+1": 3, - "-1": 1, - "laugh": 0, - "confused": 0, - "heart": 1, - "hooray": 0, - "eyes": 1, - "rocket": 1 - } - } - }, - "team-discussion-2": { - "value": { - "author": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "body": "Hi! This is an area for us to collaborate as a team.", - "body_html": "

Hi! This is an area for us to collaborate as a team

", - "body_version": "0d495416a700fb06133c612575d92bfb", - "comments_count": 1, - "comments_url": "https://api.github.com/teams/2343027/discussions/1/comments", - "created_at": "2018-01-25T18:56:31Z", - "last_edited_at": "2018-01-26T18:22:20Z", - "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1", - "node_id": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==", - "number": 1, - "pinned": false, - "private": false, - "team_url": "https://api.github.com/teams/2343027", - "title": "Welcome to our first team post", - "updated_at": "2018-01-26T18:22:20Z", - "url": "https://api.github.com/teams/2343027/discussions/1", - "reactions": { - "url": "https://api.github.com/teams/2343027/discussions/1/reactions", - "total_count": 5, - "+1": 3, - "-1": 1, - "laugh": 0, - "confused": 0, - "heart": 1, - "hooray": 0, - "eyes": 1, - "rocket": 1 - } - } - }, - "team-discussion-comment-items": { - "value": [ - { - "author": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "body": "Do you like apples?", - "body_html": "

Do you like apples?

", - "body_version": "5eb32b219cdc6a5a9b29ba5d6caa9c51", - "created_at": "2018-01-15T23:53:58Z", - "last_edited_at": null, - "discussion_url": "https://api.github.com/teams/2403582/discussions/1", - "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1", - "node_id": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=", - "number": 1, - "updated_at": "2018-01-15T23:53:58Z", - "url": "https://api.github.com/teams/2403582/discussions/1/comments/1", - "reactions": { - "url": "https://api.github.com/teams/2403582/discussions/1/reactions", - "total_count": 5, - "+1": 3, - "-1": 1, - "laugh": 0, - "confused": 0, - "heart": 1, - "hooray": 0, - "eyes": 1, - "rocket": 1 - } - } - ] - }, - "team-discussion-comment": { - "value": { - "author": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "body": "Do you like apples?", - "body_html": "

Do you like apples?

", - "body_version": "5eb32b219cdc6a5a9b29ba5d6caa9c51", - "created_at": "2018-01-15T23:53:58Z", - "last_edited_at": null, - "discussion_url": "https://api.github.com/teams/2403582/discussions/1", - "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1", - "node_id": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=", - "number": 1, - "updated_at": "2018-01-15T23:53:58Z", - "url": "https://api.github.com/teams/2403582/discussions/1/comments/1", - "reactions": { - "url": "https://api.github.com/teams/2403582/discussions/1/reactions", - "total_count": 5, - "+1": 3, - "-1": 1, - "laugh": 0, - "confused": 0, - "heart": 1, - "hooray": 0, - "eyes": 1, - "rocket": 1 - } - } - }, - "team-discussion-comment-2": { - "value": { - "author": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "body": "Do you like pineapples?", - "body_html": "

Do you like pineapples?

", - "body_version": "e6907b24d9c93cc0c5024a7af5888116", - "created_at": "2018-01-15T23:53:58Z", - "last_edited_at": "2018-01-26T18:22:20Z", - "discussion_url": "https://api.github.com/teams/2403582/discussions/1", - "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1", - "node_id": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=", - "number": 1, - "updated_at": "2018-01-26T18:22:20Z", - "url": "https://api.github.com/teams/2403582/discussions/1/comments/1", - "reactions": { - "url": "https://api.github.com/teams/2403582/discussions/1/reactions", - "total_count": 5, - "+1": 3, - "-1": 1, - "laugh": 0, - "confused": 0, - "heart": 1, - "hooray": 0, - "eyes": 1, - "rocket": 1 - } - } - }, - "reaction-items": { - "value": [ - { - "id": 1, - "node_id": "MDg6UmVhY3Rpb24x", - "user": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "content": "heart", - "created_at": "2016-05-20T20:09:31Z" - } - ] - }, - "reaction": { - "value": { - "id": 1, - "node_id": "MDg6UmVhY3Rpb24x", - "user": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "content": "heart", - "created_at": "2016-05-20T20:09:31Z" - } - }, - "team-membership-response-if-user-is-a-team-maintainer": { - "summary": "Response if user is a team maintainer", - "value": { - "url": "https://api.github.com/teams/1/memberships/octocat", - "role": "maintainer", - "state": "active" - } - }, - "team-membership-response-if-users-membership-with-team-is-now-pending": { - "summary": "Response if user's membership with team is now pending", - "value": { - "url": "https://api.github.com/teams/1/memberships/octocat", - "role": "member", - "state": "pending" - } - }, - "team-project-items": { - "value": [ - { - "owner_url": "https://api.github.com/orgs/octocat", - "url": "https://api.github.com/projects/1002605", - "html_url": "https://github.com/orgs/api-playground/projects/1", - "columns_url": "https://api.github.com/projects/1002605/columns", - "id": 1002605, - "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", - "name": "Organization Roadmap", - "body": "High-level roadmap for the upcoming year.", - "number": 1, - "state": "open", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2011-04-11T20:09:31Z", - "updated_at": "2014-03-04T18:58:10Z", - "organization_permission": "write", - "private": false, - "permissions": { - "read": true, - "write": true, - "admin": false - } - } - ] - }, - "team-project": { - "value": { - "owner_url": "https://api.github.com/orgs/octocat", - "url": "https://api.github.com/projects/1002605", - "html_url": "https://github.com/orgs/api-playground/projects/1", - "columns_url": "https://api.github.com/projects/1002605/columns", - "id": 1002605, - "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", - "name": "Organization Roadmap", - "body": "High-level roadmap for the upcoming year.", - "number": 1, - "state": "open", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2011-04-11T20:09:31Z", - "updated_at": "2014-03-04T18:58:10Z", - "organization_permission": "write", - "private": false, - "permissions": { - "read": true, - "write": true, - "admin": false - } - } - }, - "team-repository-alternative-response-with-repository-permissions": { - "value": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "language": null, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "size": 108, - "default_branch": "master", - "open_issues_count": 0, - "is_template": false, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true - }, - "allow_rebase_merge": true, - "template_repository": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World-Template", - "full_name": "octocat/Hello-World-Template", + "url": "https://api.github.com/orgs/github/packages/container/hello_docker/versions/836", + "package_html_url": "https://github.com/orgs/github/packages/container/package/hello_docker", + "created_at": "2020-05-19T22:19:11Z", + "updated_at": "2020-05-19T22:19:11Z", + "html_url": "https://github.com/orgs/github/packages/container/hello_docker/836", + "metadata": { + "package_type": "container", + "container": { + "tags": [ + "latest" + ] + } + } + } + }, + "org-pat-grant-request-paginated": { + "value": [ + { + "id": 25381, + "reason": "I need to access the GitHub API", "owner": { "login": "octocat", "id": 1, @@ -79696,223 +290182,30 @@ "type": "User", "site_admin": false }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World-Template", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World-Template", - "archive_url": "https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World-Template/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World-Template/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World-Template/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World-Template/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World-Template/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World-Template/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World-Template.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World-Template/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World-Template/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World-Template/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World-Template/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World-Template.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World-Template/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World-Template/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World-Template.git", - "mirror_url": "git:git.example.com/octocat/Hello-World-Template", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World-Template/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World-Template", - "homepage": "https://github.com", - "language": null, - "forks": 9, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues": 0, - "open_issues_count": 0, - "is_template": true, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" - }, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", + "repository_selection": "all", + "repositories_url": "https://api.github.com/organizations/652551/personal-access-token-requests/25381/repositories", "permissions": { - "admin": false, - "push": false, - "pull": true - }, - "allow_rebase_merge": true, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0 - }, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" - }, - "forks": 1, - "open_issues": 1, - "watchers": 1 - } - }, - "group-mapping": { - "value": { - "groups": [ - { - "group_id": "123", - "group_name": "Octocat admins", - "group_description": "The people who configure your octoworld." - }, - { - "group_id": "456", - "group_name": "Octocat docs members", - "group_description": "The people who make your octoworld come to life." - } - ] - } - }, - "team-items-response-if-child-teams-exist": { - "value": [ - { - "id": 2, - "node_id": "MDQ6VGVhbTI=", - "url": "https://api.github.com/teams/2", - "name": "Original Roster", - "slug": "original-roster", - "description": "Started it all.", - "privacy": "closed", - "permission": "admin", - "members_url": "https://api.github.com/teams/2/members{/member}", - "repositories_url": "https://api.github.com/teams/2/repos", - "parent": { - "id": 1, - "node_id": "MDQ6VGVhbTE=", - "url": "https://api.github.com/teams/1", - "html_url": "https://github.com/orgs/github/teams/justice-league", - "name": "Justice League", - "slug": "justice-league", - "description": "A great team.", - "privacy": "closed", - "permission": "admin", - "members_url": "https://api.github.com/teams/1/members{/member}", - "repositories_url": "https://api.github.com/teams/1/repos" + "organization": { + "members": "read" + }, + "repository": { + "metadata": "read" + } }, - "html_url": "https://github.com/orgs/rails/teams/core" + "created_at": "2023-05-16T08:47:09.000-07:00", + "token_id": 98716, + "token_name": "Some Token", + "token_expired": false, + "token_expires_at": "2023-11-16T08:47:09.000-07:00", + "token_last_used_at": null } ] }, - "project-card": { - "value": { - "url": "https://api.github.com/projects/columns/cards/1478", - "id": 1478, - "node_id": "MDExOlByb2plY3RDYXJkMTQ3OA==", - "note": "Add payload for delete Project column", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2016-09-05T14:21:06Z", - "updated_at": "2016-09-05T14:20:22Z", - "archived": false, - "column_url": "https://api.github.com/projects/columns/367", - "content_url": "https://api.github.com/repos/api-playground/projects-test/issues/3", - "project_url": "https://api.github.com/projects/120" - } - }, - "project-column": { - "value": { - "url": "https://api.github.com/projects/columns/367", - "project_url": "https://api.github.com/projects/120", - "cards_url": "https://api.github.com/projects/columns/367/cards", - "id": 367, - "node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=", - "name": "To Do", - "created_at": "2016-09-05T14:18:44Z", - "updated_at": "2016-09-05T14:22:28Z" - } - }, - "project-card-items": { + "org-pat-grant-paginated": { "value": [ { - "url": "https://api.github.com/projects/columns/cards/1478", - "id": 1478, - "node_id": "MDExOlByb2plY3RDYXJkMTQ3OA==", - "note": "Add payload for delete Project column", - "creator": { + "id": 25381, + "owner": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", @@ -79932,55 +290225,75 @@ "type": "User", "site_admin": false }, - "created_at": "2016-09-05T14:21:06Z", - "updated_at": "2016-09-05T14:20:22Z", - "archived": false, - "column_url": "https://api.github.com/projects/columns/367", - "content_url": "https://api.github.com/repos/api-playground/projects-test/issues/3", - "project_url": "https://api.github.com/projects/120" + "repository_selection": "all", + "repositories_url": "https://api.github.com/organizations/652551/personal-access-tokens/25381/repositories", + "permissions": { + "organization": { + "members": "read" + }, + "repository": { + "metadata": "read" + } + }, + "access_granted_at": "2023-05-16T08:47:09.000-07:00", + "token_id": 98716, + "token_name": "Some Token", + "token_expired": false, + "token_expires_at": "2023-11-16T08:47:09.000-07:00", + "token_last_used_at": null } ] }, - "project-3": { + "org-private-registry-configurations-paginated": { "value": { - "owner_url": "https://api.github.com/repos/api-playground/projects-test", - "url": "https://api.github.com/projects/1002604", - "html_url": "https://github.com/api-playground/projects-test/projects/1", - "columns_url": "https://api.github.com/projects/1002604/columns", - "id": 1002604, - "node_id": "MDc6UHJvamVjdDEwMDI2MDQ=", - "name": "Projects Documentation", - "body": "Developer documentation project for the developer site.", - "number": 1, - "state": "open", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2011-04-10T20:09:31Z", - "updated_at": "2014-03-03T18:58:10Z" + "total_count": 1, + "configurations": [ + { + "name": "MAVEN_REPOSITORY_SECRET", + "registry_type": "maven_repository", + "username": "monalisa", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected" + } + ] } }, - "repository-collaborator-permission": { + "org-private-registry-configuration": { "value": { - "permission": "admin", - "user": { + "name": "MAVEN_REPOSITORY_SECRET", + "registry_type": "maven_repository", + "username": "monalisa", + "visibility": "private", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + } + }, + "org-private-registry-configuration-with-selected-repositories": { + "value": { + "name": "MAVEN_REPOSITORY_SECRET", + "registry_type": "maven_repository", + "username": "monalisa", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ], + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + } + }, + "private-registries-public-key": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + }, + "projects-v2": { + "value": { + "id": 2, + "node_id": "MDc6UHJvamVjdDEwMDI2MDM=", + "owner": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", @@ -79999,73 +290312,8 @@ "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false - } - } - }, - "project-column-items": { - "value": [ - { - "url": "https://api.github.com/projects/columns/367", - "project_url": "https://api.github.com/projects/120", - "cards_url": "https://api.github.com/projects/columns/367/cards", - "id": 367, - "node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=", - "name": "To Do", - "created_at": "2016-09-05T14:18:44Z", - "updated_at": "2016-09-05T14:22:28Z" - } - ] - }, - "rate-limit-overview": { - "value": { - "resources": { - "core": { - "limit": 5000, - "remaining": 4999, - "reset": 1372700873, - "used": 1 - }, - "search": { - "limit": 30, - "remaining": 18, - "reset": 1372697452, - "used": 12 - }, - "graphql": { - "limit": 5000, - "remaining": 4993, - "reset": 1372700389, - "used": 7 - }, - "integration_manifest": { - "limit": 5000, - "remaining": 4999, - "reset": 1551806725, - "used": 1 - }, - "code_scanning_upload": { - "limit": 500, - "remaining": 499, - "reset": 1551806725, - "used": 1 - } }, - "rate": { - "limit": 5000, - "remaining": 4999, - "reset": 1372700873, - "used": 1 - } - } - }, - "full-repository-default-response": { - "summary": "Default response", - "value": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { + "creator": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", @@ -80085,93 +290333,62 @@ "type": "User", "site_admin": false }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "language": null, - "forks_count": 9, - "forks": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues_count": 0, - "open_issues": 0, - "is_template": false, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "pull": true, - "push": false, - "admin": false + "title": "My Projects", + "description": "A board to manage my personal projects.", + "public": true, + "closed_at": null, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "number": 2, + "short_description": null, + "deleted_at": null, + "deleted_by": null, + "state": "open", + "latest_status_update": { + "id": 3, + "node_id": "PVTSU_lAECAQM", + "creator": { + "login": "hubot", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/hubot", + "html_url": "https://github.com/hubot", + "followers_url": "https://api.github.com/users/hubot/followers", + "following_url": "https://api.github.com/users/hubot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", + "organizations_url": "https://api.github.com/users/hubot/orgs", + "repos_url": "https://api.github.com/users/hubot/repos", + "events_url": "https://api.github.com/users/hubot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubot/received_events", + "type": "User", + "site_admin": false + }, + "body": "DONE", + "start_date": "2025-07-23", + "target_date": "2025-07-26", + "status": "COMPLETE", + "created_at": "2025-07-11T16:19:28Z", + "updated_at": "2025-07-11T16:19:28Z" }, - "allow_rebase_merge": true, - "template_repository": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World-Template", - "full_name": "octocat/Hello-World-Template", - "owner": { + "is_template": true + } + }, + "projects-v2-item-simple": { + "value": { + "id": 17, + "node_id": "PVTI_lADOANN5s84ACbL0zgBueEI", + "content": { + "id": 38, + "node_id": "I_kwDOANN5s85FtLts", + "title": "Example Draft Issue", + "body": "This is a draft issue in the project.", + "created_at": "2022-04-28T12:00:00Z", + "updated_at": "2022-04-28T12:00:00Z", + "user": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", @@ -80190,119 +290407,10 @@ "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false - }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World-Template", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World-Template", - "archive_url": "https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World-Template/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World-Template/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World-Template/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World-Template/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World-Template/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World-Template/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World-Template.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World-Template/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World-Template/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World-Template/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World-Template/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World-Template.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World-Template/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World-Template/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World-Template.git", - "mirror_url": "git:git.example.com/octocat/Hello-World-Template", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World-Template/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World-Template", - "homepage": "https://github.com", - "language": null, - "forks": 9, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues": 0, - "open_issues_count": 0, - "is_template": true, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" - }, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true - }, - "allow_rebase_merge": true, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0 - }, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit", - "node_id": "MDc6TGljZW5zZW1pdA==" + } }, - "organization": { + "content_type": "DraftIssue", + "creator": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", @@ -80319,18 +290427,459 @@ "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "Organization", + "type": "User", "site_admin": false }, - "parent": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { + "created_at": "2022-04-28T12:00:00Z", + "updated_at": "2022-04-28T12:00:00Z", + "archived_at": null, + "project_url": "https://api.github.com/users/octocat/projectsV2/1", + "item_url": "https://api.github.com/users/octocat/projectsV2/items/17" + } + }, + "projects-v2-field-items": { + "value": [ + { + "id": 12345, + "node_id": "PVTF_lADOABCD1234567890", + "name": "Priority", + "data_type": "single_select", + "project_url": "https://api.github.com/projects/67890", + "options": [ + { + "id": "option_1", + "name": { + "html": "Low", + "raw": "Low" + }, + "color": "GREEN", + "description": { + "html": "Low priority items", + "raw": "Low priority items" + } + }, + { + "id": "option_2", + "name": { + "html": "Medium", + "raw": "Medium" + }, + "color": "YELLOW", + "description": { + "html": "Medium priority items", + "raw": "Medium priority items" + } + }, + { + "id": "option_3", + "name": { + "html": "High", + "raw": "High" + }, + "color": "RED", + "description": { + "html": "High priority items", + "raw": "High priority items" + } + } + ], + "created_at": "2022-04-28T12:00:00Z", + "updated_at": "2022-04-28T12:00:00Z" + }, + { + "id": 67891, + "node_id": "PVTF_lADOABCD9876543210", + "name": "Status", + "data_type": "single_select", + "project_url": "https://api.github.com/projects/67890", + "options": [ + { + "id": "option_4", + "name": { + "html": "Todo", + "raw": "Todo" + }, + "color": "GRAY", + "description": { + "html": "Items to be worked on", + "raw": "Items to be worked on" + } + }, + { + "id": "option_5", + "name": { + "html": "In Progress", + "raw": "In Progress" + }, + "color": "BLUE", + "description": { + "html": "Items currently being worked on", + "raw": "Items currently being worked on" + } + }, + { + "id": "option_6", + "name": { + "html": "Done", + "raw": "Done" + }, + "color": "GREEN", + "description": { + "html": "Completed items", + "raw": "Completed items" + } + } + ], + "created_at": "2022-04-29T10:30:00Z", + "updated_at": "2022-04-29T10:30:00Z" + }, + { + "id": 24680, + "node_id": "PVTF_lADOABCD2468024680", + "name": "Team notes", + "data_type": "text", + "project_url": "https://api.github.com/projects/67890", + "created_at": "2022-05-15T08:00:00Z", + "updated_at": "2022-05-15T08:00:00Z" + }, + { + "id": 13579, + "node_id": "PVTF_lADOABCD1357913579", + "name": "Story points", + "data_type": "number", + "project_url": "https://api.github.com/projects/67890", + "created_at": "2022-06-01T14:30:00Z", + "updated_at": "2022-06-01T14:30:00Z" + }, + { + "id": 98765, + "node_id": "PVTF_lADOABCD9876598765", + "name": "Due date", + "data_type": "date", + "project_url": "https://api.github.com/projects/67890", + "created_at": "2022-06-10T09:15:00Z", + "updated_at": "2022-06-10T09:15:00Z" + }, + { + "id": 11223, + "node_id": "PVTF_lADOABCD1122311223", + "name": "Sprint", + "data_type": "iteration", + "project_url": "https://api.github.com/projects/67890", + "configuration": { + "duration": 14, + "start_day": 1, + "iterations": [ + { + "id": "iter_1", + "title": { + "html": "Sprint 1", + "raw": "Sprint 1" + }, + "start_date": "2022-07-01", + "duration": 14 + }, + { + "id": "iter_2", + "title": { + "html": "Sprint 2", + "raw": "Sprint 2" + }, + "start_date": "2022-07-15", + "duration": 14 + } + ] + }, + "created_at": "2022-06-20T16:45:00Z", + "updated_at": "2022-06-20T16:45:00Z" + } + ] + }, + "projects-v2-field-single-select-request": { + "summary": "Create a single select field", + "value": { + "name": "Priority", + "data_type": "single_select", + "single_select_options": [ + { + "name": { + "raw": "Low", + "html": "Low" + }, + "color": "GREEN", + "description": { + "raw": "Low priority items", + "html": "Low priority items" + } + }, + { + "name": { + "raw": "Medium", + "html": "Medium" + }, + "color": "YELLOW", + "description": { + "raw": "Medium priority items", + "html": "Medium priority items" + } + }, + { + "name": { + "raw": "High", + "html": "High" + }, + "color": "RED", + "description": { + "raw": "High priority items", + "html": "High priority items" + } + } + ] + } + }, + "projects-v2-field-iteration-request": { + "summary": "Create an iteration field", + "value": { + "name": "Sprint", + "data_type": "iteration", + "iteration_configuration": { + "start_day": 1, + "duration": 14, + "iterations": [ + { + "title": { + "raw": "Sprint 1", + "html": "Sprint 1" + }, + "start_date": "2022-07-01", + "duration": 14 + }, + { + "title": { + "raw": "Sprint 2", + "html": "Sprint 2" + }, + "start_date": "2022-07-15", + "duration": 14 + } + ] + } + } + }, + "projects-v2-field-text": { + "value": { + "id": 24680, + "node_id": "PVTF_lADOABCD2468024680", + "name": "Team notes", + "data_type": "text", + "project_url": "https://api.github.com/projects/67890", + "created_at": "2022-05-15T08:00:00Z", + "updated_at": "2022-05-15T08:00:00Z" + } + }, + "projects-v2-field-number": { + "value": { + "id": 13579, + "node_id": "PVTF_lADOABCD1357913579", + "name": "Story points", + "data_type": "number", + "project_url": "https://api.github.com/projects/67890", + "created_at": "2022-06-01T14:30:00Z", + "updated_at": "2022-06-01T14:30:00Z" + } + }, + "projects-v2-field-date": { + "value": { + "id": 98765, + "node_id": "PVTF_lADOABCD9876598765", + "name": "Due date", + "data_type": "date", + "project_url": "https://api.github.com/projects/67890", + "created_at": "2022-06-10T09:15:00Z", + "updated_at": "2022-06-10T09:15:00Z" + } + }, + "projects-v2-field-single-select": { + "value": { + "id": 12345, + "node_id": "PVTF_lADOABCD1234567890", + "name": "Priority", + "data_type": "single_select", + "project_url": "https://api.github.com/projects/67890", + "options": [ + { + "id": "option_1", + "name": { + "html": "Low", + "raw": "Low" + }, + "color": "GREEN", + "description": { + "html": "Low priority items", + "raw": "Low priority items" + } + }, + { + "id": "option_2", + "name": { + "html": "Medium", + "raw": "Medium" + }, + "color": "YELLOW", + "description": { + "html": "Medium priority items", + "raw": "Medium priority items" + } + }, + { + "id": "option_3", + "name": { + "html": "High", + "raw": "High" + }, + "color": "RED", + "description": { + "html": "High priority items", + "raw": "High priority items" + } + } + ], + "created_at": "2022-04-28T12:00:00Z", + "updated_at": "2022-04-28T12:00:00Z" + } + }, + "projects-v2-field-iteration": { + "value": { + "id": 11223, + "node_id": "PVTF_lADOABCD1122311223", + "name": "Sprint", + "data_type": "iteration", + "project_url": "https://api.github.com/projects/67890", + "configuration": { + "duration": 14, + "start_day": 1, + "iterations": [ + { + "id": "iter_1", + "title": { + "html": "Sprint 1", + "raw": "Sprint 1" + }, + "start_date": "2022-07-01", + "duration": 14 + }, + { + "id": "iter_2", + "title": { + "html": "Sprint 2", + "raw": "Sprint 2" + }, + "start_date": "2022-07-15", + "duration": 14 + } + ] + }, + "created_at": "2022-06-20T16:45:00Z", + "updated_at": "2022-06-20T16:45:00Z" + } + }, + "projects-v2-field": { + "value": { + "id": 12345, + "node_id": "PVTF_lADOABCD1234567890", + "name": "Priority", + "data_type": "single_select", + "project_url": "https://api.github.com/projects/67890", + "options": [ + { + "id": "option_1", + "name": { + "html": "Low", + "raw": "Low" + }, + "color": "GREEN", + "description": { + "html": "Low priority items", + "raw": "Low priority items" + } + }, + { + "id": "option_2", + "name": { + "html": "Medium", + "raw": "Medium" + }, + "color": "YELLOW", + "description": { + "html": "Medium priority items", + "raw": "Medium priority items" + } + }, + { + "id": "option_3", + "name": { + "html": "High", + "raw": "High" + }, + "color": "RED", + "description": { + "html": "High priority items", + "raw": "High priority items" + } + } + ], + "created_at": "2022-04-28T12:00:00Z", + "updated_at": "2022-04-28T12:00:00Z" + } + }, + "projects-v2-item-with-content": { + "value": { + "id": 13, + "node_id": "PVTI_lAAFAQ0", + "project_url": "https://api.github.com/orgs/github/projectsV2/1", + "content": { + "url": "https://api.github.com/repos/github/Hello-World/pulls/6", + "id": 10, + "node_id": "PR_kwABCg", + "html_url": "https://github.com/github/Hello-World/pull/6", + "diff_url": "https://github.com/github/Hello-World/pull/6.diff", + "patch_url": "https://github.com/github/Hello-World/pull/6.patch", + "issue_url": "https://api.github.com/repos/github/Hello-World/issues/6", + "number": 6, + "state": "open", + "locked": false, + "title": "Issue title", + "user": { + "login": "monalisa", + "id": 161, + "node_id": "U_kgDMoQ", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "body": "Issue body", + "created_at": "2025-08-01T18:44:50Z", + "updated_at": "2025-08-06T19:25:18Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": "98e25bad5878e54d22e5338cbc905dd2deedfa34", + "assignee": { "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", + "id": 175, + "node_id": "U_kgDMrw", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", @@ -80345,231 +290894,843 @@ "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "language": null, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "size": 108, - "default_branch": "master", - "open_issues_count": 0, - "is_template": true, - "topics": [ - "octocat", - "atom", - "electron", - "api" + "assignees": [ + { + "login": "octocat", + "id": 175, + "node_id": "U_kgDMrw", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true + "requested_reviewers": [ + { + "login": "monalisa", + "id": 2, + "node_id": "U_kgAC", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "requested_teams": [], + "labels": [ + { + "id": 19, + "node_id": "LA_kwABEw", + "url": "https://api.github.com/repos/github/Hello-World/labels/bug%20:bug:", + "name": "bug :bug:", + "color": "efe24f", + "default": false, + "description": "Something isn't working" + }, + { + "id": 26, + "node_id": "LA_kwABGg", + "url": "https://api.github.com/repos/github/Hello-World/labels/fun%20size%20%F0%9F%8D%AB", + "name": "fun size 🍫", + "color": "f29c24", + "default": false, + "description": "Extra attention is needed" + }, + { + "id": 33, + "node_id": "LA_kwABIQ", + "url": "https://api.github.com/repos/github/Hello-World/labels/%F0%9F%9A%92%20wontfix", + "name": "🚒 wontfix", + "color": "5891ce", + "default": false, + "description": "This will not be worked on" + } + ], + "milestone": { + "url": "https://api.github.com/repos/github/Hello-World/milestones/1", + "html_url": "https://github.com/github/Hello-World/milestone/1", + "labels_url": "https://api.github.com/repos/github/Hello-World/milestones/1/labels", + "id": 1, + "node_id": "MI_kwABAQ", + "number": 1, + "title": "Open milestone", + "description": null, + "creator": { + "login": "monalisa", + "id": 2, + "node_id": "U_kgAC", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "open_issues": 2, + "closed_issues": 1, + "state": "open", + "created_at": "2025-08-01T18:44:30Z", + "updated_at": "2025-08-06T19:14:15Z", + "due_on": null, + "closed_at": null + }, + "draft": false, + "commits_url": "https://api.github.com/repos/github/Hello-World/pulls/6/commits", + "review_comments_url": "https://api.github.com/repos/github/Hello-World/pulls/6/comments", + "review_comment_url": "https://api.github.com/repos/github/Hello-World/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/github/Hello-World/issues/6/comments", + "statuses_url": "https://api.github.com/repos/github/Hello-World/statuses/a3258d3434ecb2058b2784c8eb8610c2e9937a0d", + "head": { + "label": "github:branch-2ee3da8fde8a1adfe6d0809a1a414e4f", + "ref": "branch-2ee3da8fde8a1adfe6d0809a1a414e4f", + "sha": "a3258d3434ecb2058b2784c8eb8610c2e9937a0d", + "user": { + "login": "github", + "id": 5, + "node_id": "O_kgAF", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "repo": { + "id": 1, + "node_id": "R_kgAB", + "name": "Hello-World", + "full_name": "github/Hello-World", + "private": false, + "owner": { + "login": "github", + "id": 5, + "node_id": "O_kgAF", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/github/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/github/Hello-World", + "forks_url": "https://api.github.com/repos/github/Hello-World/forks", + "keys_url": "https://api.github.com/repos/github/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/github/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/github/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/github/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/github/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/github/Hello-World/events", + "assignees_url": "https://api.github.com/repos/github/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/github/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/github/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/github/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/github/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/github/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/github/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/github/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/github/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/github/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/github/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/github/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/github/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/github/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/github/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/github/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/github/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/github/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/github/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/github/Hello-World/merges", + "archive_url": "https://api.github.com/repos/github/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/github/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/github/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/github/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/github/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/github/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/github/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/github/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/github/Hello-World/deployments", + "created_at": "2025-08-01T18:44:14Z", + "updated_at": "2025-08-01T18:48:38Z", + "pushed_at": "2025-08-01T18:44:50Z", + "git_url": "git://github.localhost/github/Hello-World.git", + "ssh_url": "ssh://git@localhost:3035/github/Hello-World.git", + "clone_url": "https://github.com/github/Hello-World.git", + "svn_url": "https://github.com/github/Hello-World", + "homepage": null, + "size": 6, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "main" + } + }, + "base": { + "label": "github:branch-0f4ceb14cbe39e4786ffbabb776da599", + "ref": "branch-0f4ceb14cbe39e4786ffbabb776da599", + "sha": "9a9f5a8d77bdc2540412900d3c930fe36a82b5ed", + "user": { + "login": "github", + "id": 5, + "node_id": "O_kgAF", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "repo": { + "id": 1, + "node_id": "R_kgAB", + "name": "Hello-World", + "full_name": "github/Hello-World", + "private": false, + "owner": { + "login": "github", + "id": 5, + "node_id": "O_kgAF", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/github/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/github/Hello-World", + "forks_url": "https://api.github.com/repos/github/Hello-World/forks", + "keys_url": "https://api.github.com/repos/github/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/github/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/github/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/github/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/github/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/github/Hello-World/events", + "assignees_url": "https://api.github.com/repos/github/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/github/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/github/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/github/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/github/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/github/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/github/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/github/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/github/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/github/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/github/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/github/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/github/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/github/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/github/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/github/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/github/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/github/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/github/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/github/Hello-World/merges", + "archive_url": "https://api.github.com/repos/github/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/github/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/github/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/github/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/github/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/github/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/github/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/github/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/github/Hello-World/deployments", + "created_at": "2025-08-01T18:44:14Z", + "updated_at": "2025-08-01T18:48:38Z", + "pushed_at": "2025-08-01T18:44:50Z", + "git_url": "git://github.localhost/github/Hello-World.git", + "ssh_url": "ssh://git@localhost:3035/github/Hello-World.git", + "clone_url": "https://github.com/github/Hello-World.git", + "svn_url": "https://github.com/github/Hello-World", + "homepage": null, + "size": 6, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "main" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/github/Hello-World/pulls/6" + }, + "html": { + "href": "https://github.com/github/Hello-World/pull/6" + }, + "issue": { + "href": "https://api.github.com/repos/github/Hello-World/issues/6" + }, + "comments": { + "href": "https://api.github.com/repos/github/Hello-World/issues/6/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/github/Hello-World/pulls/6/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/github/Hello-World/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/github/Hello-World/pulls/6/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/github/Hello-World/statuses/a3258d3434ecb2058b2784c8eb8610c2e9937a0d" + } + }, + "author_association": "MEMBER", + "auto_merge": null, + "active_lock_reason": null + }, + "content_type": "PullRequest", + "creator": { + "login": "monalisa", + "id": 2, + "node_id": "U_kgAC", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "created_at": "2025-08-01T18:44:51Z", + "updated_at": "2025-08-06T19:25:18Z", + "archived_at": null, + "item_url": "https://api.github.com/orgs/github/projectsV2/1/items/13", + "fields": [ + { + "id": 1, + "name": "Title", + "type": "title", + "value": { + "raw": "It seemed to me that any civilization that had so far lost its head as to need to include a set of detailed instructions for use in a packet of toothpicks, was no longer a civilization in which I could live and stay sane.", + "html": "It seemed to me that any civilization that had so far lost its head as to need to include a set of detailed instructions for use in a packet of toothpicks, was no longer a civilization in which I could live and stay sane.", + "number": 6, + "url": "https://github.com/5/1/pull/6", + "issue_id": 12, + "state": "open", + "state_reason": null, + "is_draft": false + } + }, + { + "id": 2, + "name": "Assignees", + "type": "assignees", + "value": [ + { + "login": "octocat", + "id": 175, + "node_id": "U_kgDMrw", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ] + }, + { + "id": 3, + "name": "Status", + "type": "single_select", + "value": { + "id": "98236657", + "name": { + "raw": "Done", + "html": "Done" + }, + "color": "PURPLE", + "description": { + "raw": "This has been completed", + "html": "This has been completed" + } + } + }, + { + "id": 4, + "name": "Labels", + "type": "labels", + "value": [ + { + "id": 19, + "node_id": "LA_kwABEw", + "url": "https://api.github.com/repos/github/Hello-World/labels/bug%20:bug:", + "name": "bug :bug:", + "color": "efe24f", + "default": false, + "description": "Something isn't working" + }, + { + "id": 26, + "node_id": "LA_kwABGg", + "url": "https://api.github.com/repos/github/Hello-World/labels/fun%20size%20%F0%9F%8D%AB", + "name": "fun size 🍫", + "color": "f29c24", + "default": false, + "description": "Extra attention is needed" + }, + { + "id": 33, + "node_id": "LA_kwABIQ", + "url": "https://api.github.com/repos/github/Hello-World/labels/%F0%9F%9A%92%20wontfix", + "name": "🚒 wontfix", + "color": "5891ce", + "default": false, + "description": "This will not be worked on" + } + ] + }, + { + "id": 5, + "name": "Linked pull requests", + "type": "linked_pull_requests", + "value": [] + }, + { + "id": 6, + "name": "Milestone", + "type": "milestone", + "value": { + "url": "https://api.github.com/repos/github/Hello-World/milestones/1", + "html_url": "https://github.com/github/Hello-World/milestone/1", + "labels_url": "https://api.github.com/repos/github/Hello-World/milestones/1/labels", + "id": 1, + "node_id": "MI_kwABAQ", + "number": 1, + "title": "Open milestone", + "description": null, + "creator": { + "login": "octocat", + "id": 175, + "node_id": "U_kgDMrw", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "open_issues": 2, + "closed_issues": 1, + "state": "open", + "created_at": "2025-08-01T18:44:30Z", + "updated_at": "2025-08-06T19:14:15Z", + "due_on": null, + "closed_at": null + } }, - "allow_rebase_merge": true, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" + { + "id": 7, + "name": "Repository", + "type": "repository", + "value": { + "id": 1, + "node_id": "R_kgAB", + "name": "Hello-World", + "full_name": "github/Hello-World", + "private": false, + "owner": { + "login": "github", + "id": 5, + "node_id": "O_kgAF", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/github/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/github/Hello-World", + "forks_url": "https://api.github.com/repos/github/Hello-World/forks", + "keys_url": "https://api.github.com/repos/github/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/github/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/github/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/github/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/github/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/github/Hello-World/events", + "assignees_url": "https://api.github.com/repos/github/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/github/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/github/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/github/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/github/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/github/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/github/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/github/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/github/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/github/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/github/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/github/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/github/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/github/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/github/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/github/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/github/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/github/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/github/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/github/Hello-World/merges", + "archive_url": "https://api.github.com/repos/github/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/github/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/github/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/github/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/github/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/github/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/github/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/github/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/github/Hello-World/deployments" + } }, - "forks": 1, - "open_issues": 1, - "watchers": 1 - }, - "source": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false + { + "id": 8, + "name": "Type", + "type": "issue_type", + "value": null }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "language": null, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "size": 108, - "default_branch": "master", - "open_issues_count": 0, - "is_template": true, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true + { + "id": 9, + "name": "Reviewers", + "type": "reviewers", + "value": [ + { + "type": "ReviewRequest", + "status": "pending", + "reviewer": { + "avatarUrl": "https://github.com/images/error/octocat_happy.gif", + "id": 2, + "login": "monalisa", + "url": "https://github.com/monalisa", + "name": "monalisa", + "type": "User" + } + } + ] }, - "allow_rebase_merge": true, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" + { + "id": 10, + "name": "Parent issue", + "type": "parent_issue", + "value": null }, - "forks": 1, - "open_issues": 1, - "watchers": 1 + { + "id": 11, + "name": "Sub-issues progress", + "type": "sub_issues_progress", + "value": null + } + ] + } + }, + "projects-v2-view": { + "value": { + "id": 1, + "number": 1, + "name": "Sprint Board", + "layout": "board", + "node_id": "PVTV_lADOANN5s84ACbL0zgBueEI", + "project_url": "https://api.github.com/orgs/octocat/projectsV2/1", + "html_url": "https://github.com/orgs/octocat/projects/1/views/1", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2022-04-28T12:00:00Z", + "updated_at": "2022-04-28T12:00:00Z", + "filter": "is:issue is:open", + "visible_fields": [ + 123, + 456, + 789 + ], + "sort_by": [ + [ + 123, + "asc" + ], + [ + 456, + "desc" + ] + ], + "group_by": [ + 123 + ], + "vertical_group_by": [ + 456 + ] + } + }, + "custom-properties": { + "value": [ + { + "property_name": "environment", + "url": "https://api.github.com/orgs/github/properties/schema/environment", + "source_type": "organization", + "value_type": "single_select", + "required": true, + "default_value": "production", + "description": "Prod or dev environment", + "allowed_values": [ + "production", + "development" + ], + "values_editable_by": "org_actors" + }, + { + "property_name": "service", + "url": "https://api.github.com/orgs/github/properties/schema/service", + "source_type": "organization", + "value_type": "string" + }, + { + "property_name": "team", + "url": "https://api.github.com/orgs/github/properties/schema/team", + "source_type": "organization", + "value_type": "string", + "description": "Team owning the repository" + } + ] + }, + "custom-property": { + "value": { + "property_name": "environment", + "url": "https://api.github.com/orgs/github/properties/schema/environment", + "source_type": "organization", + "value_type": "single_select", + "required": true, + "default_value": "production", + "description": "Prod or dev environment", + "allowed_values": [ + "production", + "development" + ] + } + }, + "org-repo-custom-property-values": { + "value": [ + { + "repository_id": 1296269, + "repository_name": "Hello-World", + "repository_full_name": "octocat/Hello-World", + "properties": [ + { + "property_name": "environment", + "value": "production" + }, + { + "property_name": "service", + "value": "web" + }, + { + "property_name": "team", + "value": "octocat" + } + ] } + ] + }, + "org-repo-update-custom-property-values": { + "value": { + "repository_names": [ + "Hello-World", + "octo-repo" + ], + "properties": [ + { + "property_name": "environment", + "value": "production" + }, + { + "property_name": "service", + "value": "web" + }, + { + "property_name": "team", + "value": "octocat" + } + ] } }, - "full-repository-response-with-scarlet-witch-preview-media-type": { - "summary": "Response with scarlet-witch-preview media type", + "full-repository": { "value": { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", @@ -80642,6 +291803,14 @@ "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", "svn_url": "https://svn.github.com/octocat/Hello-World", "homepage": "https://github.com", + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, "language": null, "forks_count": 9, "forks": 9, @@ -80803,15 +291972,10 @@ "allow_auto_merge": false, "delete_branch_on_merge": true, "allow_merge_commit": true, + "allow_forking": true, + "web_commit_signoff_required": false, "subscribers_count": 42, "network_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit", - "node_id": "MDc6TGljZW5zZW1pdA==" - }, "organization": { "login": "octocat", "id": 1, @@ -81075,16 +292239,1282 @@ "forks": 1, "open_issues": 1, "watchers": 1 + } + } + }, + "org-ruleset-items": { + "value": [ + { + "id": 21, + "name": "super cool ruleset", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "node_id": "RRS_lACkVXNlcgQB", + "_links": { + "self": { + "href": "https://api.github.com/orgs/my-org/rulesets/21" + }, + "html": { + "href": "https://github.com/organizations/my-org/settings/rules/21" + } + }, + "created_at": "2023-07-15T08:43:03Z", + "updated_at": "2023-08-23T16:29:47Z" }, - "code_of_conduct": { - "key": "other", - "name": "Other", - "html_url": "https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md", - "url": "https://api.github.com/repos/github/docs/community/code_of_conduct" + { + "id": 432, + "name": "Another ruleset", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "node_id": "RRS_lACkVXNlcgQQ", + "_links": { + "self": { + "href": "https://api.github.com/orgs/my-org/rulesets/432" + }, + "html": { + "href": "https://github.com/organizations/my-org/settings/rules/432" + } + }, + "created_at": "2023-08-15T08:43:03Z", + "updated_at": "2023-09-23T16:29:47Z" + } + ] + }, + "org-ruleset": { + "value": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ], + "node_id": "RRS_lACkVXNlcgQB", + "_links": { + "self": { + "href": "https://api.github.com/orgs/my-org/rulesets/21" + }, + "html": { + "href": "https://github.com/organizations/my-org/settings/rules/21" + } + }, + "created_at": "2023-08-15T08:43:03Z", + "updated_at": "2023-09-23T16:29:47Z" + } + }, + "rule-suite-items": { + "value": [ + { + "id": 21, + "actor_id": 12, + "actor_name": "octocat", + "before_sha": "893f768e172fb1bc9c5d6f3dd48557e45f14e01d", + "after_sha": "dedd88641a362b6b4ea872da4847d6131a164d01", + "ref": "refs/heads/i-see-everything", + "repository_id": 404, + "repository_name": "octo-repo", + "pushed_at": "2023-07-06T08:43:03Z", + "result": "bypass" + }, + { + "id": 25, + "actor_id": 11, + "actor_name": "not-octocat", + "before_sha": "48994e4e01ccc943624c6231f172702b82b233cc", + "after_sha": "ecfd5a1025fa271a33ca5608d089476a2df3c9a1", + "ref": "refs/heads/i-am-everything", + "repository_id": 404, + "repository_name": "octo-repo", + "pushed_at": "2023-07-07T08:43:03Z", + "result": "pass", + "evaluation_result": "fail" } + ] + }, + "rule-suite": { + "value": { + "id": 21, + "actor_id": 12, + "actor_name": "octocat", + "before_sha": "893f768e172fb1bc9c5d6f3dd48557e45f14e01d", + "after_sha": "dedd88641a362b6b4ea872da4847d6131a164d01", + "ref": "refs/heads/i-see-everything", + "repository_id": 404, + "repository_name": "octo-repo", + "pushed_at": "2023-07-06T08:43:03Z", + "result": "bypass", + "evaluation_result": "fail", + "rule_evaluations": [ + { + "rule_source": { + "type": "ruleset", + "id": 2, + "name": "Author email must be a GitHub email address" + }, + "enforcement": "active", + "result": "pass", + "rule_type": "commit_author_email_pattern" + }, + { + "rule_source": { + "type": "protected_branch" + }, + "enforcement": "active", + "result": "fail", + "rule_type": "pull_request", + "details": "Changes must be made through a pull request." + }, + { + "rule_source": { + "type": "ruleset", + "id": 3, + "name": "Evaluate commit message pattern" + }, + "enforcement": "evaluate", + "result": "fail", + "rule_type": "commit_message_pattern" + } + ] } }, - "full-repository": { + "ruleset-history": { + "value": [ + { + "version_id": 3, + "actor": { + "id": 1, + "type": "User" + }, + "updated_at": "2024-10-23T16:29:47Z" + }, + { + "version_id": 2, + "actor": { + "id": 2, + "type": "User" + }, + "updated_at": "2024-09-23T16:29:47Z" + }, + { + "version_id": 1, + "actor": { + "id": 1, + "type": "User" + }, + "updated_at": "2024-08-23T16:29:47Z" + } + ] + }, + "org-ruleset-version-with-state": { + "value": { + "version_id": 3, + "actor": { + "id": 1, + "type": "User" + }, + "updated_at": "2024-10-23T16:29:47Z", + "state": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ] + } + } + }, + "organization-secret-scanning-alert-list": { + "value": [ + { + "number": 2, + "created_at": "2020-11-06T18:48:51Z", + "url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2", + "html_url": "https://github.com/owner/private-repo/security/secret-scanning/2", + "locations_url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2/locations", + "state": "resolved", + "resolution": "false_positive", + "resolved_at": "2020-11-07T02:47:13Z", + "resolved_by": { + "login": "monalisa", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://alambic.github.com/avatars/u/2?", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "secret_type": "adafruit_io_key", + "secret_type_display_name": "Adafruit IO Key", + "secret": "aio_XXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks" + }, + "push_protection_bypassed_by": { + "login": "monalisa", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://alambic.github.com/avatars/u/2?", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "push_protection_bypassed": true, + "push_protection_bypassed_at": "2020-11-06T21:48:51Z", + "push_protection_bypass_request_reviewer": { + "login": "octocat", + "id": 3, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://alambic.github.com/avatars/u/3?", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "push_protection_bypass_request_reviewer_comment": "Example response", + "push_protection_bypass_request_comment": "Example comment", + "push_protection_bypass_request_html_url": "https://github.com/owner/repo/secret_scanning_exemptions/1", + "resolution_comment": "Example comment", + "validity": "active", + "publicly_leaked": false, + "multi_repo": false, + "is_base64_encoded": false, + "first_location_detected": { + "path": "/example/secrets.txt", + "start_line": 1, + "end_line": 1, + "start_column": 1, + "end_column": 64, + "blob_sha": "af5626b4a114abcb82d63db7c8082c3c4756e51b", + "blob_url": "https://api.github.com/repos/octocat/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b", + "commit_sha": "f14d7debf9775f957cf4f1e8176da0786431f72b", + "commit_url": "https://api.github.com/repos/octocat/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b" + }, + "has_more_locations": true, + "assigned_to": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + }, + "secret-scanning-pattern-configuration": { + "value": { + "pattern_config_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", + "provider_pattern_overrides": [ + { + "token_type": "GITHUB_PERSONAL_ACCESS_TOKEN", + "slug": "github_personal_access_token_legacy_v2", + "display_name": "GitHub Personal Access Token (Legacy v2)", + "alert_total": 15, + "alert_total_percentage": 36, + "false_positives": 2, + "false_positive_rate": 13, + "bypass_rate": 13, + "default_setting": "enabled", + "setting": "enabled", + "enterprise_setting": "enabled" + } + ], + "custom_pattern_overrides": [ + { + "token_type": "cp_2", + "custom_pattern_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", + "slug": "custom-api-key", + "display_name": "Custom API Key", + "alert_total": 15, + "alert_total_percentage": 36, + "false_positives": 3, + "false_positive_rate": 20, + "bypass_rate": 20, + "default_setting": "disabled", + "setting": "enabled" + } + ] + } + }, + "list-repository-advisories": { + "value": [ + { + "ghsa_id": "GHSA-abcd-1234-efgh", + "cve_id": "CVE-2050-00000", + "url": "https://api.github.com/repos/repo/a-package/security-advisories/GHSA-abcd-1234-efgh", + "html_url": "https://github.com/repo/a-package/security/advisories/GHSA-abcd-1234-efgh", + "summary": "A short summary of the advisory.", + "description": "A detailed description of what the advisory entails.", + "severity": "critical", + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "publisher": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-abcd-1234-efgh" + }, + { + "type": "CVE", + "value": "CVE-2050-00000" + } + ], + "state": "published", + "created_at": "2020-01-01T00:00:00Z", + "updated_at": "2020-01-02T00:00:00Z", + "published_at": "2020-01-03T00:00:00Z", + "closed_at": null, + "withdrawn_at": null, + "submission": null, + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "a-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.1", + "patched_versions": "1.0.1", + "vulnerable_functions": [ + "function1" + ] + }, + { + "package": { + "ecosystem": "pip", + "name": "another-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.2", + "patched_versions": "1.0.2", + "vulnerable_functions": [ + "function2" + ] + } + ], + "cvss": { + "vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", + "score": 9.8 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", + "score": 9.8 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 9.3 + } + }, + "cwes": [ + { + "cwe_id": "CWE-123", + "name": "A CWE" + } + ], + "cwe_ids": [ + "CWE-123" + ], + "credits": [ + { + "login": "octocat", + "type": "analyst" + } + ], + "credits_detailed": [ + { + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "type": "analyst", + "state": "accepted" + } + ], + "collaborating_users": [ + { + "login": "octokitten", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octokitten_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octokitten", + "html_url": "https://github.com/octokitten", + "followers_url": "https://api.github.com/users/octokitten/followers", + "following_url": "https://api.github.com/users/octokitten/following{/other_user}", + "gists_url": "https://api.github.com/users/octokitten/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octokitten/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octokitten/subscriptions", + "organizations_url": "https://api.github.com/users/octokitten/orgs", + "repos_url": "https://api.github.com/users/octokitten/repos", + "events_url": "https://api.github.com/users/octokitten/events{/privacy}", + "received_events_url": "https://api.github.com/users/octokitten/received_events", + "type": "User", + "site_admin": false + } + ], + "collaborating_teams": [ + { + "name": "Justice League", + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "permission": "admin", + "parent": null + } + ], + "private_fork": null + }, + { + "ghsa_id": "GHSA-1234-5678-9012", + "cve_id": "CVE-2051-0000", + "url": "https://api.github.com/repos/repo/a-package/security-advisories/GHSA-1234-5678-9012", + "html_url": "https://github.com/repo/a-package/security/advisories/GHSA-1234-5678-9012", + "summary": "A short summary of the advisory.", + "description": "A detailed description of what the advisory entails.", + "severity": "low", + "author": { + "login": "monauser", + "id": 2, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/monauser", + "html_url": "https://github.com/monauser", + "followers_url": "https://api.github.com/users/monauser/followers", + "following_url": "https://api.github.com/users/monauser/following{/other_user}", + "gists_url": "https://api.github.com/users/monauser/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monauser/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monauser/subscriptions", + "organizations_url": "https://api.github.com/users/monauser/orgs", + "repos_url": "https://api.github.com/users/monauser/repos", + "events_url": "https://api.github.com/users/monauser/events{/privacy}", + "received_events_url": "https://api.github.com/users/monauser/received_events", + "type": "User", + "site_admin": false + }, + "publisher": { + "login": "monalisa", + "id": 3, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": false + }, + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-1234-5678-9012" + }, + { + "type": "CVE", + "value": "CVE-2051-00000" + } + ], + "state": "published", + "created_at": "2020-01-03T00:00:00Z", + "updated_at": "2020-01-04T00:00:00Z", + "published_at": "2020-01-04T00:00:00Z", + "closed_at": null, + "withdrawn_at": null, + "submission": { + "accepted": true + }, + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "a-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.1", + "patched_versions": "1.0.1", + "vulnerable_functions": [ + "function1" + ] + }, + { + "package": { + "ecosystem": "pip", + "name": "another-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.2", + "patched_versions": "1.0.2", + "vulnerable_functions": [ + "function2" + ] + } + ], + "cvss": { + "vector_string": "AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N", + "score": 1.6 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N", + "score": 1.6 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 7.1 + } + }, + "cwes": [ + { + "cwe_id": "CWE-456", + "name": "A CWE 2.0" + } + ], + "cwe_ids": [ + "CWE-456" + ], + "credits": [ + { + "login": "monauser", + "type": "reporter" + } + ], + "credits_detailed": [ + { + "user": { + "login": "monauser", + "id": 2, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/monauser", + "html_url": "https://github.com/monauser", + "followers_url": "https://api.github.com/users/monauser/followers", + "following_url": "https://api.github.com/users/monauser/following{/other_user}", + "gists_url": "https://api.github.com/users/monauser/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monauser/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monauser/subscriptions", + "organizations_url": "https://api.github.com/users/monauser/orgs", + "repos_url": "https://api.github.com/users/monauser/repos", + "events_url": "https://api.github.com/users/monauser/events{/privacy}", + "received_events_url": "https://api.github.com/users/monauser/received_events", + "type": "User", + "site_admin": false + }, + "type": "reporter", + "state": "accepted" + } + ], + "collaborating_users": [ + { + "login": "octokitten", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octokitten_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octokitten", + "html_url": "https://github.com/octokitten", + "followers_url": "https://api.github.com/users/octokitten/followers", + "following_url": "https://api.github.com/users/octokitten/following{/other_user}", + "gists_url": "https://api.github.com/users/octokitten/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octokitten/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octokitten/subscriptions", + "organizations_url": "https://api.github.com/users/octokitten/orgs", + "repos_url": "https://api.github.com/users/octokitten/repos", + "events_url": "https://api.github.com/users/octokitten/events{/privacy}", + "received_events_url": "https://api.github.com/users/octokitten/received_events", + "type": "User", + "site_admin": false + } + ], + "collaborating_teams": [ + { + "name": "Justice League", + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "permission": "admin", + "parent": null + } + ], + "private_fork": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo-ghsa-1234-5678-9012", + "full_name": "octo-org/octo-repo-ghsa-1234-5678-9012", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/octo-repo-ghsa-1234-5678-9012", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/downloads", + "events_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/events", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/languages", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/merges", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/subscription", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/tags", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/teams", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-1234-5678-9012/git/trees{/sha}" + } + } + ] + }, + "network-configurations-paginated": { + "value": { + "total_count": 2, + "network_configurations": [ + { + "id": "123456789ABCDEF", + "name": "My network configuration", + "compute_service": "actions", + "network_settings_ids": [ + "23456789ABDCEF1", + "3456789ABDCEF12" + ], + "created_on": "2022-10-09T23:39:01Z" + }, + { + "id": "456789ABDCEF123", + "name": "My other configuration", + "compute_service": "none", + "network_settings_ids": [ + "56789ABDCEF1234", + "6789ABDCEF12345" + ], + "created_on": "2023-04-26T15:23:37Z" + } + ] + } + }, + "network-configuration": { + "value": { + "id": "123456789ABCDEF", + "name": "My network configuration", + "compute_service": "actions", + "network_settings_ids": [ + "23456789ABDCEF1", + "3456789ABDCEF12" + ], + "created_on": "2022-10-09T23:39:01Z" + } + }, + "network-settings": { + "value": { + "id": "220F78DACB92BBFBC5E6F22DE1CCF52309D", + "network_configuration_id": "934E208B3EE0BD60CF5F752C426BFB53562", + "name": "my_network_settings", + "subnet_id": "/subscriptions/14839728-3ad9-43ab-bd2b-fa6ad0f75e2a/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet", + "region": "eastus" + } + }, + "team-full": { + "value": { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null, + "members_count": 3, + "repos_count": 10, + "created_at": "2017-07-14T16:53:42Z", + "updated_at": "2017-08-17T12:37:15Z", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization", + "name": "github", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "is_verified": true, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "html_url": "https://github.com/octocat", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2017-08-17T12:37:15Z", + "type": "Organization" + } + } + }, + "team-membership-response-if-user-is-a-team-maintainer": { + "summary": "Response if user is a team maintainer", + "value": { + "url": "https://api.github.com/teams/1/memberships/octocat", + "role": "maintainer", + "state": "active" + } + }, + "team-membership-response-if-users-membership-with-team-is-now-pending": { + "summary": "Response if user's membership with team is now pending", + "value": { + "url": "https://api.github.com/teams/1/memberships/octocat", + "role": "member", + "state": "pending" + } + }, + "team-repository-alternative-response-with-repository-permissions": { + "value": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": false, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "role_name": "read", + "allow_rebase_merge": true, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "team-items-response-if-child-teams-exist": { + "value": [ + { + "id": 2, + "node_id": "MDQ6VGVhbTI=", + "url": "https://api.github.com/teams/2", + "name": "Original Roster", + "slug": "original-roster", + "description": "Started it all.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "permission": "admin", + "members_url": "https://api.github.com/teams/2/members{/member}", + "repositories_url": "https://api.github.com/teams/2/repos", + "parent": { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos" + }, + "html_url": "https://github.com/orgs/rails/teams/core" + } + ] + }, + "rate-limit-overview": { + "value": { + "resources": { + "core": { + "limit": 5000, + "used": 1, + "remaining": 4999, + "reset": 1691591363 + }, + "search": { + "limit": 30, + "used": 12, + "remaining": 18, + "reset": 1691591091 + }, + "graphql": { + "limit": 5000, + "used": 7, + "remaining": 4993, + "reset": 1691593228 + }, + "integration_manifest": { + "limit": 5000, + "used": 1, + "remaining": 4999, + "reset": 1691594631 + }, + "source_import": { + "limit": 100, + "used": 1, + "remaining": 99, + "reset": 1691591091 + }, + "code_scanning_upload": { + "limit": 500, + "used": 1, + "remaining": 499, + "reset": 1691594631 + }, + "actions_runner_registration": { + "limit": 10000, + "used": 0, + "remaining": 10000, + "reset": 1691594631 + }, + "scim": { + "limit": 15000, + "used": 0, + "remaining": 15000, + "reset": 1691594631 + }, + "dependency_snapshots": { + "limit": 100, + "used": 0, + "remaining": 100, + "reset": 1691591091 + }, + "code_search": { + "limit": 10, + "used": 0, + "remaining": 10, + "reset": 1691591091 + }, + "code_scanning_autofix": { + "limit": 10, + "used": 0, + "remaining": 10, + "reset": 1691591091 + } + }, + "rate": { + "limit": 5000, + "used": 1, + "remaining": 4999, + "reset": 1372700873 + } + } + }, + "full-repository-default-response": { + "summary": "Default response", "value": { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", @@ -81157,15 +293587,6 @@ "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", "svn_url": "https://svn.github.com/octocat/Hello-World", "homepage": "https://github.com", - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://github.com/licenses/mit" - }, - "language": null, "forks_count": 9, "forks": 9, "stargazers_count": 80, @@ -81187,6 +293608,7 @@ "has_wiki": true, "has_pages": false, "has_downloads": true, + "has_discussions": false, "archived": false, "disabled": false, "visibility": "public", @@ -81326,8 +293748,16 @@ "allow_auto_merge": false, "delete_branch_on_merge": true, "allow_merge_commit": true, + "allow_forking": true, "subscribers_count": 42, "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, "organization": { "login": "octocat", "id": 1, @@ -81542,7 +293972,6 @@ "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", "svn_url": "https://svn.github.com/octocat/Hello-World", "homepage": "https://github.com", - "language": null, "forks_count": 9, "stargazers_count": 80, "watchers_count": 80, @@ -81590,7 +294019,24 @@ }, "forks": 1, "open_issues": 1, - "watchers": 1 + "watchers": 1, + "security_and_analysis": { + "advanced_security": { + "status": "enabled" + }, + "secret_scanning": { + "status": "enabled" + }, + "secret_scanning_push_protection": { + "status": "disabled" + }, + "secret_scanning_non_provider_patterns": { + "status": "disabled" + }, + "secret_scanning_delegated_alert_dismissal": { + "status": "disabled" + } + } } } }, @@ -81608,19 +294054,35 @@ "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-03-21T14:59:22Z", - "updated_at": "2020-02-21T14:59:22Z" + "updated_at": "2020-02-21T14:59:22Z", + "digest": "sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c", + "workflow_run": { + "id": 2332938, + "repository_id": 1296269, + "head_repository_id": 1296269, + "head_branch": "main", + "head_sha": "328faa0536e6fef19753d9d91dc96a9931694ce3" + } }, { "id": 13, "node_id": "MDg6QXJ0aWZhY3QxMw==", - "name": "", + "name": "Test output", "size_in_bytes": 453, "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13", "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip", "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-03-21T14:59:22Z", - "updated_at": "2020-02-21T14:59:22Z" + "updated_at": "2020-02-21T14:59:22Z", + "digest": "sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c", + "workflow_run": { + "id": 2332942, + "repository_id": 1296269, + "head_repository_id": 1296269, + "head_branch": "main", + "head_sha": "178f4f6090b3fccad4a65b3e83d076a622d59652" + } } ] } @@ -81636,7 +294098,38 @@ "expired": false, "created_at": "2020-01-10T14:59:22Z", "expires_at": "2020-01-21T14:59:22Z", - "updated_at": "2020-01-21T14:59:22Z" + "updated_at": "2020-01-21T14:59:22Z", + "digest": "sha256:cfc3236bdad15b5898bca8408945c9e19e1917da8704adc20eaa618444290a8c", + "workflow_run": { + "id": 2332938, + "repository_id": 1296269, + "head_repository_id": 1296269, + "head_branch": "main", + "head_sha": "328faa0536e6fef19753d9d91dc96a9931694ce3" + } + } + }, + "actions-cache-usage": { + "value": { + "full_name": "octo-org/Hello-World", + "active_caches_size_in_bytes": 2322142, + "active_caches_count": 3 + } + }, + "actions-cache-list": { + "value": { + "total_count": 1, + "actions_caches": [ + { + "id": 505, + "ref": "refs/heads/main", + "key": "Linux-node-958aff96db2d75d67787d1e634ae70b659de937b", + "version": "73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0", + "last_accessed_at": "2019-01-24T22:45:36.000Z", + "created_at": "2019-01-24T22:45:36.000Z", + "size_in_bytes": 1024 + } + ] } }, "job": { @@ -81647,7 +294140,7 @@ "node_id": "MDEyOldvcmtmbG93IEpvYjM5OTQ0NDQ5Ng==", "head_sha": "f83a356604ae3c5d03e1b46ef4d1ca77d64a90b0", "url": "https://api.github.com/repos/octo-org/octo-repo/actions/jobs/399444496", - "html_url": "https://github.com/octo-org/octo-repo/runs/399444496", + "html_url": "https://github.com/octo-org/octo-repo/runs/29679449/jobs/399444496", "status": "completed", "conclusion": "success", "started_at": "2020-01-20T17:42:40Z", @@ -81679,7 +294172,7 @@ "completed_at": "2020-01-20T09:42:45.000-08:00" }, { - "name": "Run actions/cache@v2", + "name": "Run actions/cache@v3", "status": "completed", "conclusion": "success", "number": 4, @@ -81719,7 +294212,7 @@ "completed_at": "2020-01-20T09:44:39.000-08:00" }, { - "name": "Post actions/cache@v2", + "name": "Post actions/cache@v3", "status": "completed", "conclusion": "success", "number": 16, @@ -81735,14 +294228,76 @@ "completed_at": "2020-01-20T09:44:39.000-08:00" } ], - "check_run_url": "https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496" + "check_run_url": "https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496", + "labels": [ + "self-hosted", + "foo", + "bar" + ], + "runner_id": 1, + "runner_name": "my runner", + "runner_group_id": 2, + "runner_group_name": "my runner group", + "workflow_name": "CI", + "head_branch": "main" + } + }, + "oidc-custom-sub-repo": { + "value": { + "use_default": false, + "include_claim_keys": [ + "repo", + "context" + ] + } + }, + "actions-secret-paginated": { + "value": { + "total_count": 2, + "secrets": [ + { + "name": "GH_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + }, + { + "name": "GIST_ID", + "created_at": "2020-01-10T10:59:22Z", + "updated_at": "2020-01-11T11:59:22Z" + } + ] + } + }, + "actions-variables-paginated": { + "value": { + "total_count": 2, + "variables": [ + { + "name": "USERNAME", + "value": "octocat", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + }, + { + "name": "EMAIL", + "value": "octocat@github.com", + "created_at": "2020-01-10T10:59:22Z", + "updated_at": "2020-01-11T11:59:22Z" + } + ] } }, "actions-repository-permissions": { "value": { "enabled": true, "allowed_actions": "selected", - "selected_actions_url": "https://api.github.com/repositories/42/actions/permissions/selected-actions" + "selected_actions_url": "https://api.github.com/repositories/42/actions/permissions/selected-actions", + "sha_pinning_required": true + } + }, + "actions-workflow-access-to-repository": { + "value": { + "access_level": "organization" } }, "workflow-run-paginated": { @@ -81753,20 +294308,64 @@ "id": 30433642, "name": "Build", "node_id": "MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ==", + "check_suite_id": 42, + "check_suite_node_id": "MDEwOkNoZWNrU3VpdGU0Mg==", "head_branch": "master", "head_sha": "acb5820ced9479c074f688cc328bf03f341a511d", + "path": ".github/workflows/build.yml@main", "run_number": 562, "event": "push", + "display_title": "Update README.md", "status": "queued", "conclusion": null, "workflow_id": 159038, "url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642", "html_url": "https://github.com/octo-org/octo-repo/actions/runs/30433642", - "pull_requests": [ - - ], + "pull_requests": [], "created_at": "2020-01-22T19:33:08Z", "updated_at": "2020-01-22T19:33:08Z", + "actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "run_attempt": 1, + "run_started_at": "2020-01-22T19:33:08Z", + "triggering_actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, "jobs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs", "logs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs", "check_suite_url": "https://api.github.com/repos/octo-org/octo-repo/check-suites/414944374", @@ -81935,26 +294534,85 @@ "node_id": "MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ==", "check_suite_id": 42, "check_suite_node_id": "MDEwOkNoZWNrU3VpdGU0Mg==", - "head_branch": "master", + "head_branch": "main", "head_sha": "acb5820ced9479c074f688cc328bf03f341a511d", + "path": ".github/workflows/build.yml@main", "run_number": 562, "event": "push", + "display_title": "Update README.md", "status": "queued", "conclusion": null, "workflow_id": 159038, "url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642", "html_url": "https://github.com/octo-org/octo-repo/actions/runs/30433642", - "pull_requests": [ - - ], + "pull_requests": [], "created_at": "2020-01-22T19:33:08Z", "updated_at": "2020-01-22T19:33:08Z", + "actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "run_attempt": 1, + "referenced_workflows": [ + { + "path": "octocat/Hello-World/.github/workflows/deploy.yml@main", + "sha": "86e8bc9ecf7d38b1ed2d2cfb8eb87ba9b35b01db", + "ref": "refs/heads/main" + }, + { + "path": "octo-org/octo-repo/.github/workflows/report.yml@v2", + "sha": "79e9790903e1c3373b1a3e3a941d57405478a232", + "ref": "refs/tags/v2" + }, + { + "path": "octo-org/octo-repo/.github/workflows/secure.yml@1595d4b6de6a9e9751fb270a41019ce507d4099e", + "sha": "1595d4b6de6a9e9751fb270a41019ce507d4099e" + } + ], + "run_started_at": "2020-01-22T19:33:08Z", + "triggering_actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, "jobs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs", "logs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs", "check_suite_url": "https://api.github.com/repos/octo-org/octo-repo/check-suites/414944374", "artifacts_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/artifacts", "cancel_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/cancel", "rerun_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/rerun", + "previous_attempt_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/attempts/1", "workflow_url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/159038", "head_commit": { "id": "acb5820ced9479c074f688cc328bf03f341a511d", @@ -82158,7 +294816,7 @@ "node_id": "MDEyOldvcmtmbG93IEpvYjM5OTQ0NDQ5Ng==", "head_sha": "f83a356604ae3c5d03e1b46ef4d1ca77d64a90b0", "url": "https://api.github.com/repos/octo-org/octo-repo/actions/jobs/399444496", - "html_url": "https://github.com/octo-org/octo-repo/runs/399444496", + "html_url": "https://github.com/octo-org/octo-repo/runs/29679449/jobs/399444496", "status": "completed", "conclusion": "success", "started_at": "2020-01-20T17:42:40Z", @@ -82190,7 +294848,7 @@ "completed_at": "2020-01-20T09:42:45.000-08:00" }, { - "name": "Run actions/cache@v2", + "name": "Run actions/cache@v3", "status": "completed", "conclusion": "success", "number": 4, @@ -82230,7 +294888,7 @@ "completed_at": "2020-01-20T09:44:39.000-08:00" }, { - "name": "Post actions/cache@v2", + "name": "Post actions/cache@v3", "status": "completed", "conclusion": "success", "number": 16, @@ -82246,7 +294904,18 @@ "completed_at": "2020-01-20T09:44:39.000-08:00" } ], - "check_run_url": "https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496" + "check_run_url": "https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496", + "labels": [ + "self-hosted", + "foo", + "bar" + ], + "runner_id": 1, + "runner_name": "my runner", + "runner_group_id": 2, + "runner_group_name": "my runner group", + "workflow_name": "CI", + "head_branch": "main" } ] } @@ -82299,6 +294968,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -82318,8 +294988,7 @@ "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", "ref": "topic-branch", "task": "deploy", - "payload": { - }, + "payload": {}, "original_environment": "staging", "environment": "production", "description": "Deploy request from hubot", @@ -82357,37 +295026,54 @@ "billable": { "UBUNTU": { "total_ms": 180000, - "jobs": 1 + "jobs": 1, + "job_runs": [ + { + "job_id": 1, + "duration_ms": 180000 + } + ] }, "MACOS": { "total_ms": 240000, - "jobs": 4 + "jobs": 4, + "job_runs": [ + { + "job_id": 2, + "duration_ms": 60000 + }, + { + "job_id": 3, + "duration_ms": 60000 + }, + { + "job_id": 4, + "duration_ms": 60000 + }, + { + "job_id": 5, + "duration_ms": 60000 + } + ] }, "WINDOWS": { "total_ms": 300000, - "jobs": 2 + "jobs": 2, + "job_runs": [ + { + "job_id": 6, + "duration_ms": 150000 + }, + { + "job_id": 7, + "duration_ms": 150000 + } + ] } }, "run_duration_ms": 500000 } }, - "actions-secret-paginated": { - "value": { - "total_count": 2, - "secrets": [ - { - "name": "GH_TOKEN", - "created_at": "2019-08-10T14:59:22Z", - "updated_at": "2020-01-10T14:59:22Z" - }, - { - "name": "GIST_ID", - "created_at": "2020-01-10T10:59:22Z", - "updated_at": "2020-01-11T11:59:22Z" - } - ] - } - }, "actions-secret": { "value": { "name": "GH_TOKEN", @@ -82395,6 +295081,14 @@ "updated_at": "2020-01-10T14:59:22Z" } }, + "actions-variable": { + "value": { + "name": "USERNAME", + "value": "octocat", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2022-01-10T14:59:22Z" + } + }, "workflow-paginated": { "value": { "total_count": 2, @@ -82440,6 +295134,13 @@ "badge_url": "https://github.com/octo-org/octo-repo/workflows/CI/badge.svg" } }, + "workflow-dispatch-response": { + "value": { + "workflow_run_id": 1, + "run_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/1", + "html_url": "https://github.com/octo-org/octo-repo/actions/runs/1" + } + }, "workflow-usage": { "value": { "billable": { @@ -82455,12 +295156,108 @@ } } }, + "activity-items": { + "value": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "before": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "after": "827efc6d56897b048c772eb4087f854f46256132", + "ref": "refs/heads/main", + "pushed_at": "2011-01-26T19:06:43Z", + "push_type": "normal", + "pusher": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + }, + "attestation": { + "value": { + "bundle": { + "mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", + "verificationMaterial": { + "tlogEntries": [ + { + "logIndex": "97913980", + "logId": { + "keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0=" + }, + "kindVersion": { + "kind": "dsse", + "version": "0.0.1" + }, + "integratedTime": "1716998992", + "inclusionPromise": { + "signedEntryTimestamp": "MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL" + }, + "inclusionProof": { + "logIndex": "93750549", + "rootHash": "KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=", + "treeSize": "93750551", + "hashes": [ + "8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg=", + "nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck=", + "hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A=", + "MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM=", + "XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc=", + "Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY=", + "wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU=", + "uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s=", + "jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs=", + "xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ=", + "cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc=", + "sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ=", + "98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8=" + ], + "checkpoint": { + "envelope": "rekor.sigstore.dev - 2605736670972794746\\n93750551\\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\\n\\n— rekor.sigstore.dev wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\\n" + } + }, + "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiM2I1YzkwNDk5MGFiYzE4NjI1ZWE3Njg4MzE1OGEwZmI4MTEwMjM4MGJkNjQwZjI5OWJlMzYwZWVkOTMxNjYwYiJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjM4ZGNlZDJjMzE1MGU2OTQxMDViYjZiNDNjYjY3NzBiZTYzZDdhNGM4NjNiMTc2YTkwMmU1MGQ5ZTAyN2ZiMjMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVRQ0lFR0lHQW03Z1pWTExwc3JQY2puZEVqaXVjdEUyL2M5K2o5S0d2YXp6M3JsQWlBZDZPMTZUNWhrelJNM0liUlB6bSt4VDQwbU5RWnhlZmQ3bGFEUDZ4MlhMUT09IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VkcVZFTkRRbWhUWjBGM1NVSkJaMGxWVjFsNGNVdHpjazFUTTFOMmJEVkphalZQUkdaQ1owMUtUeTlKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwUmQwNVVTVFZOVkZsM1QxUlZlVmRvWTA1TmFsRjNUbFJKTlUxVVdYaFBWRlY1VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVmtiV2RvVGs1M00yNVZMMHQxWlZGbmMzQkhTRmMzWjJnNVdFeEVMMWRrU1RoWlRVSUtLekJ3TUZZMGJ6RnJTRzgyWTAweGMwUktaM0pEWjFCUlZYcDRjSFZaZFc4cmVIZFFTSGxzTDJ0RWVXWXpSVXhxYTJGUFEwSlVUWGRuWjFWMlRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVnhaa05RQ25aWVMwRjJVelJEWkdoUk1taGlXbGRLVTA5RmRsWnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMWRuV1VSV1VqQlNRVkZJTDBKR1FYZFViMXBOWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpPYzJGVE9XcGlSMnQyVEcxa2NBcGtSMmd4V1drNU0ySXpTbkphYlhoMlpETk5kbHBIVm5kaVJ6azFZbGRXZFdSRE5UVmlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVNR051Vm5WaGVrRTFDa0puYjNKQ1owVkZRVmxQTDAxQlJVSkNRM1J2WkVoU2QyTjZiM1pNTTFKMllUSldkVXh0Um1wa1IyeDJZbTVOZFZveWJEQmhTRlpwWkZoT2JHTnRUbllLWW01U2JHSnVVWFZaTWpsMFRVSTRSME5wYzBkQlVWRkNaemM0ZDBGUlNVVkZXR1IyWTIxMGJXSkhPVE5ZTWxKd1l6TkNhR1JIVG05TlJGbEhRMmx6UndwQlVWRkNaemM0ZDBGUlRVVkxSMXBvV2xkWmVWcEhVbXRQUkVacFRVUmplazVxWXpCUFJGRjRUVEpGTTFsNldUQk9iVTVyVFVkS2JWbDZTVEpaZWtGM0NsbFVRWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNRa0ZSUzFKSFZuZGlSemsxWWxkV2RXUkVRVlpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0ZrYW1KSGEzWUtXVEo0Y0UxQ05FZERhWE5IUVZGUlFtYzNPSGRCVVZsRlJVaEtiRnB1VFhaaFIxWm9Xa2hOZG1SSVNqRmliWE4zVDNkWlMwdDNXVUpDUVVkRWRucEJRZ3BEUVZGMFJFTjBiMlJJVW5kamVtOTJURE5TZG1FeVZuVk1iVVpxWkVkc2RtSnVUWFZhTW13d1lVaFdhV1JZVG14amJVNTJZbTVTYkdKdVVYVlpNamwwQ2sxR2QwZERhWE5IUVZGUlFtYzNPSGRCVVd0RlZHZDRUV0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRFd3lUbk5oVXpscVlrZHJka3h0WkhBS1pFZG9NVmxwT1ROaU0wcHlXbTE0ZG1RelRYWmFSMVozWWtjNU5XSlhWblZrUXpVMVlsZDRRV050Vm0xamVUbHZXbGRHYTJONU9UQmpibFoxWVhwQk5BcENaMjl5UW1kRlJVRlpUeTlOUVVWTFFrTnZUVXRIV21oYVYxbDVXa2RTYTA5RVJtbE5SR042VG1wak1FOUVVWGhOTWtVeldYcFpNRTV0VG10TlIwcHRDbGw2U1RKWmVrRjNXVlJCZDBoUldVdExkMWxDUWtGSFJIWjZRVUpEZDFGUVJFRXhibUZZVW05a1YwbDBZVWM1ZW1SSFZtdE5RMjlIUTJselIwRlJVVUlLWnpjNGQwRlJkMFZJUVhkaFlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2MyRlRPV3BpUjJ0M1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWdwRVVWRnhSRU5vYlZsWFZtMU5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBGSENrTnBjMGRCVVZGQ1p6YzRkMEZSTkVWRlozZFJZMjFXYldONU9XOWFWMFpyWTNrNU1HTnVWblZoZWtGYVFtZHZja0puUlVWQldVOHZUVUZGVUVKQmMwMEtRMVJKZUUxcVdYaE5la0V3VDFSQmJVSm5iM0pDWjBWRlFWbFBMMDFCUlZGQ1FtZE5SbTFvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhZ3BpUjJ0M1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVdEVRV2N4VDFSamQwNUVZM2hOVkVKalFtZHZja0puUlVWQldVOHZUVUZGVTBKRk5FMVVSMmd3Q21SSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVhbUpIYTNaWk1uaHdUSGsxYm1GWVVtOWtWMGwyWkRJNWVXRXlXbk5pTTJSNlRESlNiR05IZUhZS1pWY3hiR0p1VVhWbFZ6RnpVVWhLYkZwdVRYWmhSMVpvV2toTmRtUklTakZpYlhOM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmh0V1ZkV2JRcE5iVkpyV2tSbmVGbHFRVE5OZWxrelRrUm5NRTFVVG1oT01rMHlUa1JhYWxwRVFtbGFiVTE1VG0xTmQwMUhSWGROUTBWSFEybHpSMEZSVVVKbk56aDNDa0ZTVVVWRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1ZGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVTOUVSREZ2WkVoU2QyTjZiM1lLVERKa2NHUkhhREZaYVRWcVlqSXdkbGt5ZUhCTU1rNXpZVk01YUZrelVuQmlNalY2VEROS01XSnVUWFpQVkVrMFQxUkJNMDVVWXpGTmFUbG9aRWhTYkFwaVdFSXdZM2s0ZUUxQ1dVZERhWE5IUVZGUlFtYzNPSGRCVWxsRlEwRjNSMk5JVm1saVIyeHFUVWxIVEVKbmIzSkNaMFZGUVdSYU5VRm5VVU5DU0RCRkNtVjNRalZCU0dOQk0xUXdkMkZ6WWtoRlZFcHFSMUkwWTIxWFl6TkJjVXBMV0hKcVpWQkxNeTlvTkhCNVowTTRjRGR2TkVGQlFVZFFlRkl4ZW1KblFVRUtRa0ZOUVZORVFrZEJhVVZCS3pobmJGRkplRTlCYUZoQ1FVOVRObE1yT0ZweGQwcGpaSGQzVTNJdlZGZHBhSE16WkV4eFZrRjJiME5KVVVSaWVUbG9NUXBKWTNWRVJYSXJlbk5YYVV3NFVIYzFRMU5VZEd0c2RFbzBNakZ6UlRneFZuWjFOa0Z3VkVGTFFtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0VyQ2tSSU4xQXJhR2cwVmtoWFprTlhXSFJ5UzFSdlFrdDFZa0pyUzNCbVYwTlpVWGhxV0UweWRsWXZibEJ4WWxwR1dVOVdXazlpWlRaQlRuSm5lV1J2V1VNS1RVWlZUV0l6ZUhwelJrNVJXWFp6UlZsUGFUSkxibkoyUmpCMFoyOXdiVmhIVm05NmJsb3JjUzh5UVVsRVZ6bEdNVVUzV1RaWk1EWXhaVzkxUVZsa1NBcFhkejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn1dfX0=" + } + ], + "timestampVerificationData": {}, + "certificate": { + "rawBytes": "MIIGjTCCBhSgAwIBAgIUWYxqKsrMS3Svl5Ij5ODfBgMJO/IwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQwNTI5MTYwOTUyWhcNMjQwNTI5MTYxOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdmghNNw3nU/KueQgspGHW7gh9XLD/WdI8YMB+0p0V4o1kHo6cM1sDJgrCgPQUzxpuYuo+xwPHyl/kDyf3ELjkaOCBTMwggUvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUqfCPvXKAvS4CdhQ2hbZWJSOEvVowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wWgYDVR0RAQH/BFAwToZMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwGAYKKwYBBAGDvzABBAQKRGVwbG95bWVudDAVBgorBgEEAYO/MAEFBAdjbGkvY2xpMB4GCisGAQQBg78wAQYEEHJlZnMvaGVhZHMvdHJ1bmswOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMFwGCisGAQQBg78wAQkETgxMaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWxAcmVmcy9oZWFkcy90cnVuazA4BgorBgEEAYO/MAEKBCoMKGZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMCoGCisGAQQBg78wAQwEHAwaaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkwOAYKKwYBBAGDvzABDQQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCAGCisGAQQBg78wAQ4EEgwQcmVmcy9oZWFkcy90cnVuazAZBgorBgEEAYO/MAEPBAsMCTIxMjYxMzA0OTAmBgorBgEEAYO/MAEQBBgMFmh0dHBzOi8vZ2l0aHViLmNvbS9jbGkwGAYKKwYBBAGDvzABEQQKDAg1OTcwNDcxMTBcBgorBgEEAYO/MAESBE4MTGh0dHBzOi8vZ2l0aHViLmNvbS9jbGkvY2xpLy5naXRodWIvd29ya2Zsb3dzL2RlcGxveW1lbnQueW1sQHJlZnMvaGVhZHMvdHJ1bmswOAYKKwYBBAGDvzABEwQqDChmYWVmMmRkZDgxYjA3MzY3NDg0MTNhN2M2NDZjZDBiZmMyNmMwMGEwMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwTQYKKwYBBAGDvzABFQQ/DD1odHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9hY3Rpb25zL3J1bnMvOTI4OTA3NTc1Mi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGPxR1zbgAABAMASDBGAiEA+8glQIxOAhXBAOS6S+8ZqwJcdwwSr/TWihs3dLqVAvoCIQDby9h1IcuDEr+zsWiL8Pw5CSTtkltJ421sE81Vvu6ApTAKBggqhkjOPQQDAwNnADBkAjA+DH7P+hh4VHWfCWXtrKToBKubBkKpfWCYQxjXM2vV/nPqbZFYOVZObe6ANrgydoYCMFUMb3xzsFNQYvsEYOi2KnrvF0tgopmXGVoznZ+q/2AIDW9F1E7Y6Y061eouAYdHWw==" + } + }, + "dsseEnvelope": { + "payload": "eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19", + "payloadType": "application/vnd.in-toto+json", + "signatures": [ + { + "sig": "MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ==" + } + ] + } + } + } + }, "autolink-items": { "value": [ { "id": 1, "key_prefix": "TICKET-", - "url_template": "https://example.com/TICKET?query=" + "url_template": "https://example.com/TICKET?query=", + "is_alphanumeric": true } ] }, @@ -82468,7 +295265,8 @@ "value": { "id": 1, "key_prefix": "TICKET-", - "url_template": "https://example.com/TICKET?query=" + "url_template": "https://example.com/TICKET?query=", + "is_alphanumeric": true } }, "short-branch-with-protection-items": { @@ -82493,6 +295291,110 @@ } ] }, + "branch-get": { + "value": { + "name": "main", + "commit": { + "sha": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "node_id": "MDY6Q29tbWl0MTI5NjI2OTo3ZmQxYTYwYjAxZjkxYjMxNGY1OTk1NWE0ZTRkNGU4MGQ4ZWRmMTFk", + "commit": { + "author": { + "name": "The Octocat", + "email": "octocat@nowhere.com", + "date": "2012-03-06T23:06:50Z" + }, + "committer": { + "name": "The Octocat", + "email": "octocat@nowhere.com", + "date": "2012-03-06T23:06:50Z" + }, + "message": "Merge pull request #6 from Spaceghost/patch-1\n\nNew line at end of file.", + "tree": { + "sha": "b4eecafa9be2f2006ce1b709d6857b07069b4608", + "url": "https://api.github.com/repos/octocat/Hello-World/git/trees/b4eecafa9be2f2006ce1b709d6857b07069b4608" + }, + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "comment_count": 77, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null, + "verified_at": null + } + }, + "url": "https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "html_url": "https://github.com/octocat/Hello-World/commit/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d/comments", + "author": { + "login": "octocat", + "id": 583231, + "node_id": "MDQ6VXNlcjU4MzIzMQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "octocat", + "id": 583231, + "node_id": "MDQ6VXNlcjU4MzIzMQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "553c2077f0edc3d5dc5d17262f6aa498e69d6f8e", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e", + "html_url": "https://github.com/octocat/Hello-World/commit/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e" + }, + { + "sha": "762941318ee16e59dabbacb1b4049eec22f0d303", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/762941318ee16e59dabbacb1b4049eec22f0d303", + "html_url": "https://github.com/octocat/Hello-World/commit/762941318ee16e59dabbacb1b4049eec22f0d303" + } + ] + }, + "_links": { + "self": "https://api.github.com/repos/octocat/Hello-World/branches/main", + "html": "https://github.com/octocat/Hello-World/tree/main" + }, + "protected": false, + "protection": { + "enabled": false, + "required_status_checks": { + "enforcement_level": "off", + "contexts": [], + "checks": [] + } + }, + "protection_url": "https://api.github.com/repos/octocat/Hello-World/branches/main/protection" + } + }, "branch-protection": { "value": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection", @@ -82546,22 +295448,61 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } + ], + "apps": [ + { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": [ + "push", + "pull_request" + ] + } ] }, "dismiss_stale_reviews": true, "require_code_owner_reviews": true, - "required_approving_review_count": 2 + "required_approving_review_count": 2, + "require_last_push_approval": true }, "restrictions": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions", "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users", "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", - "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", + "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/apps", "users": [ { "login": "octocat", @@ -82594,6 +295535,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -82649,6 +295591,84 @@ }, "required_conversation_resolution": { "enabled": true + }, + "lock_branch": { + "enabled": true + }, + "allow_fork_syncing": { + "enabled": true + } + } + }, + "branch-protection-update": { + "value": { + "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection", + "required_status_checks": { + "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_status_checks", + "strict": true, + "contexts": [ + "continuous-integration/travis-ci" + ], + "contexts_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_status_checks/contexts", + "checks": [ + { + "context": "continuous-integration/travis-ci", + "app_id": null + } + ] + }, + "restrictions": { + "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions", + "users_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/users", + "teams_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/teams", + "apps_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/apps", + "users": [], + "teams": [], + "apps": [] + }, + "required_pull_request_reviews": { + "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_pull_request_reviews", + "dismiss_stale_reviews": true, + "require_code_owner_reviews": true, + "required_approving_review_count": 2, + "require_last_push_approval": true, + "dismissal_restrictions": { + "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions", + "users_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions/users", + "teams_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions/teams", + "users": [], + "teams": [], + "apps": [] + } + }, + "required_signatures": { + "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_signatures", + "enabled": false + }, + "enforce_admins": { + "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/enforce_admins", + "enabled": true + }, + "required_linear_history": { + "enabled": true + }, + "allow_force_pushes": { + "enabled": true + }, + "allow_deletions": { + "enabled": true + }, + "block_creations": { + "enabled": true + }, + "required_conversation_resolution": { + "enabled": true + }, + "lock_branch": { + "enabled": true + }, + "allow_fork_syncing": { + "enabled": true } } }, @@ -82697,16 +295717,55 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } + ], + "apps": [ + { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": [ + "push", + "pull_request" + ] + } ] }, "dismiss_stale_reviews": true, "require_code_owner_reviews": true, - "required_approving_review_count": 2 + "required_approving_review_count": 2, + "require_last_push_approval": true } }, "protected-branch-admin-enforced": { @@ -82730,7 +295789,7 @@ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions", "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users", "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", - "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", + "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/apps", "users": [ { "login": "octocat", @@ -82763,6 +295822,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -82880,7 +295940,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null }, "comment_count": 0 }, @@ -82961,7 +296022,7 @@ "id": 4, "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", "node_id": "MDg6Q2hlY2tSdW40", - "external_id": "", + "external_id": "42", "url": "https://api.github.com/repos/github/hello-world/check-runs/4", "html_url": "https://github.com/github/hello-world/runs/4", "details_url": "https://example.com", @@ -83048,6 +296109,99 @@ ] } }, + "check-run-example-of-in-progress-conclusion": { + "summary": "Response for in_progress conclusion", + "value": { + "id": 4, + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "node_id": "MDg6Q2hlY2tSdW40", + "external_id": "42", + "url": "https://api.github.com/repos/github/hello-world/check-runs/4", + "html_url": "https://github.com/github/hello-world/runs/4", + "details_url": "https://example.com", + "status": "in_progress", + "conclusion": null, + "started_at": "2018-05-04T01:14:52Z", + "completed_at": null, + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notice.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations_count": 2, + "annotations_url": "https://api.github.com/repos/github/hello-world/check-runs/4/annotations" + }, + "name": "mighty_readme", + "check_suite": { + "id": 5 + }, + "app": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": [ + "push", + "pull_request" + ] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/github/hello-world/pulls/1", + "id": 1934, + "number": 3956, + "head": { + "ref": "say-hello", + "sha": "3dca65fa3e8d4b3da3f3d056c59aee1c50f41390", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "master", + "sha": "e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + } + } + ] + } + }, "check-run": { "value": { "id": 4, @@ -83167,9 +296321,7 @@ "url": "https://api.github.com/repos/github/hello-world/check-suites/5", "before": "146e867f55c26428e5f9fade55a9bbf5e95a7912", "after": "d6fde92930d4715a2b49857d24b940956b26d2d3", - "pull_requests": [ - - ], + "pull_requests": [], "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "app": { @@ -83806,12 +296958,18 @@ "url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/4", "html_url": "https://github.com/octocat/hello-world/code-scanning/4", "state": "open", + "fixed_at": null, "dismissed_by": null, "dismissed_at": null, "dismissed_reason": null, + "dismissed_comment": null, "rule": { "id": "js/zipslip", "severity": "error", + "tags": [ + "security", + "external/cwe/cwe-022" + ], "description": "Arbitrary file write during zip extraction", "name": "js/zipslip" }, @@ -83823,6 +296981,7 @@ "most_recent_instance": { "ref": "refs/heads/main", "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "environment": "{}", "state": "open", "commit_sha": "39406e42cb832f683daa691dd652a8dc36ee8930", @@ -83848,6 +297007,7 @@ "url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3", "html_url": "https://github.com/octocat/hello-world/code-scanning/3", "state": "dismissed", + "fixed_at": null, "dismissed_by": { "login": "octocat", "id": 1, @@ -83870,9 +297030,14 @@ }, "dismissed_at": "2020-02-14T12:29:18Z", "dismissed_reason": "false positive", + "dismissed_comment": "This alert is not actually correct, because there's a sanitizer included in the library.", "rule": { "id": "js/zipslip", "severity": "error", + "tags": [ + "security", + "external/cwe/cwe-022" + ], "description": "Arbitrary file write during zip extraction", "name": "js/zipslip" }, @@ -83884,6 +297049,7 @@ "most_recent_instance": { "ref": "refs/heads/main", "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "environment": "{}", "state": "open", "commit_sha": "39406e42cb832f683daa691dd652a8dc36ee8930", @@ -83897,9 +297063,7 @@ "start_column": 7, "end_column": 18 }, - "classifications": [ - - ] + "classifications": [] }, "instances_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/3/instances" } @@ -83912,6 +297076,7 @@ "url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42", "html_url": "https://github.com/octocat/hello-world/code-scanning/42", "state": "dismissed", + "fixed_at": null, "dismissed_by": { "login": "octocat", "id": 54933897, @@ -83934,6 +297099,7 @@ }, "dismissed_at": "2020-02-14T12:29:18Z", "dismissed_reason": "false positive", + "dismissed_comment": "This alert is not actually correct, because there's a sanitizer included in the library.", "rule": { "id": "js/zipslip", "severity": "error", @@ -83945,7 +297111,8 @@ "security", "external/cwe/cwe-022" ], - "help": "# Arbitrary file write during zip extraction (\"Zip Slip\")\\nExtracting files from a malicious zip archive without validating that the destination file path is within the destination directory can cause files outside the destination directory to be overwritten ..." + "help": "# Arbitrary file write during zip extraction (\"Zip Slip\")\\nExtracting files from a malicious zip archive without validating that the destination file path is within the destination directory can cause files outside the destination directory to be overwritten ...", + "help_uri": "https://codeql.github.com/" }, "tool": { "name": "CodeQL", @@ -83955,6 +297122,7 @@ "most_recent_instance": { "ref": "refs/heads/main", "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "environment": "{}", "state": "dismissed", "commit_sha": "39406e42cb832f683daa691dd652a8dc36ee8930", @@ -83972,8 +297140,7 @@ "test" ] }, - "instances_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42/instances", - "instances": null + "instances_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42/instances" } }, "code-scanning-alert-dismissed": { @@ -83983,6 +297150,7 @@ "url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42", "html_url": "https://github.com/octocat/hello-world/code-scanning/42", "state": "dismissed", + "fixed_at": null, "dismissed_by": { "login": "octocat", "id": 1, @@ -84005,6 +297173,7 @@ }, "dismissed_at": "2020-09-02T22:34:56Z", "dismissed_reason": "false positive", + "dismissed_comment": "This alert is not actually correct, because there's a sanitizer included in the library.", "rule": { "id": "js/zipslip", "severity": "error", @@ -84016,7 +297185,8 @@ "security", "external/cwe/cwe-022" ], - "help": "# Arbitrary file write during zip extraction (\"Zip Slip\")\\nExtracting files from a malicious zip archive without validating that the destination file path is within the destination directory can cause files outside the destination directory to be overwritten ..." + "help": "# Arbitrary file write during zip extraction (\"Zip Slip\")\\nExtracting files from a malicious zip archive without validating that the destination file path is within the destination directory can cause files outside the destination directory to be overwritten ...", + "help_uri": "https://codeql.github.com/" }, "tool": { "name": "CodeQL", @@ -84026,6 +297196,7 @@ "most_recent_instance": { "ref": "refs/heads/main", "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "environment": "{}", "state": "dismissed", "commit_sha": "39406e42cb832f683daa691dd652a8dc36ee8930", @@ -84046,13 +297217,48 @@ "instances_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/alerts/42/instances" } }, + "code-scanning-autofix": { + "value": { + "status": "success", + "description": "This fixes an XSS vulnerability by escaping the user input.", + "started_at": "2024-02-14T12:29:18Z" + } + }, + "code-scanning-bad-request": { + "value": { + "message": "The alert_number is not valid", + "documentation_url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-status-of-an-autofix-for-a-code-scanning-alert", + "status": "400" + } + }, + "code-scanning-autofix-pending": { + "value": { + "status": "pending", + "description": null, + "started_at": "2024-02-14T12:29:18Z" + } + }, + "code-scanning-autofix-commits": { + "value": { + "target_ref": "refs/heads/fix-bug", + "message": "Let's fix this 🪲!" + } + }, + "code-scanning-autofix-commits-response": { + "value": { + "target_ref": "refs/heads/main", + "sha": "178f4f6090b3fccad4a65b3e83d076a622d59652" + } + }, "code-scanning-alert-instances": { "value": [ { "ref": "refs/heads/main", "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "environment": "", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "state": "open", + "fixed_at": null, "commit_sha": "39406e42cb832f683daa691dd652a8dc36ee8930", "message": { "text": "This path depends on a user-provided value." @@ -84072,7 +297278,9 @@ "ref": "refs/pull/3740/merge", "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "environment": "", + "category": ".github/workflows/codeql-analysis.yml:CodeQL-Build", "state": "fixed", + "fixed_at": "2020-02-14T12:29:18Z", "commit_sha": "b09da05606e27f463a2b49287684b4ae777092f2", "message": { "text": "This suffix check is missing a length comparison to correctly handle lastIndexOf returning -1." @@ -84137,7 +297345,7 @@ ] }, "code-scanning-analysis-default": { - "summary": "Default response", + "summary": "application/json response", "value": { "ref": "refs/heads/main", "commit_sha": "c18c69115654ff0166991962832dc2bd7756e655", @@ -84160,6 +297368,57 @@ "warning": "" } }, + "code-scanning-analysis-sarif": { + "summary": "application/sarif+json response", + "value": { + "runs": [ + { + "tool": { + "driver": { + "name": "CodeQL", + "organization": "GitHub", + "semanticVersion": "1.0.0", + "rules": [ + { + "id": "js/unused-local-variable", + "name": "js/unused-local-variable" + } + ] + } + }, + "results": [ + { + "guid": "326aa09f-9af8-13cf-9851-3d0e5183ec38", + "message": { + "text": "Unused variable foo." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file1.js" + }, + "region": { + "startLine": 1 + } + } + } + ], + "ruleId": "js/unused-local-variable", + "properties": [ + { + "github/alertNumber": 2 + }, + { + "github/alertUrl": "https://api.github.com/repos/monalisa/monalisa/code-scanning/alerts/2" + } + ] + } + ] + } + ] + } + }, "code-scanning-analysis-deletion": { "summary": "Default response", "value": { @@ -84167,6 +297426,382 @@ "confirm_delete_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/analyses/41?confirm_delete" } }, + "code-scanning-codeql-databases": { + "value": [ + { + "id": 1, + "name": "database.zip", + "language": "java", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/zip", + "size": 1024, + "created_at": "2022-09-12T12:14:32Z", + "updated_at": "2022-09-12T12:14:32Z", + "url": "https://api.github.com/repos/octocat/Hello-World/code-scanning/codeql/databases/java", + "commit_oid": "1927de39fefa25a9d0e64e3f540ff824a72f538c" + }, + { + "id": 2, + "name": "database.zip", + "language": "ruby", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/zip", + "size": 1024, + "created_at": "2022-09-12T12:14:32Z", + "updated_at": "2022-09-12T12:14:32Z", + "url": "https://api.github.com/repos/octocat/Hello-World/code-scanning/codeql/databases/ruby", + "commit_oid": "1927de39fefa25a9d0e64e3f540ff824a72f538c" + } + ] + }, + "code-scanning-codeql-database": { + "value": { + "id": 1, + "name": "database.zip", + "language": "java", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/zip", + "size": 1024, + "created_at": "2022-09-12T12:14:32Z", + "updated_at": "2022-09-12T12:14:32Z", + "url": "https://api.github.com/repos/octocat/Hello-World/code-scanning/codeql/databases/java", + "commit_oid": "1927de39fefa25a9d0e64e3f540ff824a72f538c" + } + }, + "code-scanning-variant-analysis": { + "summary": "Default response", + "value": { + "id": 1, + "controller_repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks" + }, + "actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "query_language": "python", + "query_pack_url": "https://www.example.com", + "created_at": "2022-09-12T12:14:32Z", + "updated_at": "2022-09-12T12:14:32Z", + "completed_at": "2022-09-12T13:15:33Z", + "status": "succeeded", + "actions_workflow_run_id": 3453588, + "scanned_repositories": [ + { + "repository": { + "id": 1296269, + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "private": false + }, + "analysis_status": "succeeded", + "result_count": 532, + "artifact_size_in_bytes": 12345 + } + ], + "skipped_repositories": { + "access_mismatch_repos": { + "repository_count": 2, + "repositories": [ + { + "id": 1, + "name": "octo-repo1", + "full_name": "octo-org/octo-repo1", + "private": false + }, + { + "id": 2, + "name": "octo-repo2", + "full_name": "octo-org/octo-repo2", + "private": false + } + ] + }, + "not_found_repos": { + "repository_count": 3, + "repository_full_names": [ + "octo-org/octo-repo4", + "octo-org/octo-repo5", + "octo-org/octo-repo6" + ] + }, + "no_codeql_db_repos": { + "repository_count": 2, + "repositories": [ + { + "id": 7, + "name": "octo-repo7", + "full_name": "octo-org/octo-repo7", + "private": false + }, + { + "id": 8, + "name": "octo-repo8", + "full_name": "octo-org/octo-repo8", + "private": false + } + ] + }, + "over_limit_repos": { + "repository_count": 2, + "repositories": [ + { + "id": 9, + "name": "octo-repo9", + "full_name": "octo-org/octo-repo9", + "private": false + }, + { + "id": 10, + "name": "octo-repo10", + "full_name": "octo-org/octo-repo10", + "private": false + } + ] + } + } + } + }, + "code-scanning-variant-analysis-repo-task": { + "summary": "Default response", + "value": { + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks" + }, + "analysis_status": "succeeded", + "artifact_size_in_bytes": 12345, + "result_count": 532, + "database_commit_sha": "2d870c2a717a524627af38fa2da382188a096f90", + "source_location_prefix": "/", + "artifact_url": "https://example.com" + } + }, + "code-scanning-default-setup": { + "value": { + "state": "configured", + "languages": [ + "ruby", + "python" + ], + "query_suite": "default", + "threat_model": "remote", + "updated_at": "2023-01-19T11:21:34Z", + "schedule": "weekly" + } + }, + "code-scanning-default-setup-update": { + "value": { + "state": "configured", + "threat_model": "remote_and_local" + } + }, + "code-scanning-default-setup-update-response": { + "value": { + "run_id": 42, + "run_url": "https://api.github.com/repos/octoorg/octocat/actions/runs/42" + } + }, "code-scanning-sarif-upload": { "summary": "Default response", "value": { @@ -84181,6 +297816,434 @@ "analyses_url": "https://api.github.com/repos/octocat/hello-world/code-scanning/analyses?sarif_id=47177e22-5596-11eb-80a1-c1e54ef945c6" } }, + "code-security-configuration-for-repository": { + "value": { + "status": "attached", + "configuration": { + "id": 1325, + "target_type": "organization", + "name": "octo-org recommended settings", + "description": "This is a code security configuration for octo-org", + "advanced_security": "enabled", + "dependency_graph": "enabled", + "dependency_graph_autosubmit_action": "enabled", + "dependency_graph_autosubmit_action_options": { + "labeled_runners": false + }, + "dependabot_alerts": "enabled", + "dependabot_security_updates": "not_set", + "code_scanning_default_setup": "disabled", + "code_scanning_delegated_alert_dismissal": "disabled", + "secret_scanning": "enabled", + "secret_scanning_push_protection": "disabled", + "secret_scanning_delegated_bypass": "disabled", + "secret_scanning_validity_checks": "disabled", + "secret_scanning_non_provider_patterns": "disabled", + "secret_scanning_generic_secrets": "disabled", + "secret_scanning_delegated_alert_dismissal": "disabled", + "private_vulnerability_reporting": "disabled", + "enforcement": "enforced", + "url": "https://api.github.com/orgs/octo-org/code-security/configurations/1325", + "html_url": "https://github.com/organizations/octo-org/settings/security_products/configurations/edit/1325", + "created_at": "2024-05-01T00:00:00Z", + "updated_at": "2024-05-01T00:00:00Z" + } + } + }, + "codeowners-errors": { + "value": { + "errors": [ + { + "line": 3, + "column": 1, + "kind": "Invalid pattern", + "source": "***/*.rb @monalisa", + "suggestion": "Did you mean `**/*.rb`?", + "message": "Invalid pattern on line 3: Did you mean `**/*.rb`?\n\n ***/*.rb @monalisa\n ^", + "path": ".github/CODEOWNERS" + }, + { + "line": 7, + "column": 7, + "kind": "Invalid owner", + "source": "*.txt docs@", + "suggestion": null, + "message": "Invalid owner on line 7:\n\n *.txt docs@\n ^", + "path": ".github/CODEOWNERS" + } + ] + } + }, + "codespaces-list-for-repository": { + "value": { + "total_count": 2, + "codespaces": [ + { + "id": 1, + "name": "monalisa-octocat-hello-world-g4wpq6h95q", + "environment_id": "26a7c758-7299-4a73-b978-5a92a7ae98a0", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "machine": { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 + }, + "prebuild": false, + "devcontainer_path": ".devcontainer/devcontainer.json", + "created_at": "2021-10-14T00:53:30-06:00", + "updated_at": "2021-10-14T00:53:32-06:00", + "last_used_at": "2021-10-14T00:53:30-06:00", + "state": "Available", + "url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q", + "git_status": { + "ahead": 0, + "behind": 0, + "has_unpushed_changes": false, + "has_uncommitted_changes": false, + "ref": "main" + }, + "location": "WestUs2", + "idle_timeout_minutes": 60, + "web_url": "https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev", + "machines_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines", + "start_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start", + "stop_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop", + "recent_folders": [] + }, + { + "id": 2, + "name": "monalisa-octocat-hello-world-3f89ada1j3", + "environment_id": "526ce4d7-46da-494f-a4f9-cfd25b818719", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "machine": { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 + }, + "prebuild": false, + "devcontainer_path": ".devcontainer/devcontainer.json", + "created_at": "2021-10-14T00:53:30-06:00", + "updated_at": "2021-10-14T00:53:32-06:00", + "last_used_at": "2021-10-14T00:53:30-06:00", + "state": "Available", + "url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3", + "git_status": { + "ahead": 0, + "behind": 0, + "has_unpushed_changes": false, + "has_uncommitted_changes": false, + "ref": "main" + }, + "location": "WestUs2", + "idle_timeout_minutes": 60, + "web_url": "https://monalisa-octocat-hello-world-3f89ada1j3.github.dev", + "machines_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines", + "start_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start", + "stop_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop", + "recent_folders": [] + } + ] + } + }, + "codespaces-list-devcontainers-for-repository": { + "value": { + "devcontainers": [ + { + "path": ".devcontainer/foobar/devcontainer.json", + "name": "foobar", + "display_name": "foobar" + }, + { + "path": ".devcontainer/devcontainer.json", + "name": "kitchensink", + "display_name": "kitchensink" + }, + { + "path": ".devcontainer.json", + "display_name": "Default project configuration" + } + ], + "total_count": 3 + } + }, + "codespace-machines-list": { + "value": { + "total_count": 2, + "machines": [ + { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 + }, + { + "name": "premiumLinux", + "display_name": "8 cores, 32 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 34359738368, + "cpus": 8 + } + ] + } + }, + "codespaces-default-attributes-for-a-codespace": { + "value": { + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "defaults": { + "location": "EastUs", + "devcontainer_path": ".devcontainer/devcontainer.json" + } + } + }, + "codespaces-permissions-check-for-devcontainer": { + "value": { + "accepted": true + } + }, "collaborator-items": { "value": [ { @@ -84204,9 +298267,12 @@ "site_admin": false, "permissions": { "pull": true, + "triage": true, "push": true, + "maintain": false, "admin": false - } + }, + "role_name": "write" } ] }, @@ -84332,6 +298398,7 @@ "repository-collaborator-permission-response-if-user-has-admin-permissions": { "value": { "permission": "admin", + "role_name": "admin", "user": { "login": "octocat", "id": 1, @@ -84464,6 +298531,64 @@ "updated_at": "2011-04-14T16:00:49Z" } }, + "reaction-items": { + "value": [ + { + "id": 1, + "node_id": "MDg6UmVhY3Rpb24x", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "content": "heart", + "created_at": "2016-05-20T20:09:31Z" + } + ] + }, + "reaction": { + "value": { + "id": 1, + "node_id": "MDg6UmVhY3Rpb24x", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "content": "heart", + "created_at": "2016-05-20T20:09:31Z" + } + }, "commit-items": { "value": [ { @@ -84494,7 +298619,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } }, "author": { @@ -84747,6 +298873,7 @@ "description": "A great team.", "privacy": "closed", "permission": "admin", + "notification_setting": "notifications_enabled", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null @@ -85109,7 +299236,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } }, "author": { @@ -85191,9 +299319,7 @@ "url": "https://api.github.com/repos/github/hello-world/check-suites/5", "before": "146e867f55c26428e5f9fade55a9bbf5e95a7912", "after": "d6fde92930d4715a2b49857d24b940956b26d2d3", - "pull_requests": [ - - ], + "pull_requests": [], "app": { "id": 1, "slug": "octoapp", @@ -85504,15 +299630,6 @@ } ] }, - "code-of-conduct-2": { - "value": { - "key": "contributor_covenant", - "name": "Contributor Covenant", - "url": "https://github.com/LindseyB/cosee/blob/master/CODE_OF_CONDUCT.md", - "body": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\nto any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\nposting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at lindseyb@github.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n", - "html_url": "https://github.com/LindseyB/cosee/blob/master/CODE_OF_CONDUCT.md" - } - }, "community-profile": { "value": { "health_percentage": 100, @@ -85593,7 +299710,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } }, "author": { @@ -85671,7 +299789,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } }, "author": { @@ -85754,7 +299873,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } }, "author": { @@ -85821,13 +299941,6 @@ ] } }, - "content-reference-attachment": { - "value": { - "id": 101, - "title": "[A-1234] Error found in core/models.py file'", - "body": "You have used an email that already exists for the user_email_uniq field.\n ## DETAILS:\n\nThe (email)=(Octocat@github.com) already exists.\n\n The error was found in core/models.py in get_or_create_user at line 62.\n\n self.save()" - } - }, "content-file-response-if-content-is-a-file": { "summary": "Response if content is a file", "value": { @@ -85836,7 +299949,7 @@ "size": 5362, "name": "README.md", "path": "README.md", - "content": "encoded content ...", + "content": "IyBZb2dhIEJvmsgaW4gcHJvZ3Jlc3MhIEZlZWwgdAoKOndhcm5pbmc6IFdvc\\nZnJlZSBmUgdG8gY0byBjaGVjayBvdXQgdGhlIGFwcCwgYnV0IGJlIHN1c29t\\nZSBiYWNrIG9uY2UgaXQgaXMgY29tcGxldGUuCgpBIHdlYiBhcHAgdGhhdCBs\\nZWFkcyB5b3UgdGhyb3VnaCBhIHlvZ2Egc2Vzc2lvbi4KCltXb3Jrb3V0IG5v\\ndyFdKGh0dHBzOi8vc2tlZHdhcmRzODguZ2l0aHViLmlvL3lvZ2EvKQoKPGlt\\nZyBzcmM9InNyYy9pbWFnZXMvbWFza2FibGVfaWNvbl81MTIucG5nIiBhbHQ9\\nImJvdCBsaWZ0aW5nIHdlaWdodHMiIHdpZHRoPSIxMDAiLz4KCkRvIHlvdSBo\\nYXZlIGZlZWRiYWNrIG9yIGlkZWFzIGZvciBpbXByb3ZlbWVudD8gW09wZW4g\\nYW4gaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9za2Vkd2FyZHM4OC95b2dh\\nL2lzc3Vlcy9uZXcpLgoKV2FudCBtb3JlIGdhbWVzPyBWaXNpdCBbQ25TIEdh\\nbWVzXShodHRwczovL3NrZWR3YXJkczg4LmdpdGh1Yi5pby9wb3J0Zm9saW8v\\nKS4KCiMjIERldmVsb3BtZW50CgpUbyBhZGQgYSBuZXcgcG9zZSwgYWRkIGFu\\nIGVudHJ5IHRvIHRoZSByZWxldmFudCBmaWxlIGluIGBzcmMvYXNhbmFzYC4K\\nClRvIGJ1aWxkLCBydW4gYG5wbSBydW4gYnVpbGRgLgoKVG8gcnVuIGxvY2Fs\\nbHkgd2l0aCBsaXZlIHJlbG9hZGluZyBhbmQgbm8gc2VydmljZSB3b3JrZXIs\\nIHJ1biBgbnBtIHJ1biBkZXZgLiAoSWYgYSBzZXJ2aWNlIHdvcmtlciB3YXMg\\ncHJldmlvdXNseSByZWdpc3RlcmVkLCB5b3UgY2FuIHVucmVnaXN0ZXIgaXQg\\naW4gY2hyb21lIGRldmVsb3BlciB0b29sczogYEFwcGxpY2F0aW9uYCA+IGBT\\nZXJ2aWNlIHdvcmtlcnNgID4gYFVucmVnaXN0ZXJgLikKClRvIHJ1biBsb2Nh\\nbGx5IGFuZCByZWdpc3RlciB0aGUgc2VydmljZSB3b3JrZXIsIHJ1biBgbnBt\\nIHN0YXJ0YC4KClRvIGRlcGxveSwgcHVzaCB0byBgbWFpbmAgb3IgbWFudWFs\\nbHkgdHJpZ2dlciB0aGUgYC5naXRodWIvd29ya2Zsb3dzL2RlcGxveS55bWxg\\nIHdvcmtmbG93Lgo=\\n", "sha": "3d21ec53a331a6f037a91c368710b99387d012c1", "url": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md", "git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", @@ -85849,8 +299962,61 @@ } } }, + "content-file-response-if-content-is-a-directory-object": { + "summary": "Response if content is a directory and the application/vnd.github.v3.object media type is requested", + "value": { + "type": "dir", + "size": 0, + "name": "src", + "path": "src", + "sha": "2962be1c94eaae9794b3080790ec9d74b2fa8358", + "url": "https://api.github.com/repos/octocat/octorepo/contents/src?ref=main", + "git_url": "https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "html_url": "https://github.com/octocat/octorepo/blob/main/src", + "download_url": "https://raw.githubusercontent.com/octocat/octorepo/main/src", + "_links": { + "self": "https://api.github.com/repos/octocat/octorepo/contents/src", + "git": "https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "html": "https://github.com/octocat/octorepo/blob/main/src" + }, + "entries": [ + { + "type": "file", + "size": 625, + "name": "app.js", + "path": "src/app.js", + "sha": "fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "url": "https://api.github.com/repos/octocat/octorepo/contents/src/app.js", + "git_url": "https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "html_url": "https://github.com/octocat/octorepo/blob/main/src/app.js", + "download_url": "https://raw.githubusercontent.com/octocat/octorepo/main/src/app.js", + "_links": { + "self": "https://api.github.com/repos/octocat/octorepo/contents/src/app.js", + "git": "https://api.github.com/repos/octocat/octorepo/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "html": "https://github.com/octocat/octorepo/blob/main/src/app.js" + } + }, + { + "type": "dir", + "size": 0, + "name": "images", + "path": "src/images", + "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "url": "https://api.github.com/repos/octocat/octorepo/contents/src/images", + "git_url": "https://api.github.com/repos/octocat/octorepo/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "html_url": "https://github.com/octocat/octorepo/tree/main/src/images", + "download_url": null, + "_links": { + "self": "https://api.github.com/repos/octocat/octorepo/contents/src/images", + "git": "https://api.github.com/repos/octocat/octorepo/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "html": "https://github.com/octocat/octorepo/tree/main/src/images" + } + } + ] + } + }, "content-file-response-if-content-is-a-directory": { - "summary": "Response if content is a directory", + "summary": "Response if content is a directory and the application/json media type is requested", "value": [ { "type": "file", @@ -85887,7 +300053,7 @@ ] }, "content-file-response-if-content-is-a-symlink": { - "summary": "Response if content is a symlink", + "summary": "Response if content is a symlink and the application/json media type is requested", "value": { "type": "symlink", "target": "/path/to/symlink/target", @@ -85907,7 +300073,7 @@ } }, "content-file-response-if-content-is-a-submodule": { - "summary": "Response if content is a submodule", + "summary": "Response if content is a submodule and the application/json media type is requested", "value": { "type": "submodule", "submodule_git_url": "git://github.com/jquery/qunit.git", @@ -85975,7 +300141,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } } } @@ -86029,7 +300196,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } } } @@ -86068,7 +300236,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } } } @@ -86098,6 +300267,706 @@ } ] }, + "dependabot-alerts-for-repository": { + "value": [ + { + "number": 2, + "state": "dismissed", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-rf4j-j272-fj86", + "cve_id": "CVE-2018-6188", + "summary": "Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive", + "description": "django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 1.11.8, < 1.11.10", + "first_patched_version": { + "identifier": "1.11.10" + } + } + ], + "severity": "high", + "cvss": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N", + "score": 8.7 + } + }, + "epss": [ + { + "percentage": 0.00045, + "percentile": "0.16001e0" + } + ], + "cwes": [ + { + "cwe_id": "CWE-200", + "name": "Exposure of Sensitive Information to an Unauthorized Actor" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-rf4j-j272-fj86" + }, + { + "type": "CVE", + "value": "CVE-2018-6188" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-6188" + }, + { + "url": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + }, + { + "url": "https://usn.ubuntu.com/3559-1/" + }, + { + "url": "https://www.djangoproject.com/weblog/2018/feb/01/security-releases/" + }, + { + "url": "http://www.securitytracker.com/id/1040422" + } + ], + "published_at": "2018-10-03T21:13:54Z", + "updated_at": "2022-04-26T18:35:37Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + "url": "https://api.github.com/repos/octocat/hello-world/dependabot/alerts/2", + "html_url": "https://github.com/octocat/hello-world/security/dependabot/2", + "created_at": "2022-06-15T07:43:03Z", + "updated_at": "2022-08-23T14:29:47Z", + "dismissed_at": "2022-08-23T14:29:47Z", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer.", + "fixed_at": null + }, + { + "number": 1, + "state": "open", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-8f4m-hccc-8qph", + "cve_id": "CVE-2021-20191", + "summary": "Insertion of Sensitive Information into Log File in ansible", + "description": "A flaw was found in ansible. Credentials, such as secrets, are being disclosed in console log by default and not protected by no_log feature when using those modules. An attacker can take advantage of this information to steal those credentials. The highest threat from this vulnerability is to data confidentiality.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.9.0, < 2.9.18", + "first_patched_version": { + "identifier": "2.9.18" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.10.0, < 2.10.7", + "first_patched_version": { + "identifier": "2.10.7" + } + } + ], + "severity": "medium", + "cvss": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 8.5 + } + }, + "cwes": [ + { + "cwe_id": "CWE-532", + "name": "Insertion of Sensitive Information into Log File" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-8f4m-hccc-8qph" + }, + { + "type": "CVE", + "value": "CVE-2021-20191" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20191" + }, + { + "url": "https://access.redhat.com/security/cve/cve-2021-20191" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=1916813" + } + ], + "published_at": "2021-06-01T17:38:00Z", + "updated_at": "2021-08-12T23:06:00Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + "url": "https://api.github.com/repos/octocat/hello-world/dependabot/alerts/1", + "html_url": "https://github.com/octocat/hello-world/security/dependabot/1", + "created_at": "2022-06-14T15:21:52Z", + "updated_at": "2022-06-14T15:21:52Z", + "dismissed_at": null, + "dismissed_by": null, + "dismissed_reason": null, + "dismissed_comment": null, + "fixed_at": null + } + ] + }, + "dependabot-alert-open": { + "value": { + "number": 1, + "state": "open", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-8f4m-hccc-8qph", + "cve_id": "CVE-2021-20191", + "summary": "Insertion of Sensitive Information into Log File in ansible", + "description": "A flaw was found in ansible. Credentials, such as secrets, are being disclosed in console log by default and not protected by no_log feature when using those modules. An attacker can take advantage of this information to steal those credentials. The highest threat from this vulnerability is to data confidentiality.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.9.0, < 2.9.18", + "first_patched_version": { + "identifier": "2.9.18" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.10.0, < 2.10.7", + "first_patched_version": { + "identifier": "2.10.7" + } + } + ], + "severity": "medium", + "cvss": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 8.5 + } + }, + "epss": [ + { + "percentage": 0.00045, + "percentile": "0.16001e0" + } + ], + "cwes": [ + { + "cwe_id": "CWE-532", + "name": "Insertion of Sensitive Information into Log File" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-8f4m-hccc-8qph" + }, + { + "type": "CVE", + "value": "CVE-2021-20191" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20191" + }, + { + "url": "https://access.redhat.com/security/cve/cve-2021-20191" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=1916813" + } + ], + "published_at": "2021-06-01T17:38:00Z", + "updated_at": "2021-08-12T23:06:00Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + "url": "https://api.github.com/repos/octocat/hello-world/dependabot/alerts/1", + "html_url": "https://github.com/octocat/hello-world/security/dependabot/1", + "created_at": "2022-06-14T15:21:52Z", + "updated_at": "2022-06-14T15:21:52Z", + "dismissed_at": null, + "dismissed_by": null, + "dismissed_reason": null, + "dismissed_comment": null, + "fixed_at": null + } + }, + "dependabot-alert-dismissed": { + "value": { + "number": 2, + "state": "dismissed", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-rf4j-j272-fj86", + "cve_id": "CVE-2018-6188", + "summary": "Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive", + "description": "django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 1.11.8, < 1.11.10", + "first_patched_version": { + "identifier": "1.11.10" + } + } + ], + "severity": "high", + "cvss": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N", + "score": 8.7 + } + }, + "cwes": [ + { + "cwe_id": "CWE-200", + "name": "Exposure of Sensitive Information to an Unauthorized Actor" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-rf4j-j272-fj86" + }, + { + "type": "CVE", + "value": "CVE-2018-6188" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-6188" + }, + { + "url": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + }, + { + "url": "https://usn.ubuntu.com/3559-1/" + }, + { + "url": "https://www.djangoproject.com/weblog/2018/feb/01/security-releases/" + }, + { + "url": "http://www.securitytracker.com/id/1040422" + } + ], + "published_at": "2018-10-03T21:13:54Z", + "updated_at": "2022-04-26T18:35:37Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + "url": "https://api.github.com/repos/octocat/hello-world/dependabot/alerts/2", + "html_url": "https://github.com/octocat/hello-world/security/dependabot/2", + "created_at": "2022-06-15T07:43:03Z", + "updated_at": "2022-08-23T14:29:47Z", + "dismissed_at": "2022-08-23T14:29:47Z", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer.", + "fixed_at": null + } + }, + "dependabot-secret-paginated": { + "value": { + "total_count": 2, + "secrets": [ + { + "name": "AZURE_DEVOPS_PAT", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + }, + { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2020-01-10T10:59:22Z", + "updated_at": "2020-01-11T11:59:22Z" + } + ] + } + }, + "dependabot-secret": { + "value": { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + } + }, + "diff-range-response": { + "value": [ + { + "change_type": "removed", + "manifest": "package.json", + "ecosystem": "npm", + "name": "helmet", + "version": "4.6.0", + "package_url": "pkg:npm/helmet@4.6.0", + "license": "MIT", + "source_repository_url": "https://github.com/helmetjs/helmet", + "vulnerabilities": [] + }, + { + "change_type": "added", + "manifest": "package.json", + "ecosystem": "npm", + "name": "helmet", + "version": "5.0.0", + "package_url": "pkg:npm/helmet@5.0.0", + "license": "MIT", + "source_repository_url": "https://github.com/helmetjs/helmet", + "vulnerabilities": [] + }, + { + "change_type": "added", + "manifest": "Gemfile", + "ecosystem": "rubygems", + "name": "ruby-openid", + "version": "2.7.0", + "package_url": "pkg:gem/ruby-openid@2.7.0", + "license": null, + "source_repository_url": "https://github.com/openid/ruby-openid", + "vulnerabilities": [ + { + "severity": "critical", + "advisory_ghsa_id": "GHSA-fqfj-cmh6-hj49", + "advisory_summary": "Ruby OpenID", + "advisory_url": "https://github.com/advisories/GHSA-fqfj-cmh6-hj49" + } + ] + } + ] + }, + "dependency-graph-export-sbom-response": { + "value": { + "sbom": { + "SPDXID": "SPDXRef-DOCUMENT", + "spdxVersion": "SPDX-2.3", + "creationInfo": { + "created": "2021-09-01T00:00:00Z", + "creators": [ + "Tool: GitHub.com-Dependency-Graph" + ] + }, + "name": "github/example", + "dataLicense": "CC0-1.0", + "documentNamespace": "https://spdx.org/spdxdocs/protobom/15e41dd2-f961-4f4d-b8dc-f8f57ad70d57", + "packages": [ + { + "name": "rails", + "SPDXID": "SPDXRef-Package", + "versionInfo": "1.0.0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "copyrightText": "Copyright (c) 1985 GitHub.com", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:gem/rails@1.0.0" + } + ] + }, + { + "name": "github/example", + "SPDXID": "SPDXRef-Repository", + "versionInfo": "main", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:github/example@main" + } + ] + } + ], + "relationships": [ + { + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Repository", + "relatedSpdxElement": "SPDXRef-Package" + }, + { + "relationshipType": "DESCRIBES", + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Repository" + } + ] + } + } + }, + "dependency-graph-create-snapshot-request": { + "value": { + "version": 0, + "sha": "ce587453ced02b1526dfb4cb910479d431683101", + "ref": "refs/heads/main", + "job": { + "correlator": "yourworkflowname_youractionname", + "id": "yourrunid" + }, + "detector": { + "name": "octo-detector", + "version": "0.0.1", + "url": "https://github.com/octo-org/octo-repo" + }, + "scanned": "2022-06-14T20:25:00Z", + "manifests": { + "package-lock.json": { + "name": "package-lock.json", + "file": { + "source_location": "src/package-lock.json" + }, + "resolved": { + "@actions/core": { + "package_url": "pkg:/npm/%40actions/core@1.1.9", + "dependencies": [ + "@actions/http-client" + ] + }, + "@actions/http-client": { + "package_url": "pkg:/npm/%40actions/http-client@1.0.7", + "dependencies": [ + "tunnel" + ] + }, + "tunnel": { + "package_url": "pkg:/npm/tunnel@0.0.6" + } + } + } + } + } + }, + "dependency-graph-create-snapshot-success": { + "value": { + "id": 12345, + "created_at": "2018-05-04T01:14:52Z", + "message": "Dependency results for the repo have been successfully updated.", + "result": "SUCCESS" + } + }, "deployment-simple-example": { "summary": "Simple example", "value": { @@ -86107,8 +300976,7 @@ "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", "ref": "topic-branch", "task": "deploy", - "payload": { - }, + "payload": {}, "original_environment": "staging", "environment": "production", "description": "Deploy request from hubot", @@ -86148,8 +301016,7 @@ "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", "ref": "topic-branch", "task": "deploy", - "payload": { - }, + "payload": {}, "original_environment": "staging", "environment": "production", "description": "Deploy request from hubot", @@ -86279,6 +301146,7 @@ { "id": 3755, "node_id": "MDQ6R2F0ZTM3NTU=", + "prevent_self_review": false, "type": "required_reviewers", "reviewers": [ { @@ -86315,6 +301183,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -86356,6 +301225,7 @@ { "id": 3755, "node_id": "MDQ6R2F0ZTM3NTU=", + "prevent_self_review": false, "type": "required_reviewers", "reviewers": [ { @@ -86392,6 +301262,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -86412,6 +301283,166 @@ } } }, + "deployment-branch-policies-list": { + "value": { + "total_count": 2, + "branch_policies": [ + { + "id": 361471, + "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE=", + "name": "release/*" + }, + { + "id": 361472, + "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzI=", + "name": "main" + } + ] + } + }, + "deployment-branch-policy-wildcard": { + "value": { + "id": 364662, + "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjI=", + "name": "release/*" + } + }, + "deployment-branch-policy-single-branch": { + "value": { + "id": 364663, + "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjM=", + "name": "main" + } + }, + "deployment-branch-policy-single-tag": { + "value": { + "id": 364663, + "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjM=", + "name": "v1", + "type": "tag" + } + }, + "deployment-protection-rules": { + "value": [ + { + "total_count": 2 + }, + { + "custom_deployment_protection_rules": [ + { + "id": 3, + "node_id": "IEH37kRlcGxveW1lbnRTdGF0ddiv", + "enabled": true, + "app": { + "id": 1, + "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", + "slug": "a-custom-app", + "integration_url": "https://api.github.com/apps/a-custom-app" + } + }, + { + "id": 4, + "node_id": "MDE2OkRlcGxveW1lbnRTdHJ41128", + "enabled": true, + "app": { + "id": 1, + "node_id": "UHVE67RlcGxveW1lbnRTdTY!jfeuy", + "slug": "another-custom-app", + "integration_url": "https://api.github.com/apps/another-custom-app" + } + } + ] + } + ] + }, + "deployment-protection-rule": { + "value": { + "id": 3, + "node_id": "IEH37kRlcGxveW1lbnRTdGF0ddiv", + "enabled": true, + "app": { + "id": 1, + "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", + "slug": "a-custom-app", + "integration_url": "https://api.github.com/apps/a-custom-app" + } + } + }, + "custom-deployment-protection-rule-apps": { + "value": [ + { + "total_count": 2 + }, + { + "available_custom_deployment_protection_rule_integrations": [ + { + "id": 1, + "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", + "slug": "a-custom-app", + "integration_url": "https://api.github.com/apps/a-custom-app" + }, + { + "id": 2, + "node_id": "UHVE67RlcGxveW1lbnRTdTY!jfeuy", + "slug": "another-custom-app", + "integration_url": "https://api.github.com/apps/another-custom-app" + } + ] + } + ] + }, + "repo-events-items": { + "value": [ + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z" + }, + { + "id": "22237752260", + "type": "WatchEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "action": "started" + }, + "public": true, + "created_at": "2022-06-08T23:29:25Z" + } + ] + }, "minimal-repository-items-2": { "value": [ { @@ -86577,7 +301608,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null }, "html_url": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd" } @@ -86614,7 +301646,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } } }, @@ -86675,7 +301708,8 @@ "verified": false, "reason": "unsigned", "signature": null, - "payload": null + "payload": null, + "verified_at": null } } }, @@ -87204,7 +302238,7 @@ "html_url": "https://github.com/octocat/Hello-World/invitations" } }, - "issue-simple-items": { + "issue-items": { "value": [ { "id": 1, @@ -87341,7 +302375,28 @@ "closed_at": null, "created_at": "2011-04-22T13:33:48Z", "updated_at": "2011-04-22T13:33:48Z", - "author_association": "COLLABORATOR" + "closed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "author_association": "COLLABORATOR", + "state_reason": "completed" } ] }, @@ -87501,7 +302556,8 @@ "type": "User", "site_admin": false }, - "author_association": "COLLABORATOR" + "author_association": "COLLABORATOR", + "state_reason": "completed" } }, "issue-comment-items": { @@ -87737,7 +302793,8 @@ "closed_at": null, "created_at": "2011-04-22T13:33:48Z", "updated_at": "2011-04-22T13:33:48Z", - "author_association": "COLLABORATOR" + "author_association": "COLLABORATOR", + "state_reason": "completed" } } ] @@ -87928,8 +302985,7 @@ "permissions": { "metadata": "read", "contents": "read", - "issues": "write", - "single_file": "write" + "issues": "write" }, "events": [ "push", @@ -87946,189 +303002,11 @@ "closed_at": null, "created_at": "2011-04-22T13:33:48Z", "updated_at": "2011-04-22T13:33:48Z", - "author_association": "COLLABORATOR" + "author_association": "COLLABORATOR", + "state_reason": "completed" } } }, - "issue-simple": { - "value": { - "id": 1, - "node_id": "MDU6SXNzdWUx", - "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", - "repository_url": "https://api.github.com/repos/octocat/Hello-World", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", - "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events", - "html_url": "https://github.com/octocat/Hello-World/issues/1347", - "number": 1347, - "state": "open", - "title": "Found a bug", - "body": "I'm having a problem with this.", - "user": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "labels": [ - { - "id": 208045946, - "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", - "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", - "name": "bug", - "description": "Something isn't working", - "color": "f29513", - "default": true - } - ], - "assignee": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - { - "login": "hubot", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/hubot_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/hubot", - "html_url": "https://github.com/hubot", - "followers_url": "https://api.github.com/users/hubot/followers", - "following_url": "https://api.github.com/users/hubot/following{/other_user}", - "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", - "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", - "organizations_url": "https://api.github.com/users/hubot/orgs", - "repos_url": "https://api.github.com/users/hubot/repos", - "events_url": "https://api.github.com/users/hubot/events{/privacy}", - "received_events_url": "https://api.github.com/users/hubot/received_events", - "type": "User", - "site_admin": true - }, - { - "login": "other_user", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/other_user_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/other_user", - "html_url": "https://github.com/other_user", - "followers_url": "https://api.github.com/users/other_user/followers", - "following_url": "https://api.github.com/users/other_user/following{/other_user}", - "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", - "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", - "organizations_url": "https://api.github.com/users/other_user/orgs", - "repos_url": "https://api.github.com/users/other_user/repos", - "events_url": "https://api.github.com/users/other_user/events{/privacy}", - "received_events_url": "https://api.github.com/users/other_user/received_events", - "type": "User", - "site_admin": false - } - ], - "milestone": { - "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", - "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", - "id": 1002604, - "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", - "number": 1, - "state": "open", - "title": "v1.0", - "description": "Tracking milestone for version 1.0", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "open_issues": 4, - "closed_issues": 8, - "created_at": "2011-04-10T20:09:31Z", - "updated_at": "2014-03-03T18:58:10Z", - "closed_at": "2013-02-12T13:22:01Z", - "due_on": "2012-10-09T23:39:01Z" - }, - "locked": true, - "active_lock_reason": "too heated", - "comments": 0, - "pull_request": { - "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", - "html_url": "https://github.com/octocat/Hello-World/pull/1347", - "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", - "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" - }, - "closed_at": null, - "created_at": "2011-04-22T13:33:48Z", - "updated_at": "2011-04-22T13:33:48Z", - "author_association": "COLLABORATOR" - } - }, "issue-event-for-issue-items": { "value": [ { @@ -88202,6 +303080,174 @@ } ] }, + "timeline-issue-events": { + "value": [ + { + "id": 6430295168, + "node_id": "LOE_lADODwFebM5HwC0kzwAAAAF_RoSA", + "url": "https://api.github.com/repos/github/roadmap/issues/events/6430295168", + "actor": { + "login": "github", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "site_admin": false + }, + "event": "locked", + "commit_id": null, + "commit_url": null, + "created_at": "2022-04-13T20:49:13Z", + "lock_reason": null, + "performed_via_github_app": null + }, + { + "id": 6430296748, + "node_id": "LE_lADODwFebM5HwC0kzwAAAAF_Roqs", + "url": "https://api.github.com/repos/github/roadmap/issues/events/6430296748", + "actor": { + "login": "github-product-roadmap", + "id": 67656570, + "node_id": "MDQ6VXNlcjY3NjU2NTcw", + "avatar_url": "https://avatars.githubusercontent.com/u/67656570?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-product-roadmap", + "html_url": "https://github.com/github-product-roadmap", + "followers_url": "https://api.github.com/users/github-product-roadmap/followers", + "following_url": "https://api.github.com/users/github-product-roadmap/following{/other_user}", + "gists_url": "https://api.github.com/users/github-product-roadmap/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-product-roadmap/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-product-roadmap/subscriptions", + "organizations_url": "https://api.github.com/users/github-product-roadmap/orgs", + "repos_url": "https://api.github.com/users/github-product-roadmap/repos", + "events_url": "https://api.github.com/users/github-product-roadmap/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-product-roadmap/received_events", + "type": "User", + "site_admin": false + }, + "event": "labeled", + "commit_id": null, + "commit_url": null, + "created_at": "2022-04-13T20:49:34Z", + "label": { + "name": "beta", + "color": "99dd88" + }, + "performed_via_github_app": null + }, + { + "id": 6635165802, + "node_id": "RTE_lADODwFebM5HwC0kzwAAAAGLfJhq", + "url": "https://api.github.com/repos/github/roadmap/issues/events/6635165802", + "actor": { + "login": "github-product-roadmap", + "id": 67656570, + "node_id": "MDQ6VXNlcjY3NjU2NTcw", + "avatar_url": "https://avatars.githubusercontent.com/u/67656570?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-product-roadmap", + "html_url": "https://github.com/github-product-roadmap", + "followers_url": "https://api.github.com/users/github-product-roadmap/followers", + "following_url": "https://api.github.com/users/github-product-roadmap/following{/other_user}", + "gists_url": "https://api.github.com/users/github-product-roadmap/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-product-roadmap/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-product-roadmap/subscriptions", + "organizations_url": "https://api.github.com/users/github-product-roadmap/orgs", + "repos_url": "https://api.github.com/users/github-product-roadmap/repos", + "events_url": "https://api.github.com/users/github-product-roadmap/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-product-roadmap/received_events", + "type": "User", + "site_admin": false + }, + "event": "renamed", + "commit_id": null, + "commit_url": null, + "created_at": "2022-05-18T19:29:01Z", + "rename": { + "from": "Secret scanning: dry-runs for enterprise-level custom patterns (cloud)", + "to": "Secret scanning: dry-runs for enterprise-level custom patterns" + }, + "performed_via_github_app": null + }, + { + "url": "https://api.github.com/repos/github/roadmap/issues/comments/1130876857", + "html_url": "https://github.com/github/roadmap/issues/493#issuecomment-1130876857", + "issue_url": "https://api.github.com/repos/github/roadmap/issues/493", + "id": 1130876857, + "node_id": "IC_kwDODwFebM5DZ8-5", + "user": { + "login": "octocat", + "id": 94867353, + "node_id": "U_kgDOBaePmQ", + "avatar_url": "https://avatars.githubusercontent.com/u/94867353?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "created_at": "2022-05-19T00:52:15Z", + "updated_at": "2022-05-19T00:52:15Z", + "author_association": "COLLABORATOR", + "body": "🚢 Shipped to the cloud: https://github.blog/changelog/2022-05-12-secret-scanning-dry-runs-for-enterprise-level-custom-patterns/", + "reactions": { + "url": "https://api.github.com/repos/github/roadmap/issues/comments/1130876857/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "performed_via_github_app": null, + "event": "commented", + "actor": { + "login": "octocat", + "id": 94867353, + "node_id": "U_kgDOBaePmQ", + "avatar_url": "https://avatars.githubusercontent.com/u/94867353?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + } + } + ] + }, "deploy-key-items": { "value": [ { @@ -88211,7 +303257,10 @@ "title": "octocat@octomac", "verified": true, "created_at": "2014-12-10T15:53:42Z", - "read_only": true + "read_only": true, + "added_by": "octocat", + "last_used": "2022-01-10T15:53:42Z", + "enabled": true } ] }, @@ -88223,7 +303272,10 @@ "title": "octocat@octomac", "verified": true, "created_at": "2014-12-10T15:53:42Z", - "read_only": true + "read_only": true, + "added_by": "octocat", + "last_used": "2022-01-10T15:53:42Z", + "enabled": true } }, "label": { @@ -88281,6 +303333,13 @@ } } }, + "merged-upstream": { + "value": { + "message": "Successfully fetched and fast-forwarded from upstream defunkt:main", + "merge_type": "fast-forward", + "base_branch": "defunkt:main" + } + }, "milestone-items": { "value": [ { @@ -88373,6 +303432,8 @@ "path": "/" }, "public": true, + "pending_domain_unverified_at": "2024-04-30T19:33:31Z", + "protected_domain_state": "verified", "https_certificate": { "state": "approved", "description": "Certificate is approved", @@ -88458,6 +303519,18 @@ "updated_at": "2014-02-10T19:00:51Z" } }, + "page-deployment": { + "value": { + "id": "4fd754f7e594640989b406850d0bc8f06a121251", + "status_url": "https://api.github.com/repos/github/developer.github.com/pages/deployments/4fd754f7e594640989b406850d0bc8f06a121251/status", + "page_url": "developer.github.com" + } + }, + "pages-deployment-status": { + "value": { + "status": "succeed" + } + }, "pages-health-check": { "value": { "domain": { @@ -88522,44 +303595,40 @@ } } }, - "project-items-2": { + "custom-property-values": { "value": [ { - "owner_url": "https://api.github.com/repos/api-playground/projects-test", - "url": "https://api.github.com/projects/1002604", - "html_url": "https://github.com/api-playground/projects-test/projects/1", - "columns_url": "https://api.github.com/projects/1002604/columns", - "id": 1002604, - "node_id": "MDc6UHJvamVjdDEwMDI2MDQ=", - "name": "Projects Documentation", - "body": "Developer documentation project for the developer site.", - "number": 1, - "state": "open", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2011-04-10T20:09:31Z", - "updated_at": "2014-03-03T18:58:10Z" + "property_name": "environment", + "value": "production" + }, + { + "property_name": "service", + "value": "web" + }, + { + "property_name": "team", + "value": "octocat" } ] }, + "create-or-update-custom-properties-values": { + "value": { + "properties": [ + { + "property_name": "environment", + "value": "production" + }, + { + "property_name": "service", + "value": "web" + }, + { + "property_name": "team", + "value": "octocat" + } + ] + } + }, "pull-request": { "value": { "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", @@ -88747,6 +303816,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos" @@ -88866,6 +303936,7 @@ "has_wiki": true, "has_pages": false, "has_downloads": true, + "has_discussions": false, "archived": false, "disabled": false, "pushed_at": "2011-01-26T19:06:43Z", @@ -88880,6 +303951,7 @@ "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", "allow_squash_merge": true, "allow_merge_commit": true, + "allow_forking": true, "forks": 123, "open_issues": 123, "license": { @@ -89006,6 +304078,7 @@ "has_wiki": true, "has_pages": false, "has_downloads": true, + "has_discussions": false, "archived": false, "disabled": false, "pushed_at": "2011-01-26T19:06:43Z", @@ -89385,6 +304458,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -89620,6 +304694,528 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + ], + "head": { + "label": "octocat:new-topic", + "ref": "new-topic", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "base": { + "label": "octocat:master", + "ref": "master", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1347" + }, + "issue": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + }, + "author_association": "OWNER", + "auto_merge": null, + "draft": false + } + }, + "pull-request-simple": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "id": 1, + "node_id": "MDExOlB1bGxSZXF1ZXN0MQ==", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch", + "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits", + "review_comments_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments", + "review_comment_url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "number": 1347, + "state": "open", + "locked": true, + "title": "Amazing new feature", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Please pull these awesome changes in!", + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "active_lock_reason": "too heated", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:01:12Z", + "closed_at": "2011-01-26T19:01:12Z", + "merged_at": "2011-01-26T19:01:12Z", + "merge_commit_sha": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + { + "login": "hubot", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/hubot", + "html_url": "https://github.com/hubot", + "followers_url": "https://api.github.com/users/hubot/followers", + "following_url": "https://api.github.com/users/hubot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", + "organizations_url": "https://api.github.com/users/hubot/orgs", + "repos_url": "https://api.github.com/users/hubot/repos", + "events_url": "https://api.github.com/users/hubot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubot/received_events", + "type": "User", + "site_admin": true + } + ], + "requested_reviewers": [ + { + "login": "other_user", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/other_user", + "html_url": "https://github.com/other_user", + "followers_url": "https://api.github.com/users/other_user/followers", + "following_url": "https://api.github.com/users/other_user/following{/other_user}", + "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", + "organizations_url": "https://api.github.com/users/other_user/orgs", + "repos_url": "https://api.github.com/users/other_user/repos", + "events_url": "https://api.github.com/users/other_user/events{/privacy}", + "received_events_url": "https://api.github.com/users/other_user/received_events", + "type": "User", + "site_admin": false + } + ], + "requested_teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -89915,7 +305511,7 @@ "url": "https://api.github.com/licenses/mit", "spdx_id": "MIT", "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" + "html_url": "https://github.com/licenses/mit" }, "forks": 1, "open_issues": 1, @@ -90251,6 +305847,7 @@ "body": "Description of the release", "draft": false, "prerelease": false, + "immutable": false, "created_at": "2013-02-27T19:35:32Z", "published_at": "2013-02-27T19:35:32Z", "author": { @@ -90284,6 +305881,7 @@ "state": "uploaded", "content_type": "application/zip", "size": 1024, + "digest": "sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255", "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", @@ -90329,6 +305927,7 @@ "body": "Description of the release", "draft": false, "prerelease": false, + "immutable": false, "created_at": "2013-02-27T19:35:32Z", "published_at": "2013-02-27T19:35:32Z", "author": { @@ -90362,6 +305961,7 @@ "state": "uploaded", "content_type": "application/zip", "size": 1024, + "digest": "sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255", "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", @@ -90400,6 +306000,7 @@ "state": "uploaded", "content_type": "application/zip", "size": 1024, + "digest": "sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255", "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", @@ -90425,6 +306026,12 @@ } } }, + "release-notes-content": { + "value": { + "name": "Release v1.0.0 is now available!", + "body": "##Changes in Release v1.0.0 ... ##Contributors @monalisa" + } + }, "release-asset-items": { "value": [ { @@ -90437,6 +306044,7 @@ "state": "uploaded", "content_type": "application/zip", "size": 1024, + "digest": "sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255", "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", @@ -90474,6 +306082,7 @@ "state": "uploaded", "content_type": "application/zip", "size": 1024, + "digest": "sha256:2151b604e3429bff440b9fbc03eb3617bc2603cda96c95b9bb05277f9ddba255", "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", @@ -90499,6 +306108,163 @@ } } }, + "repository-rule-items": { + "value": [ + { + "type": "commit_message_pattern", + "ruleset_source_type": "Repository", + "ruleset_source": "monalisa/my-repo", + "ruleset_id": 42, + "parameters": { + "operator": "starts_with", + "pattern": "issue" + } + }, + { + "type": "commit_author_email_pattern", + "ruleset_source_type": "Organization", + "ruleset_source": "my-org", + "ruleset_id": 73, + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "repository-ruleset-items": { + "value": [ + { + "id": 42, + "name": "super cool ruleset", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "node_id": "RRS_lACkVXNlcgQB", + "_links": { + "self": { + "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/42" + }, + "html": { + "href": "https://github.com/monalisa/my-repo/rules/42" + } + }, + "created_at": "2023-07-15T08:43:03Z", + "updated_at": "2023-08-23T16:29:47Z" + }, + { + "id": 314, + "name": "Another ruleset", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "node_id": "RRS_lACkVXNlcgQQ", + "_links": { + "self": { + "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/314" + }, + "html": { + "href": "https://github.com/monalisa/my-repo/rules/314" + } + }, + "created_at": "2023-08-15T08:43:03Z", + "updated_at": "2023-09-23T16:29:47Z" + } + ] + }, + "repository-ruleset": { + "value": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ], + "node_id": "RRS_lACkVXNlcgQB", + "_links": { + "self": { + "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/42" + }, + "html": { + "href": "https://github.com/monalisa/my-repo/rules/42" + } + }, + "created_at": "2023-07-15T08:43:03Z", + "updated_at": "2023-08-23T16:29:47Z" + } + }, + "repository-ruleset-version-with-state": { + "value": { + "version_id": 3, + "actor": { + "id": 1, + "type": "User" + }, + "updated_at": "2024-10-23T16:29:47Z", + "state": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "active", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team", + "bypass_mode": "always" + } + ], + "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" + } + } + ] + } + } + }, "secret-scanning-alert-list": { "value": [ { @@ -90506,6 +306272,7 @@ "created_at": "2020-11-06T18:48:51Z", "url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2", "html_url": "https://github.com/owner/private-repo/security/secret-scanning/2", + "locations_url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2/locations", "state": "resolved", "resolution": "false_positive", "resolved_at": "2020-11-07T02:47:13Z", @@ -90530,19 +306297,90 @@ "site_admin": true }, "secret_type": "adafruit_io_key", - "secret": "aio_XXXXXXXXXXXXXXXXXXXXXXXXXXXX" - }, - { - "number": 1, - "created_at": "2020-11-06T18:18:30Z", - "url": "https://api.github.com/repos/owner/repo/secret-scanning/alerts/1", - "html_url": "https://github.com/owner/repo/security/secret-scanning/1", - "state": "open", - "resolution": null, - "resolved_at": null, - "resolved_by": null, - "secret_type": "mailchimp_api_key", - "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2" + "secret_type_display_name": "Adafruit IO Key", + "secret": "aio_XXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "push_protection_bypassed_by": { + "login": "monalisa", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://alambic.github.com/avatars/u/2?", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "push_protection_bypassed": true, + "push_protection_bypassed_at": "2020-11-06T21:48:51Z", + "push_protection_bypass_request_reviewer": { + "login": "octocat", + "id": 3, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://alambic.github.com/avatars/u/3?", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "push_protection_bypass_request_reviewer_comment": "Example response", + "push_protection_bypass_request_comment": "Example comment", + "push_protection_bypass_request_html_url": "https://github.com/owner/repo/secret_scanning_exemptions/1", + "resolution_comment": "Example comment", + "validity": "inactive", + "publicly_leaked": false, + "multi_repo": false, + "is_base64_encoded": false, + "first_location_detected": { + "path": "/example/secrets.txt", + "start_line": 1, + "end_line": 1, + "start_column": 1, + "end_column": 64, + "blob_sha": "af5626b4a114abcb82d63db7c8082c3c4756e51b", + "blob_url": "https://api.github.com/repos/octocat/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b", + "commit_sha": "f14d7debf9775f957cf4f1e8176da0786431f72b", + "commit_url": "https://api.github.com/repos/octocat/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b" + }, + "has_more_locations": true, + "assigned_to": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } } ] }, @@ -90552,12 +306390,25 @@ "created_at": "2020-11-06T18:18:30Z", "url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42", "html_url": "https://github.com/owner/private-repo/security/secret-scanning/42", + "locations_url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42/locations", "state": "open", "resolution": null, "resolved_at": null, "resolved_by": null, "secret_type": "mailchimp_api_key", - "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2" + "secret_type_display_name": "Mailchimp API Key", + "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2", + "push_protection_bypassed_by": null, + "push_protection_bypassed": false, + "push_protection_bypassed_at": null, + "push_protection_bypass_request_reviewer": null, + "push_protection_bypass_request_reviewer_comment": null, + "push_protection_bypass_request_comment": null, + "push_protection_bypass_request_html_url": null, + "resolution_comment": null, + "validity": "unknown", + "publicly_leaked": false, + "multi_repo": false } }, "secret-scanning-alert-resolved": { @@ -90566,6 +306417,7 @@ "created_at": "2020-11-06T18:18:30Z", "url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42", "html_url": "https://github.com/owner/private-repo/security/secret-scanning/42", + "locations_url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42/locations", "state": "resolved", "resolution": "used_in_tests", "resolved_at": "2020-11-16T22:42:07Z", @@ -90590,7 +306442,604 @@ "site_admin": true }, "secret_type": "mailchimp_api_key", - "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2" + "secret_type_display_name": "Mailchimp API Key", + "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2", + "push_protection_bypassed": false, + "push_protection_bypassed_by": null, + "push_protection_bypassed_at": null, + "push_protection_bypass_request_reviewer": null, + "push_protection_bypass_request_reviewer_comment": null, + "push_protection_bypass_request_comment": null, + "push_protection_bypass_request_html_url": null, + "resolution_comment": "Example comment", + "validity": "unknown", + "publicly_leaked": false, + "multi_repo": false, + "assigned_to": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://alambic.github.com/avatars/u/1?", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "secret-scanning-location-list": { + "value": [ + { + "type": "commit", + "details": { + "path": "/example/secrets.txt", + "start_line": 1, + "end_line": 1, + "start_column": 1, + "end_column": 64, + "blob_sha": "af5626b4a114abcb82d63db7c8082c3c4756e51b", + "blob_url": "https://api.github.com/repos/octocat/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b", + "commit_sha": "f14d7debf9775f957cf4f1e8176da0786431f72b", + "commit_url": "https://api.github.com/repos/octocat/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b" + } + }, + { + "type": "wiki_commit", + "details": { + "path": "/example/Home.md", + "start_line": 1, + "end_line": 1, + "start_column": 1, + "end_column": 64, + "blob_sha": "af5626b4a114abcb82d63db7c8082c3c4756e51b", + "page_url": "https://github.com/octocat/Hello-World/wiki/Home/302c0b7e200761c9dd9b57e57db540ee0b4293a5", + "commit_sha": "302c0b7e200761c9dd9b57e57db540ee0b4293a5", + "commit_url": "https://github.com/octocat/Hello-World/wiki/_compare/302c0b7e200761c9dd9b57e57db540ee0b4293a5" + } + }, + { + "type": "issue_title", + "details": { + "issue_title_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + } + }, + { + "type": "issue_body", + "details": { + "issue_body_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + } + }, + { + "type": "issue_comment", + "details": { + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451" + } + }, + { + "type": "discussion_title", + "details": { + "discussion_title_url": "https://github.com/community/community/discussions/39082" + } + }, + { + "type": "discussion_body", + "details": { + "discussion_body_url": "https://github.com/community/community/discussions/39082#discussion-4566270" + } + }, + { + "type": "discussion_comment", + "details": { + "discussion_comment_url": "https://github.com/community/community/discussions/39082#discussioncomment-4158232" + } + }, + { + "type": "pull_request_title", + "details": { + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" + } + }, + { + "type": "pull_request_body", + "details": { + "pull_request_body_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" + } + }, + { + "type": "pull_request_comment", + "details": { + "pull_request_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1825855898" + } + }, + { + "type": "pull_request_review", + "details": { + "pull_request_review_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846/reviews/80" + } + }, + { + "type": "pull_request_review_comment", + "details": { + "pull_request_review_comment_url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/12" + } + } + ] + }, + "secret-scanning-push-protection-bypass": { + "value": { + "reason": "will_fix_later", + "expire_at": "2020-11-06T18:18:30Z", + "token_type": "mailchimp_api_key" + } + }, + "secret-scanning-scan-history": { + "value": { + "incremental_scans": [ + { + "type": "git", + "status": "completed", + "completed_at": "2024-10-07T02:47:00Z" + } + ], + "backfill_scans": [ + { + "type": "git", + "status": "completed", + "started_at": "2024-10-07T02:47:00Z", + "completed_at": "2024-10-07T02:50:00Z" + }, + { + "type": "issue", + "status": "completed", + "started_at": "2024-10-07T02:47:00Z", + "completed_at": "2024-10-07T02:49:00Z" + }, + { + "type": "discussion", + "status": "completed", + "started_at": "2024-10-07T02:47:00Z", + "completed_at": "2024-10-07T02:48:00Z" + } + ], + "pattern_update_scans": [ + { + "type": "discussion", + "status": "in_progress", + "started_at": "2024-10-07T02:47:00Z", + "completed_at": "2024-10-07T02:51:00Z" + } + ], + "custom_pattern_backfill_scans": [ + { + "type": "git", + "status": "completed", + "started_at": "2024-10-07T02:47:00Z", + "completed_at": "2024-10-07T02:55:00Z", + "pattern_slug": "my-custom-pattern", + "pattern_scope": "enterprise" + }, + { + "type": "git", + "status": "completed", + "started_at": "2024-10-07T02:47:00Z", + "completed_at": "2024-10-07T02:55:00Z", + "pattern_slug": "my-custom-pattern", + "pattern_scope": "organization" + } + ] + } + }, + "repository-advisory": { + "value": { + "ghsa_id": "GHSA-abcd-1234-efgh", + "cve_id": "CVE-2050-00000", + "url": "https://api.github.com/repos/repo/a-package/security-advisories/GHSA-abcd-1234-efgh", + "html_url": "https://github.com/repo/a-package/security/advisories/GHSA-abcd-1234-efgh", + "summary": "A short summary of the advisory.", + "description": "A detailed description of what the advisory entails.", + "severity": "critical", + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "publisher": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-abcd-1234-efgh" + }, + { + "type": "CVE", + "value": "CVE-2050-00000" + } + ], + "state": "published", + "created_at": "2020-01-01T00:00:00Z", + "updated_at": "2020-01-02T00:00:00Z", + "published_at": "2020-01-03T00:00:00Z", + "closed_at": null, + "withdrawn_at": null, + "submission": null, + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "a-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.1", + "patched_versions": "1.0.1", + "vulnerable_functions": [ + "function1" + ] + }, + { + "package": { + "ecosystem": "pip", + "name": "another-package" + }, + "vulnerable_version_range": ">= 1.0.0, < 1.0.2", + "patched_versions": "1.0.2", + "vulnerable_functions": [ + "function2" + ] + } + ], + "cvss": { + "vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", + "score": 9.8 + }, + "cvss_severities": { + "cvss_v3": { + "vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", + "score": 9.8 + }, + "cvss_v4": { + "vector_string": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", + "score": 9.3 + } + }, + "cwes": [ + { + "cwe_id": "CWE-123", + "name": "A CWE" + } + ], + "cwe_ids": [ + "CWE-123" + ], + "credits": [ + { + "login": "octocat", + "type": "analyst" + } + ], + "credits_detailed": [ + { + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "type": "analyst", + "state": "accepted" + } + ], + "collaborating_users": [ + { + "login": "octokitten", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octokitten_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octokitten", + "html_url": "https://github.com/octokitten", + "followers_url": "https://api.github.com/users/octokitten/followers", + "following_url": "https://api.github.com/users/octokitten/following{/other_user}", + "gists_url": "https://api.github.com/users/octokitten/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octokitten/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octokitten/subscriptions", + "organizations_url": "https://api.github.com/users/octokitten/orgs", + "repos_url": "https://api.github.com/users/octokitten/repos", + "events_url": "https://api.github.com/users/octokitten/events{/privacy}", + "received_events_url": "https://api.github.com/users/octokitten/received_events", + "type": "User", + "site_admin": false + } + ], + "collaborating_teams": [ + { + "name": "Justice League", + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "permission": "admin", + "parent": null + } + ], + "private_fork": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo-ghsa-abcd-1234-efgh", + "full_name": "octo-org/octo-repo-ghsa-abcd-1234-efgh", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/octo-repo-ghsa-abcd-1234-efgh", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/downloads", + "events_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/events", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/languages", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/merges", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/subscription", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/tags", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/teams", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo-ghsa-abcd-1234-efgh/git/trees{/sha}" + } + } + }, + "repository-advisory-pvr": { + "value": { + "ghsa_id": "GHSA-abcd-1234-efgh", + "cve_id": "CVE-2050-00000", + "url": "https://api.github.com/repos/repo/a-package/security-advisories/GHSA-abcd-1234-efgh", + "html_url": "https://github.com/repo/a-package/security/advisories/GHSA-abcd-1234-efgh", + "summary": "A newly discovered vulnerability", + "description": "A more in-depth description of what the problem is.", + "severity": "high", + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "publisher": null, + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-abcd-1234-efgh" + }, + { + "type": "CVE", + "value": null + } + ], + "state": "triage", + "created_at": "2020-01-01T00:00:00Z", + "updated_at": "2020-01-02T00:00:00Z", + "published_at": null, + "closed_at": null, + "withdrawn_at": null, + "submission": { + "accepted": false + }, + "vulnerabilities": [ + { + "package": { + "ecosystem": "npm", + "name": "a-package" + }, + "vulnerable_version_range": "< 1.0.0", + "patched_versions": "1.0.0", + "vulnerable_functions": [ + "important_function" + ] + } + ], + "cvss": null, + "cvss_severities": { + "cvss_v3": null, + "cvss_v4": null + }, + "cwes": [ + { + "cwe_id": "CWE-123", + "name": "A CWE" + } + ], + "cwe_ids": [ + "CWE-123" + ], + "credits": [ + { + "login": "octocat", + "type": "finder" + } + ], + "credits_detailed": [ + { + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "type": "finder", + "state": "accepted" + } + ], + "collaborating_users": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "collaborating_teams": [ + { + "name": "Justice League", + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "permission": "admin", + "parent": null + } + ], + "private_fork": null } }, "simple-user-items-default-response": { @@ -90906,6 +307355,19 @@ } ] }, + "tag-protection-items": { + "value": [ + { + "id": 2, + "pattern": "v1.*" + } + ] + }, + "tag-protection": { + "value": { + "enabled": true + } + }, "topic": { "value": { "names": [ @@ -91392,129 +307854,12 @@ "allow_auto_merge": false, "delete_branch_on_merge": true, "allow_merge_commit": true, + "allow_forking": true, "subscribers_count": 42, "network_count": 0 } } }, - "repository-3": { - "value": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World", - "full_name": "octocat/Hello-World", - "owner": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World", - "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World.git", - "mirror_url": "git:git.example.com/octocat/Hello-World", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World", - "homepage": "https://github.com", - "language": null, - "forks_count": 9, - "forks": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues_count": 0, - "open_issues": 0, - "is_template": false, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true - }, - "allow_rebase_merge": true, - "allow_auto_merge": false, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://github.com/licenses/mit" - } - } - }, "public-repository-items": { "value": [ { @@ -91588,397 +307933,6 @@ } ] }, - "scim-enterprise-group-list": { - "value": { - "schemas": [ - "urn:ietf:params:scim:api:messages:2.0:ListResponse" - ], - "totalResults": 2, - "itemsPerPage": 2, - "startIndex": 1, - "Resources": [ - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" - }, - { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" - } - ], - "meta": { - "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:00", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" - } - }, - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "id": "5e75bbbb-aa1a-11ea-8644-75ff655cdddd", - "externalId": null, - "displayName": "octo-docs-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" - } - ], - "meta": { - "resourceType": "Group", - "created": "2020-06-09T16:28:01.000+10:00", - "lastModified": "2020-06-09T16:28:01.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/5e75bbbb-aa1a-11ea-8644-75ff655cdddd" - } - } - ] - } - }, - "scim-enterprise-group": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" - }, - { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" - } - ], - "meta": { - "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:0", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" - } - } - }, - "scim-enterprise-group-2": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" - } - ], - "meta": { - "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:00", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" - } - } - }, - "scim-enterprise-user-list": { - "value": { - "schemas": [ - "urn:ietf:params:scim:api:messages:2.0:ListResponse" - ], - "totalResults": 2, - "itemsPerPage": 2, - "startIndex": 1, - "Resources": [ - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "octocat@github.com", - "name": { - "givenName": "Mona", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "octocat@github.com", - "primary": true, - "type": "work" - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2020-05-30T04:02:34.000+10:00", - "lastModified": "2020-05-30T04:05:04.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - } - }, - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5", - "externalId": "sdfoiausdofiua", - "userName": "hubot@example.com", - "name": { - "givenName": "hu", - "familyName": "bot" - }, - "emails": [ - { - "value": "hubot@example.com", - "type": "work", - "primary": true - } - ], - "groups": [ - - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2020-06-05T08:29:40.000+10:00", - "lastModified": "2020-06-05T08:30:19.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5" - } - } - ] - } - }, - "scim-enterprise-user": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", - "name": { - "givenName": "Mona", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "type": "work", - "primary": true - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - } - } - }, - "scim-enterprise-user-2": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", - "name": { - "givenName": "Monalisa", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "type": "work", - "primary": true - }, - { - "value": "monalisa@octocat.github.com", - "type": "home" - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - } - } - }, - "scim-user-list-response-with-filter": { - "summary": "Response with filter", - "value": { - "schemas": [ - "urn:ietf:params:scim:api:messages:2.0:ListResponse" - ], - "totalResults": 1, - "itemsPerPage": 1, - "startIndex": 1, - "Resources": [ - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "5fc0c238-1112-11e8-8e45-920c87bdbd75", - "externalId": "00u1dhhb1fkIGP7RL1d8", - "userName": "octocat@github.com", - "displayName": "Mona Octocat", - "name": { - "givenName": "Mona", - "familyName": "Octocat", - "formatted": "Mona Octocat" - }, - "emails": [ - { - "value": "octocat@github.com", - "primary": true - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2018-02-13T15:05:24.000-08:00", - "lastModified": "2018-02-13T15:05:55.000-08:00", - "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/5fc0c238-1112-11e8-8e45-920c87bdbd75" - } - } - ] - } - }, - "scim-user-list-response-without-filter": { - "summary": "Response without filter", - "value": { - "schemas": [ - "urn:ietf:params:scim:api:messages:2.0:ListResponse" - ], - "totalResults": 2, - "itemsPerPage": 2, - "startIndex": 1, - "Resources": [ - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "edefdfedf-050c-11e7-8d32", - "externalId": "a7d0f98382", - "userName": "mona.octocat@okta.example.com", - "displayName": "Mona Octocat", - "name": { - "givenName": "Mona", - "familyName": "Octocat", - "formatted": "Mona Octocat" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "primary": true - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/edefdfedf-050c-11e7-8d32" - } - }, - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "77563764-eb6-24-0598234-958243", - "externalId": "sdfoiausdofiua", - "userName": "hubot@example.com", - "displayName": "hu bot", - "name": { - "givenName": "hu", - "familyName": "bot", - "formatted": "hu bot" - }, - "emails": [ - { - "value": "hubot@example.com", - "primary": true - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/77563764-eb6-24-0598234-958243" - } - } - ] - } - }, - "scim-user": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "edefdfedf-050c-11e7-8d32", - "externalId": "a7d0f98382", - "userName": "mona.octocat@okta.example.com", - "displayName": "Monalisa Octocat", - "name": { - "givenName": "Monalisa", - "familyName": "Octocat", - "formatted": "Monalisa Octocat" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "primary": true - }, - { - "value": "monalisa@octocat.github.com" - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/edefdfedf-050c-11e7-8d32" - } - } - }, "code-search-result-item-paginated": { "value": { "total_count": 7, @@ -92112,8 +308066,7 @@ "type": "User", "site_admin": false }, - "committer": { - }, + "committer": {}, "parents": [ { "url": "https://api.github.com/repos/octocat/Spoon-Knife/commits/a30c19e3f13765a3b48829788bc1cb8b4e95cee4", @@ -92291,7 +308244,8 @@ "body": "...", "score": 1, "locked": true, - "author_association": "COLLABORATOR" + "author_association": "COLLABORATOR", + "state_reason": "completed" } ] } @@ -92423,6 +308377,7 @@ "has_downloads": true, "archived": true, "disabled": true, + "visibility": "private", "license": { "key": "mit", "name": "MIT License", @@ -92650,132 +308605,13 @@ "updated_at": "2011-01-26T19:14:43Z", "permissions": { "admin": false, + "maintain": false, "push": false, + "triage": false, "pull": true }, + "role_name": "read", "allow_rebase_merge": true, - "template_repository": { - "id": 1296269, - "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "name": "Hello-World-Template", - "full_name": "octocat/Hello-World-Template", - "owner": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "private": false, - "html_url": "https://github.com/octocat/Hello-World-Template", - "description": "This your first repo!", - "fork": false, - "url": "https://api.github.com/repos/octocat/Hello-World-Template", - "archive_url": "https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref}", - "assignees_url": "https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user}", - "blobs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch}", - "collaborators_url": "https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/octocat/Hello-World-Template/comments{/number}", - "commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha}", - "compare_url": "https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path}", - "contributors_url": "https://api.github.com/repos/octocat/Hello-World-Template/contributors", - "deployments_url": "https://api.github.com/repos/octocat/Hello-World-Template/deployments", - "downloads_url": "https://api.github.com/repos/octocat/Hello-World-Template/downloads", - "events_url": "https://api.github.com/repos/octocat/Hello-World-Template/events", - "forks_url": "https://api.github.com/repos/octocat/Hello-World-Template/forks", - "git_commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha}", - "git_url": "git:github.com/octocat/Hello-World-Template.git", - "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number}", - "issues_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues{/number}", - "keys_url": "https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id}", - "labels_url": "https://api.github.com/repos/octocat/Hello-World-Template/labels{/name}", - "languages_url": "https://api.github.com/repos/octocat/Hello-World-Template/languages", - "merges_url": "https://api.github.com/repos/octocat/Hello-World-Template/merges", - "milestones_url": "https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number}", - "notifications_url": "https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating}", - "pulls_url": "https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number}", - "releases_url": "https://api.github.com/repos/octocat/Hello-World-Template/releases{/id}", - "ssh_url": "git@github.com:octocat/Hello-World-Template.git", - "stargazers_url": "https://api.github.com/repos/octocat/Hello-World-Template/stargazers", - "statuses_url": "https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha}", - "subscribers_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscribers", - "subscription_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscription", - "tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/tags", - "teams_url": "https://api.github.com/repos/octocat/Hello-World-Template/teams", - "trees_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha}", - "clone_url": "https://github.com/octocat/Hello-World-Template.git", - "mirror_url": "git:git.example.com/octocat/Hello-World-Template", - "hooks_url": "https://api.github.com/repos/octocat/Hello-World-Template/hooks", - "svn_url": "https://svn.github.com/octocat/Hello-World-Template", - "homepage": "https://github.com", - "language": null, - "forks": 9, - "forks_count": 9, - "stargazers_count": 80, - "watchers_count": 80, - "watchers": 80, - "size": 108, - "default_branch": "master", - "open_issues": 0, - "open_issues_count": 0, - "is_template": true, - "license": { - "key": "mit", - "name": "MIT License", - "url": "https://api.github.com/licenses/mit", - "spdx_id": "MIT", - "node_id": "MDc6TGljZW5zZW1pdA==", - "html_url": "https://api.github.com/licenses/mit" - }, - "topics": [ - "octocat", - "atom", - "electron", - "api" - ], - "has_issues": true, - "has_projects": true, - "has_wiki": true, - "has_pages": false, - "has_downloads": true, - "archived": false, - "disabled": false, - "visibility": "public", - "pushed_at": "2011-01-26T19:06:43Z", - "created_at": "2011-01-26T19:01:12Z", - "updated_at": "2011-01-26T19:14:43Z", - "permissions": { - "admin": false, - "push": false, - "pull": true - }, - "allow_rebase_merge": true, - "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", - "allow_squash_merge": true, - "allow_auto_merge": false, - "delete_branch_on_merge": true, - "allow_merge_commit": true, - "subscribers_count": 42, - "network_count": 0 - }, "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", "allow_squash_merge": true, "allow_auto_merge": false, @@ -92796,17 +308632,6 @@ "watchers": 1 } }, - "group-mapping-2": { - "value": { - "groups": [ - { - "group_id": "123", - "group_name": "Octocat admins", - "group_description": "The people who configure your octoworld." - } - ] - } - }, "private-user-response-with-public-and-private-profile-information": { "summary": "Response with public and private profile information", "value": { @@ -92941,6 +308766,686 @@ } } }, + "codespaces-user-public-key": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + }, + "user-codespaces-secret": { + "value": { + "name": "CODESPACE_GH_SECRET", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/user/codespaces/secrets/CODESPACE_GH_SECRET/repositories" + } + }, + "user-export-details": { + "value": { + "state": "succeeded", + "completed_at": "2022-01-01T14:59:22Z", + "branch": "codespace-monalisa-octocat-hello-world-g4wpq6h95q", + "sha": "fd95a81ca01e48ede9f39c799ecbcef817b8a3b2", + "id": "latest", + "export_url": "https://api.github.com/user/codespaces/:name/exports/latest" + } + }, + "codespace-with-full-repository": { + "value": { + "id": 1, + "name": "monalisa-octocat-hello-world-g4wpq6h95q", + "environment_id": "26a7c758-7299-4a73-b978-5a92a7ae98a0", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "billable_owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "language": null, + "forks_count": 9, + "forks": 9, + "stargazers_count": 80, + "watchers_count": 80, + "watchers": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "open_issues": 0, + "is_template": false, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "pull": true, + "push": false, + "admin": false + }, + "allow_rebase_merge": true, + "template_repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World-Template", + "full_name": "octocat/Hello-World-Template", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World-Template", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World-Template", + "archive_url": "https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World-Template/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World-Template/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World-Template/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World-Template/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World-Template/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World-Template/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World-Template.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World-Template/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World-Template/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World-Template/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World-Template/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World-Template.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World-Template/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World-Template/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World-Template.git", + "mirror_url": "git:git.example.com/octocat/Hello-World-Template", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World-Template/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World-Template", + "homepage": "https://github.com", + "language": null, + "forks": 9, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "watchers": 80, + "size": 108, + "default_branch": "master", + "open_issues": 0, + "open_issues_count": 0, + "is_template": true, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0 + }, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "allow_forking": true, + "subscribers_count": 42, + "network_count": 0, + "organization": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "Organization", + "site_admin": false + }, + "parent": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + }, + "source": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": [ + "octocat", + "atom", + "electron", + "api" + ], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "allow_rebase_merge": true, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "machine": { + "name": "standardLinux", + "display_name": "4 cores, 16 GB RAM, 64 GB storage", + "operating_system": "linux", + "storage_in_bytes": 68719476736, + "memory_in_bytes": 17179869184, + "cpus": 4 + }, + "prebuild": false, + "devcontainer_path": ".devcontainer/devcontainer.json", + "created_at": "2021-10-14T00:53:30-06:00", + "updated_at": "2021-10-14T00:53:32-06:00", + "last_used_at": "2021-10-14T00:53:30-06:00", + "state": "Available", + "url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q", + "git_status": { + "ahead": 0, + "behind": 0, + "has_unpushed_changes": false, + "has_uncommitted_changes": false, + "ref": "main" + }, + "location": "WestUs2", + "idle_timeout_minutes": 60, + "retention_period_minutes": 43200, + "retention_expires_at": null, + "web_url": "https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev", + "machines_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines", + "start_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start", + "stop_url": "https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1", + "recent_folders": [], + "template": null + } + }, + "packages-for-user": { + "value": [ + { + "id": 197, + "name": "hello_docker", + "package_type": "container", + "owner": { + "login": "octocat", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.octocatusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "User", + "site_admin": false + }, + "version_count": 1, + "visibility": "private", + "url": "https://api.github.com/orgs/github/packages/container/hello_docker", + "created_at": "2020-05-19T22:19:11Z", + "updated_at": "2020-05-19T22:19:11Z", + "html_url": "https://github.com/orgs/github/packages/container/package/hello_docker" + }, + { + "id": 198, + "name": "goodbye_docker", + "package_type": "container", + "owner": { + "login": "github", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "User", + "site_admin": false + }, + "version_count": 2, + "visibility": "private", + "url": "https://api.github.com/user/octocat/packages/container/goodbye_docker", + "created_at": "2020-05-20T22:19:11Z", + "updated_at": "2020-05-20T22:19:11Z", + "html_url": "https://github.com/user/octocat/packages/container/package/goodbye_docker" + } + ] + }, "email-items-3": { "value": [ { @@ -92987,12 +309492,13 @@ "value": [ { "id": 3, + "name": "Octocat's GPG Key", "primary_key_id": 2, "key_id": "3262EFF25BA0D270", "public_key": "xsBNBFayYZ...", "emails": [ { - "email": "mastahyeti@users.noreply.github.com", + "email": "octocat@users.noreply.github.com", "verified": true } ], @@ -93002,18 +309508,14 @@ "primary_key_id": 3, "key_id": "4A595D4C72EE49C7", "public_key": "zsBNBFayYZ...", - "emails": [ - - ], - "subkeys": [ - - ], + "emails": [], "can_sign": false, "can_encrypt_comms": true, "can_encrypt_storage": true, "can_certify": false, "created_at": "2016-03-24T11:31:04-06:00", - "expires_at": "2016-03-24T11:31:04-07:00" + "expires_at": "2016-03-24T11:31:04-07:00", + "revoked": false } ], "can_sign": true, @@ -93022,6 +309524,7 @@ "can_certify": true, "created_at": "2016-03-24T11:31:04-06:00", "expires_at": "2016-03-24T11:31:04-07:00", + "revoked": false, "raw_key": "string" } ] @@ -93029,12 +309532,13 @@ "gpg-key": { "value": { "id": 3, + "name": "Octocat's GPG Key", "primary_key_id": 2, "key_id": "3262EFF25BA0D270", "public_key": "xsBNBFayYZ...", "emails": [ { - "email": "mastahyeti@users.noreply.github.com", + "email": "octocat@users.noreply.github.com", "verified": true } ], @@ -93044,18 +309548,14 @@ "primary_key_id": 3, "key_id": "4A595D4C72EE49C7", "public_key": "zsBNBFayYZ...", - "emails": [ - - ], - "subkeys": [ - - ], + "emails": [], "can_sign": false, "can_encrypt_comms": true, "can_encrypt_storage": true, "can_certify": false, "created_at": "2016-03-24T11:31:04-06:00", - "expires_at": "2016-03-24T11:31:04-07:00" + "expires_at": "2016-03-24T11:31:04-07:00", + "revoked": false } ], "can_sign": true, @@ -93064,6 +309564,7 @@ "can_certify": true, "created_at": "2016-03-24T11:31:04-06:00", "expires_at": "2016-03-24T11:31:04-07:00", + "revoked": false, "raw_key": "\"-----BEGIN PGP PUBLIC KEY BLOCK-----\\nVersion: GnuPG v2\\n\\nmQENBFayYZ0BCAC4hScoJXXpyR+MXGcrBxElqw3FzCVvkViuyeko+Jp76QJhg8kr\\nucRTxbnOoHfda/FmilEa/wxf9ch5/PSrrL26FxEoPHhJolp8fnIDLQeITn94NYdB\\nZtnnEKslpPrG97qSUWIchvyqCPtvOb8+8fWvGx9K/ZWcEEdh1X8+WFR2jMENMeoX\\nwxHWQoPnS7LpX/85/M7VUcJxvDVfv+eHsnQupmE5bGarKNih0oMe3LbdN3qA5PTz\\nSCm6Iudar1VsQ+xTz08ymL7t4pnEtLguQ7EyatFHCjxNblv5RzxoL0tDgN3HqoDz\\nc7TEA+q4RtDQl9amcvQ95emnXmZ974u7UkYdABEBAAG0HlNvbWUgVXNlciA8c29t\\nZXVzZXJAZ21haWwuY29tPokBOAQTAQIAIgUCVrJhnQIbAwYLCQgHAwIGFQgCCQoL\\nBBYCAwECHgECF4AACgkQMmLv8lug0nAViQgArWjI55+7p48URr2z9Jvak+yrBTx1\\nzkufltQAnHTJkq+Kl9dySSmTnOop8o3rE4++IOpYV5Y36PkKf9EZMk4n1RQiDPKE\\nAFtRVTkRaoWzOir9KQXJPfhKrl01j/QzY+utfiMvUoBJZ9ybq8Pa885SljW9lbaX\\nIYw+hl8ZdJ2KStvGrEyfQvRyq3aN5c9TV//4BdGnwx7Qabq/U+G18lizG6f/yq15\\ned7t0KELaCfeKPvytp4VE9/z/Ksah/h3+Qilx07/oG2Ae5kC1bEC9coD/ogPUhbv\\nb2bsBIoY9E9YwsLoif2lU+o1t76zLgUktuNscRRUKobW028H1zuFS/XQhrkBDQRW\\nsmGdAQgApnyyv3i144OLYy0O4UKQxd3e10Y3WpDwfnGIBefAI1m7RxnUxBag/DsU\\n7gi9qLEC4VHSfq4eiNfr1LJOyCL2edTgCWFgBhVjbXjZe6YAOrAnhxwCErnN0Y7N\\n6s8wVh9fObSOyf8ZE6G7JeKpcq9Q6gd/KxagfD48a1v+fyRHpyQc6J9pUEmtrDJ7\\nBjmsd2VWzLBvNWdHyxDNtZweIaqIO9VUYYpr1mtTliNBOZLUelmgrt7HBRcJpWMA\\nS8muVVbuP5MK0trLBq/JB8qUH3zRzB/PhMgzmkIfjEK1VYDWm4E8DYyTWEJcHqkb\\neqFsNjrIlwPaA122BWC6gUOPwwH+oQARAQABiQEfBBgBAgAJBQJWsmGdAhsMAAoJ\\nEDJi7/JboNJwAyAIALd4xcdmGbZD98gScJzqwzkOMcO8zFHqHNvJ42xIFvGny7c0\\n1Rx7iyrdypOby5AxE+viQcjG4rpLZW/xKYBNGrCfDyQO7511I0v8x20EICMlMfD/\\nNrWQCzesEPcUlKTP07d+sFyP8AyseOidbzY/92CpskTgdSBjY/ntLSaoknl/fjJE\\nQM8OkPqU7IraO1Jzzdnm20d5PZL9+PIwIWdSTedU/vBMTJyNcoqvSfKf1wNC66XP\\nhqfYgXJE564AdWZKA3C0IyCqiv+LHwxLnUHio1a4/r91C8KPzxs6tGxRDjXLd7ms\\nuYFGWymiUGOE/giHlcxdYcHzwLnPDliMQOLiTkK5AQ0EVuxMygEIAOD+bW1cDTmE\\nBxh5JECoqeHuwgl6DlLhnubWPkQ4ZeRzBRAsFcEJQlwlJjrzFDicL+lnm6Qq4tt0\\n560TwHdf15/AKTZIZu7H25axvGNzgeaUkJEJdYAq9zTKWwX7wKyzBszi485nQg97\\nMfAqwhMpDW0Qqf8+7Ug+WEmfBSGv9uL3aQC6WEeIsHfri0n0n8v4XgwhfShXguxO\\nCsOztEsuW7WWKW9P4TngKKv4lCHdPlV6FwxeMzODBJvc2fkHVHnqc0PqszJ5xcF8\\n6gZCpMM027SbpeYWCAD5zwJyYP9ntfO1p2HjnQ1dZaP9FeNcO7uIV1Lnd1eGCu6I\\nsrVp5k1f3isAEQEAAYkCPgQYAQIACQUCVuxMygIbAgEpCRAyYu/yW6DScMBdIAQZ\\nAQIABgUCVuxMygAKCRCKohN4dhq2b4tcCACHxmOHVXNpu47OvUGYQydLgMACUlXN\\nlj+HfE0VReqShxdDmpasAY9IRpuMB2RsGK8GbNP+4SlOlAiPf5SMhS7nZNkNDgQQ\\naZ3HFpgrFmFwmE10BKT4iQtoxELLM57z0qGOAfTsEjWFQa4sF+6IHAQR/ptkdkkI\\nBUEXiMnAwVwBysLIJiLO8qdjB6qp52QkT074JVrwywT/P+DkMfC2k4r/AfEbf6eF\\ndmPDuPk6KD87+hJZsSa5MaMUBQVvRO/mgEkhJRITVu58eWGaBOcQJ8gqurhCqM5P\\nDfUA4TJ7wiqM6sS764vV1rOioTTXkszzhClQqET7hPVnVQjenYgv0EZHNyQH/1f1\\n/CYqvV1vFjM9vJjMbxXsATCkZe6wvBVKD8vLsJAr8N+onKQz+4OPc3kmKq7aESu3\\nCi/iuie5KKVwnuNhr9AzT61vEkKxwHcVFEvHB77F6ZAAInhRvjzmQbD2dlPLLQCC\\nqDj71ODSSAPTEmUy6969bgD9PfWei7kNkBIx7s3eBv8yzytSc2EcuUgopqFazquw\\nFs1+tqGHjBvQfTo6bqbJjp/9Ci2pvde3ElV2rAgUlb3lqXyXjRDqrXosh5GcRPQj\\nK8Nhj1BNhnrCVskE4BP0LYbOHuzgm86uXwGCFsY+w2VOsSm16Jx5GHyG5S5WU3+D\\nIts/HFYRLiFgDLmTlxo=\\n=+OzK\\n-----END PGP PUBLIC KEY BLOCK-----\"" } }, @@ -93093,7 +309594,7 @@ "type": "User", "site_admin": false }, - "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "access_tokens_url": "https://api.github.com/app/installations/1/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/organizations/github/settings/installations/1", "app_id": 1, @@ -93143,7 +309644,7 @@ "type": "User", "site_admin": false }, - "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "access_tokens_url": "https://api.github.com/app/installations/1/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/organizations/github/settings/installations/1", "app_id": 1, @@ -93241,7 +309742,7 @@ "description": "A professional-grade CI solution", "monthly_price_in_cents": 1099, "yearly_price_in_cents": 11870, - "price_model": "flat-rate", + "price_model": "FLAT_RATE", "has_free_trial": true, "unit_name": null, "state": "published", @@ -93260,6 +309761,8 @@ "state": "active", "role": "admin", "organization_url": "https://api.github.com/orgs/octocat", + "direct_membership": true, + "enterprise_teams_providing_indirect_membership": [], "organization": { "login": "github", "id": 1, @@ -93300,6 +309803,11 @@ "state": "pending", "role": "admin", "organization_url": "https://api.github.com/orgs/invitocat", + "direct_membership": false, + "enterprise_teams_providing_indirect_membership": [ + "ent:justice-league", + "ent:security-managers" + ], "organization": { "login": "github", "id": 1, @@ -93343,6 +309851,11 @@ "state": "pending", "role": "admin", "organization_url": "https://api.github.com/orgs/invitocat", + "direct_membership": true, + "enterprise_teams_providing_indirect_membership": [ + "ent:justice-league", + "ent:security-managers" + ], "organization": { "login": "github", "id": 1, @@ -93385,6 +309898,11 @@ "state": "active", "role": "admin", "organization_url": "https://api.github.com/orgs/octocat", + "direct_membership": true, + "enterprise_teams_providing_indirect_membership": [ + "ent:justice-league", + "ent:security-managers" + ], "organization": { "login": "github", "id": 1, @@ -93449,6 +309967,8 @@ "state": "pending", "lock_repositories": true, "exclude_attachments": false, + "exclude_releases": false, + "exclude_owner_projects": false, "repositories": [ { "id": 1296269, @@ -93609,6 +310129,8 @@ "state": "pending", "lock_repositories": true, "exclude_attachments": false, + "exclude_releases": false, + "exclude_owner_projects": false, "repositories": [ { "id": 1296269, @@ -93767,6 +310289,9 @@ "state": "exported", "lock_repositories": true, "exclude_attachments": false, + "exclude_releases": false, + "exclude_owner_projects": false, + "org_metadata_only": false, "repositories": [ { "id": 1296269, @@ -94027,9 +310552,7 @@ "metadata": { "package_type": "container", "container": { - "tags": [ - - ] + "tags": [] } } } @@ -94054,42 +310577,6 @@ } } }, - "project": { - "value": { - "owner_url": "https://api.github.com/users/octocat", - "url": "https://api.github.com/projects/1002603", - "html_url": "https://github.com/users/octocat/projects/1", - "columns_url": "https://api.github.com/projects/1002603/columns", - "id": 1002603, - "node_id": "MDc6UHJvamVjdDEwMDI2MDM=", - "name": "My Projects", - "body": "A board to manage my personal projects.", - "number": 1, - "state": "open", - "creator": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false - }, - "created_at": "2011-04-10T20:09:31Z", - "updated_at": "2014-03-03T18:58:10Z" - } - }, "repository-items-default-response": { "summary": "Default response", "value": [ @@ -94218,6 +310705,38 @@ } ] }, + "social-account-items": { + "value": [ + { + "provider": "twitter", + "url": "https://twitter.com/github" + } + ] + }, + "ssh-signing-key-items": { + "value": [ + { + "id": 2, + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", + "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", + "created_at": "2020-06-11T21:31:57Z" + }, + { + "id": 3, + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJy931234", + "title": "ssh-rsa AAAAB3NzaC1yc2EAAB", + "created_at": "2020-07-11T21:31:57Z" + } + ] + }, + "ssh-signing-key": { + "value": { + "id": 2, + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", + "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", + "created_at": "2020-06-11T21:31:57Z" + } + }, "starred-repository-items-alternative-response-with-star-creation-timestamps": { "summary": "Alternative response with star creation timestamps", "value": [ @@ -94360,6 +310879,7 @@ "slug": "justice-league", "description": "A great team.", "privacy": "closed", + "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", @@ -94438,146 +310958,1971 @@ "updated_at": "2008-01-14T04:33:35Z" } }, - "public-user-response-with-git-hub-plan-information": { - "summary": "Response with GitHub plan information", + "public-user-response-with-git-hub-plan-information": { + "summary": "Response with GitHub plan information", + "value": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "name": "monalisa octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "monatheoctocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z", + "plan": { + "name": "pro", + "space": 976562499, + "collaborators": 0, + "private_repos": 9999 + } + } + }, + "user-events-items": { + "value": [ + { + "id": "22249084947", + "type": "WatchEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "action": "started" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z" + }, + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": false, + "created_at": "2022-06-07T07:50:26Z" + } + ] + }, + "user-org-events-items": { + "value": [ + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octo-org/octo-repo", + "url": "https://api.github.com/repos/octo-org/octo-repo" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": false, + "created_at": "2022-06-09T12:47:28Z", + "org": { + "id": 9919, + "login": "octo-org", + "gravatar_id": "", + "url": "https://api.github.com/orgs/octo-org", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?" + } + }, + { + "id": "22196946742", + "type": "CreateEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octo-org/octo-repo", + "url": "https://api.github.com/repos/octo-org/octo-repo" + }, + "payload": { + "ref": "master", + "ref_type": "repository", + "full_ref": "refs/heads/master", + "master_branch": "master", + "description": null, + "pusher_type": "user" + }, + "public": false, + "created_at": "2022-06-07T07:50:26Z", + "org": { + "id": 9919, + "login": "octo-org", + "gravatar_id": "", + "url": "https://api.github.com/orgs/octo-org", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?" + } + } + ] + }, + "user-public-events-items": { + "value": [ + { + "id": "22249084947", + "type": "WatchEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "action": "started" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z" + }, + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": true, + "created_at": "2022-06-08T23:29:25Z" + } + ] + }, + "hovercard": { + "value": { + "contexts": [ + { + "message": "Owns this repository", + "octicon": "repo" + } + ] + } + }, + "key-simple-items": { + "value": [ + { + "id": 1, + "key": "ssh-rsa AAA..." + } + ] + }, + "package-versions-for-user": { + "value": [ + { + "id": 3497268, + "name": "0.3.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/3497268", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2020-08-31T15:22:11Z", + "updated_at": "2020-08-31T15:22:12Z", + "description": "Project for octocats", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.3.0", + "metadata": { + "package_type": "rubygems" + } + }, + { + "id": 387039, + "name": "0.2.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2019-12-01T20:49:29Z", + "updated_at": "2019-12-01T20:49:30Z", + "description": "Project for octocats", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0", + "metadata": { + "package_type": "rubygems" + } + }, + { + "id": 169770, + "name": "0.1.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/169770", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2019-10-20T14:17:14Z", + "updated_at": "2019-10-20T14:17:15Z", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.1.0", + "metadata": { + "package_type": "rubygems" + } + } + ] + }, + "package-version-user": { + "value": { + "id": 387039, + "name": "0.2.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2019-12-01T20:49:29Z", + "updated_at": "2019-12-01T20:49:30Z", + "description": "Octo-name client for Ruby", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0", + "metadata": { + "package_type": "rubygems" + } + } + }, + "user-received-events-items": { + "value": [ + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z" + }, + { + "id": "22196946742", + "type": "CreateEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "ref": "master", + "ref_type": "repository", + "full_ref": "refs/heads/master", + "master_branch": "master", + "description": null, + "pusher_type": "user" + }, + "public": false, + "created_at": "2022-06-07T07:50:26Z" + } + ] + }, + "user-received-public-events-items": { + "value": [ + { + "id": "22249084964", + "type": "PushEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "repository_id": 1296269, + "push_id": 10115855396, + "ref": "refs/heads/master", + "head": "7a8f3ac80e2ad2f6842cb86f576d4bfe2c03e300", + "before": "883efe034920928c47fe18598c01249d1a9fdabd" + }, + "public": true, + "created_at": "2022-06-09T12:47:28Z" + }, + { + "id": "22196946742", + "type": "CreateEvent", + "actor": { + "id": 583231, + "login": "octocat", + "display_login": "octocat", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4" + }, + "repo": { + "id": 1296269, + "name": "octocat/Hello-World", + "url": "https://api.github.com/repos/octocat/Hello-World" + }, + "payload": { + "ref": "master", + "ref_type": "repository", + "full_ref": "refs/heads/master", + "master_branch": "master", + "description": null, + "pusher_type": "user" + }, + "public": false, + "created_at": "2022-06-07T07:50:26Z" + } + ] + }, + "billing-premium-request-usage-report-user": { + "value": { + "timePeriod": { + "year": 2025 + }, + "user": "monalisa", + "usageItems": [ + { + "product": "Copilot", + "sku": "Copilot Premium Request", + "model": "GPT-5", + "unitType": "requests", + "pricePerUnit": 0.04, + "grossQuantity": 100, + "grossAmount": 4.0, + "discountQuantity": 0, + "discountAmount": 0.0, + "netQuantity": 100, + "netAmount": 4.0 + } + ] + } + }, + "billing-usage-report-user": { + "value": { + "usageItems": [ + { + "date": "2023-08-01", + "product": "Actions", + "sku": "Actions Linux", + "quantity": 100, + "unitType": "minutes", + "pricePerUnit": 0.008, + "grossAmount": 0.8, + "discountAmount": 0, + "netAmount": 0.8, + "repositoryName": "user/example" + } + ] + } + }, + "billing-usage-summary-report-user": { + "value": { + "timePeriod": { + "year": 2025 + }, + "user": "monalisa", + "usageItems": [ + { + "product": "Actions", + "sku": "actions_linux", + "unitType": "minutes", + "pricePerUnit": 0.008, + "grossQuantity": 1000, + "grossAmount": 8.0, + "discountQuantity": 0, + "discountAmount": 0.0, + "netQuantity": 1000, + "netAmount": 8.0 + } + ] + } + }, + "check-run-completed": { + "value": { + "action": "completed", + "check_run": { + "id": 128620228, + "node_id": "MDg6Q2hlY2tSdW4xMjg2MjAyMjg=", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "external_id": "", + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228", + "html_url": "https://github.com/Codertocat/Hello-World/runs/128620228", + "details_url": "https://octocoders.github.io", + "status": "completed", + "conclusion": "success", + "started_at": "2019-05-15T15:21:12Z", + "completed_at": "2019-05-15T15:21:45Z", + "output": { + "title": null, + "summary": null, + "text": null, + "annotations_count": 0, + "annotations_url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations" + }, + "name": "Octocoders-linter", + "check_suite": { + "id": 118578147, + "node_id": "MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc=", + "head_branch": "changes", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "status": "completed", + "conclusion": null, + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147", + "before": "6113728f27ae82c7b1a177c8d03f9e96e0adf246", + "after": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ], + "deployment": { + "url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728", + "id": 326191728, + "node_id": "MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg=", + "task": "deploy", + "original_environment": "lab", + "environment": "lab", + "description": null, + "created_at": "2021-02-18T08:22:48Z", + "updated_at": "2021-02-18T09:47:16Z", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses", + "repository_url": "https://api.github.com/repos/Codertocat/Hello-World" + }, + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "created_at": "2019-05-15T15:20:31Z", + "updated_at": "2019-05-15T15:20:31Z" + }, + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ] + }, + "repository": { + "id": 186853002, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": false, + "owner": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2019-05-15T15:19:25Z", + "updated_at": "2019-05-15T15:21:03Z", + "pushed_at": "2019-05-15T15:20:57Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Ruby", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": null, + "forks": 1, + "open_issues": 2, + "watchers": 0, + "default_branch": "master", + "is_template": false + }, + "sender": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "check-run-completed-form-encoded": { + "value": { + "payload": "%7B%22action%22%3A%22completed%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3A%22success%22%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3A%222019-05-15T15%3A21%3A45Z%22%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%2C%22is_template%22%3Afalse%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" + } + }, + "check-run-created": { + "value": { + "action": "created", + "check_run": { + "id": 128620228, + "node_id": "MDg6Q2hlY2tSdW4xMjg2MjAyMjg=", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "external_id": "", + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228", + "html_url": "https://github.com/Codertocat/Hello-World/runs/128620228", + "details_url": "https://octocoders.github.io", + "status": "queued", + "conclusion": null, + "started_at": "2019-05-15T15:21:12Z", + "completed_at": null, + "output": { + "title": null, + "summary": null, + "text": null, + "annotations_count": 0, + "annotations_url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations" + }, + "name": "Octocoders-linter", + "check_suite": { + "id": 118578147, + "node_id": "MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc=", + "head_branch": "changes", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "status": "queued", + "conclusion": null, + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147", + "before": "6113728f27ae82c7b1a177c8d03f9e96e0adf246", + "after": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ], + "deployment": { + "url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728", + "id": 326191728, + "node_id": "MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg=", + "task": "deploy", + "original_environment": "lab", + "environment": "lab", + "description": null, + "created_at": "2021-02-18T08:22:48Z", + "updated_at": "2021-02-18T09:47:16Z", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses", + "repository_url": "https://api.github.com/repos/Codertocat/Hello-World" + }, + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "created_at": "2019-05-15T15:20:31Z", + "updated_at": "2019-05-15T15:20:31Z" + }, + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ] + }, + "repository": { + "id": 186853002, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": false, + "owner": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2019-05-15T15:19:25Z", + "updated_at": "2019-05-15T15:21:03Z", + "pushed_at": "2019-05-15T15:20:57Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Ruby", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": null, + "forks": 1, + "open_issues": 2, + "watchers": 0, + "default_branch": "master", + "is_template": false + }, + "sender": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "check-run-created-form-encoded": { + "value": { + "payload": "%7B%22action%22%3A%22created%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3Anull%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%2C%22is_template%22%3Afalse%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" + } + }, + "check-run-requested-action": { + "value": { + "action": "requested_action", + "check_run": { + "id": 128620228, + "node_id": "MDg6Q2hlY2tSdW4xMjg2MjAyMjg=", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "external_id": "", + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228", + "html_url": "https://github.com/Codertocat/Hello-World/runs/128620228", + "details_url": "https://octocoders.github.io", + "status": "queued", + "conclusion": null, + "started_at": "2019-05-15T15:21:12Z", + "completed_at": null, + "output": { + "title": null, + "summary": null, + "text": null, + "annotations_count": 0, + "annotations_url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations" + }, + "name": "Octocoders-linter", + "check_suite": { + "id": 118578147, + "node_id": "MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc=", + "head_branch": "changes", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "status": "queued", + "conclusion": null, + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147", + "before": "6113728f27ae82c7b1a177c8d03f9e96e0adf246", + "after": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ], + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "created_at": "2019-05-15T15:20:31Z", + "updated_at": "2019-05-15T15:20:31Z" + }, + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ], + "deployment": { + "url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728", + "id": 326191728, + "node_id": "MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg=", + "task": "deploy", + "original_environment": "lab", + "environment": "lab", + "description": null, + "created_at": "2021-02-18T08:22:48Z", + "updated_at": "2021-02-18T09:47:16Z", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses", + "repository_url": "https://api.github.com/repos/Codertocat/Hello-World" + } + }, + "requested_action": { + "identifier": "lgtm|1234" + }, + "repository": { + "id": 186853002, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": false, + "owner": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2019-05-15T15:19:25Z", + "updated_at": "2019-05-15T15:21:03Z", + "pushed_at": "2019-05-15T15:20:57Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Ruby", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": null, + "forks": 1, + "open_issues": 2, + "watchers": 0, + "default_branch": "master" + }, + "sender": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "check-run-requested-action-form-encoded": { "value": { - "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", - "gravatar_id": "", - "url": "https://api.github.com/users/octocat", - "html_url": "https://github.com/octocat", - "followers_url": "https://api.github.com/users/octocat/followers", - "following_url": "https://api.github.com/users/octocat/following{/other_user}", - "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", - "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", - "organizations_url": "https://api.github.com/users/octocat/orgs", - "repos_url": "https://api.github.com/users/octocat/repos", - "events_url": "https://api.github.com/users/octocat/events{/privacy}", - "received_events_url": "https://api.github.com/users/octocat/received_events", - "type": "User", - "site_admin": false, - "name": "monalisa octocat", - "company": "GitHub", - "blog": "https://github.com/blog", - "location": "San Francisco", - "email": "octocat@github.com", - "hireable": false, - "bio": "There once was...", - "twitter_username": "monatheoctocat", - "public_repos": 2, - "public_gists": 1, - "followers": 20, - "following": 0, - "created_at": "2008-01-14T04:33:35Z", - "updated_at": "2008-01-14T04:33:35Z", - "plan": { - "name": "pro", - "space": 976562499, - "collaborators": 0, - "private_repos": 9999 - } + "payload": "%7B%22action%22%3A%22requested_action%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3Anull%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22queued%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%7D%2C%22requested_action%22%3A%7B%22identifier%22%3A%22lgtm%7C1234%22%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" } }, - "hovercard": { + "check-run-rerequested": { "value": { - "contexts": [ - { - "message": "Owns this repository", - "octicon": "repo" - } - ] + "action": "rerequested", + "check_run": { + "id": 128620228, + "node_id": "MDg6Q2hlY2tSdW4xMjg2MjAyMjg=", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "external_id": "", + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228", + "html_url": "https://github.com/Codertocat/Hello-World/runs/128620228", + "details_url": "https://octocoders.github.io", + "status": "completed", + "conclusion": "success", + "started_at": "2019-05-15T15:21:12Z", + "completed_at": "2019-05-15T15:21:45Z", + "output": { + "title": null, + "summary": null, + "text": null, + "annotations_count": 0, + "annotations_url": "https://api.github.com/repos/Codertocat/Hello-World/check-runs/128620228/annotations" + }, + "name": "Octocoders-linter", + "check_suite": { + "id": 118578147, + "node_id": "MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc=", + "head_branch": "changes", + "head_sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "status": "completed", + "conclusion": null, + "url": "https://api.github.com/repos/Codertocat/Hello-World/check-suites/118578147", + "before": "6113728f27ae82c7b1a177c8d03f9e96e0adf246", + "after": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ], + "deployment": { + "url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728", + "id": 326191728, + "node_id": "MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg=", + "task": "deploy", + "original_environment": "lab", + "environment": "lab", + "description": null, + "created_at": "2021-02-18T08:22:48Z", + "updated_at": "2021-02-18T09:47:16Z", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/326191728/statuses", + "repository_url": "https://api.github.com/repos/Codertocat/Hello-World" + }, + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "created_at": "2019-05-15T15:20:31Z", + "updated_at": "2019-05-15T15:20:31Z" + }, + "app": { + "id": 29310, + "node_id": "MDM6QXBwMjkzMTA=", + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "octocoders-linter", + "description": "", + "external_url": "https://octocoders.github.io", + "html_url": "https://github.com/apps/octocoders-linter", + "created_at": "2019-04-19T19:36:24Z", + "updated_at": "2019-04-19T19:36:56Z", + "permissions": { + "administration": "write", + "checks": "write", + "contents": "write", + "deployments": "write", + "issues": "write", + "members": "write", + "metadata": "read", + "organization_administration": "write", + "organization_hooks": "write", + "organization_plan": "read", + "organization_projects": "write", + "organization_user_blocking": "write", + "pages": "write", + "pull_requests": "write", + "repository_hooks": "write", + "repository_projects": "write", + "statuses": "write", + "vulnerability_alerts": "read" + }, + "events": [] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/Codertocat/Hello-World/pulls/2", + "id": 279147437, + "number": 2, + "head": { + "ref": "changes", + "sha": "ec26c3e57ca3a959ca5aad62de7213c562f8c821", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + }, + "base": { + "ref": "master", + "sha": "f95f852bd8fca8fcc58a9a2d6c842781e32a215e", + "repo": { + "id": 186853002, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "name": "Hello-World" + } + } + } + ] + }, + "repository": { + "id": 186853002, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": false, + "owner": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2019-05-15T15:19:25Z", + "updated_at": "2019-05-15T15:21:03Z", + "pushed_at": "2019-05-15T15:20:57Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Ruby", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": null, + "forks": 1, + "open_issues": 2, + "watchers": 0, + "default_branch": "master", + "is_template": false + }, + "sender": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false + } } }, - "key-simple-items": { - "value": [ - { - "id": 1, - "key": "ssh-rsa AAA..." - } - ] + "check-run-rerequested-form-encoded": { + "value": { + "payload": "%7B%22action%22%3A%22rerequested%22%2C%22check_run%22%3A%7B%22id%22%3A128620228%2C%22node_id%22%3A%22MDg6Q2hlY2tSdW4xMjg2MjAyMjg%3D%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22external_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%2Fruns%2F128620228%22%2C%22details_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3A%22success%22%2C%22started_at%22%3A%222019-05-15T15%3A21%3A12Z%22%2C%22completed_at%22%3A%222019-05-15T15%3A21%3A45Z%22%2C%22output%22%3A%7B%22title%22%3Anull%2C%22summary%22%3Anull%2C%22text%22%3Anull%2C%22annotations_count%22%3A0%2C%22annotations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-runs%2F128620228%2Fannotations%22%7D%2C%22name%22%3A%22Octocoders-linter%22%2C%22check_suite%22%3A%7B%22id%22%3A118578147%2C%22node_id%22%3A%22MDEwOkNoZWNrU3VpdGUxMTg1NzgxNDc%3D%22%2C%22head_branch%22%3A%22changes%22%2C%22head_sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22status%22%3A%22completed%22%2C%22conclusion%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcheck-suites%2F118578147%22%2C%22before%22%3A%226113728f27ae82c7b1a177c8d03f9e96e0adf246%22%2C%22after%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%2C%22deployment%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%22%2C%22id%22%3A326191728%2C%22node_id%22%3A%22MDEwOkRlcGxveW1lbnQzMjYxOTE3Mjg%3D%22%2C%22task%22%3A%22deploy%22%2C%22original_environment%22%3A%22lab%22%2C%22environment%22%3A%22lab%22%2C%22description%22%3Anull%2C%22created_at%22%3A%222021-02-18T08%3A22%3A48Z%22%2C%22updated_at%22%3A%222021-02-18T09%3A47%3A16Z%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%2F326191728%2Fstatuses%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22created_at%22%3A%222019-05-15T15%3A20%3A31Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A20%3A31Z%22%7D%2C%22app%22%3A%7B%22id%22%3A29310%2C%22node_id%22%3A%22MDM6QXBwMjkzMTA%3D%22%2C%22owner%22%3A%7B%22login%22%3A%22Octocoders%22%2C%22id%22%3A38302899%2C%22node_id%22%3A%22MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F38302899%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FOctocoders%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FOctocoders%2Freceived_events%22%2C%22type%22%3A%22Organization%22%2C%22site_admin%22%3Afalse%7D%2C%22name%22%3A%22octocoders-linter%22%2C%22description%22%3A%22%22%2C%22external_url%22%3A%22https%3A%2F%2Foctocoders.github.io%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fapps%2Foctocoders-linter%22%2C%22created_at%22%3A%222019-04-19T19%3A36%3A24Z%22%2C%22updated_at%22%3A%222019-04-19T19%3A36%3A56Z%22%2C%22permissions%22%3A%7B%22administration%22%3A%22write%22%2C%22checks%22%3A%22write%22%2C%22contents%22%3A%22write%22%2C%22deployments%22%3A%22write%22%2C%22issues%22%3A%22write%22%2C%22members%22%3A%22write%22%2C%22metadata%22%3A%22read%22%2C%22organization_administration%22%3A%22write%22%2C%22organization_hooks%22%3A%22write%22%2C%22organization_plan%22%3A%22read%22%2C%22organization_projects%22%3A%22write%22%2C%22organization_user_blocking%22%3A%22write%22%2C%22pages%22%3A%22write%22%2C%22pull_requests%22%3A%22write%22%2C%22repository_hooks%22%3A%22write%22%2C%22repository_projects%22%3A%22write%22%2C%22statuses%22%3A%22write%22%2C%22team_discussions%22%3A%22write%22%2C%22vulnerability_alerts%22%3A%22read%22%7D%2C%22events%22%3A%5B%5D%7D%2C%22pull_requests%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%2F2%22%2C%22id%22%3A279147437%2C%22number%22%3A2%2C%22head%22%3A%7B%22ref%22%3A%22changes%22%2C%22sha%22%3A%22ec26c3e57ca3a959ca5aad62de7213c562f8c821%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%2C%22base%22%3A%7B%22ref%22%3A%22master%22%2C%22sha%22%3A%22f95f852bd8fca8fcc58a9a2d6c842781e32a215e%22%2C%22repo%22%3A%7B%22id%22%3A186853002%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22name%22%3A%22Hello-World%22%7D%7D%7D%5D%7D%2C%22repository%22%3A%7B%22id%22%3A186853002%2C%22node_id%22%3A%22MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%22%2C%22name%22%3A%22Hello-World%22%2C%22full_name%22%3A%22Codertocat%2FHello-World%22%2C%22private%22%3Afalse%2C%22owner%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22description%22%3Anull%2C%22fork%22%3Afalse%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FCodertocat%2FHello-World%2Fdeployments%22%2C%22created_at%22%3A%222019-05-15T15%3A19%3A25Z%22%2C%22updated_at%22%3A%222019-05-15T15%3A21%3A03Z%22%2C%22pushed_at%22%3A%222019-05-15T15%3A20%3A57Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22ssh_url%22%3A%22git%40github.com%3ACodertocat%2FHello-World.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%2FHello-World%22%2C%22homepage%22%3Anull%2C%22size%22%3A0%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Ruby%22%2C%22has_issues%22%3Atrue%2C%22has_projects%22%3Atrue%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Atrue%2C%22forks_count%22%3A1%2C%22mirror_url%22%3Anull%2C%22archived%22%3Afalse%2C%22disabled%22%3Afalse%2C%22open_issues_count%22%3A2%2C%22license%22%3Anull%2C%22forks%22%3A1%2C%22open_issues%22%3A2%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%2C%22is_template%22%3Afalse%7D%2C%22sender%22%3A%7B%22login%22%3A%22Codertocat%22%2C%22id%22%3A21031067%2C%22node_id%22%3A%22MDQ6VXNlcjIxMDMxMDY3%22%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FCodertocat%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2FCodertocat%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D" + } }, - "package-versions-for-user": { - "value": [ - { - "id": 3497268, - "name": "0.3.0", - "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/3497268", - "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", - "license": "MIT", - "created_at": "2020-08-31T15:22:11Z", - "updated_at": "2020-08-31T15:22:12Z", - "description": "Project for octocats", - "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.3.0", - "metadata": { - "package_type": "rubygems" - } - }, - { - "id": 387039, - "name": "0.2.0", - "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039", - "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", - "license": "MIT", - "created_at": "2019-12-01T20:49:29Z", - "updated_at": "2019-12-01T20:49:30Z", - "description": "Project for octocats", - "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0", - "metadata": { - "package_type": "rubygems" + "ping": { + "value": { + "zen": "Anything added dilutes everything else.", + "hook_id": 109948940, + "hook": { + "type": "Repository", + "id": 109948940, + "name": "web", + "active": true, + "events": [ + "*" + ], + "config": { + "content_type": "json", + "url": "https://smee.io/****************", + "insecure_ssl": "0" + }, + "updated_at": "2019-05-15T15:20:49Z", + "created_at": "2019-05-15T15:20:49Z", + "url": "https://api.github.com/repos/Octocoders/Hello-World/hooks/109948940", + "test_url": "https://api.github.com/repos/Octocoders/Hello-World/hooks/109948940/test", + "ping_url": "https://api.github.com/repos/Octocoders/Hello-World/hooks/109948940/pings", + "last_response": { + "code": null, + "status": "unused", + "message": null } }, - { - "id": 169770, - "name": "0.1.0", - "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/169770", - "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", - "license": "MIT", - "created_at": "2019-10-20T14:17:14Z", - "updated_at": "2019-10-20T14:17:15Z", - "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.1.0", - "metadata": { - "package_type": "rubygems" - } + "repository": { + "id": 186853261, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMyNjE=", + "name": "Hello-World", + "full_name": "Octocoders/Hello-World", + "private": false, + "owner": { + "login": "Octocoders", + "id": 38302899, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5", + "avatar_url": "https://avatars1.githubusercontent.com/u/38302899?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Octocoders", + "html_url": "https://github.com/Octocoders", + "followers_url": "https://api.github.com/users/Octocoders/followers", + "following_url": "https://api.github.com/users/Octocoders/following{/other_user}", + "gists_url": "https://api.github.com/users/Octocoders/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Octocoders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Octocoders/subscriptions", + "organizations_url": "https://api.github.com/users/Octocoders/orgs", + "repos_url": "https://api.github.com/users/Octocoders/repos", + "events_url": "https://api.github.com/users/Octocoders/events{/privacy}", + "received_events_url": "https://api.github.com/users/Octocoders/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Octocoders/Hello-World", + "description": null, + "fork": true, + "url": "https://api.github.com/repos/Octocoders/Hello-World", + "forks_url": "https://api.github.com/repos/Octocoders/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Octocoders/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Octocoders/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Octocoders/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Octocoders/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Octocoders/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Octocoders/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Octocoders/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Octocoders/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Octocoders/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Octocoders/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Octocoders/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Octocoders/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Octocoders/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Octocoders/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Octocoders/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Octocoders/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Octocoders/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Octocoders/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Octocoders/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Octocoders/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Octocoders/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Octocoders/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Octocoders/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Octocoders/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Octocoders/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Octocoders/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Octocoders/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Octocoders/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Octocoders/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Octocoders/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Octocoders/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Octocoders/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Octocoders/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Octocoders/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Octocoders/Hello-World/deployments", + "created_at": "2019-05-15T15:20:42Z", + "updated_at": "2019-05-15T15:20:45Z", + "pushed_at": "2019-05-15T15:20:33Z", + "git_url": "git://github.com/Octocoders/Hello-World.git", + "ssh_url": "git@github.com:Octocoders/Hello-World.git", + "clone_url": "https://github.com/Octocoders/Hello-World.git", + "svn_url": "https://github.com/Octocoders/Hello-World", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Ruby", + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": null, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master" + }, + "sender": { + "login": "Codertocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": false } - ] + } }, - "package-version-user": { + "ping-form-encoded": { "value": { - "id": 387039, - "name": "0.2.0", - "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039", - "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", - "license": "MIT", - "created_at": "2019-12-01T20:49:29Z", - "updated_at": "2019-12-01T20:49:30Z", - "description": "Octo-name client for Ruby", - "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0", - "metadata": { - "package_type": "rubygems" - } + "payload": "%7B%22hook%22%3A%7B%22active%22%3Atrue%2C%22config%22%3A%7B%22content_type%22%3A%22form%22%2C%22insecure_ssl%22%3A%220%22%2C%22url%22%3A%22https%3A%2F%2Ftest.io%2Fform%22%7D%2C%22created_at%22%3A%222021-10-20T16%3A01%3A58Z%22%2C%22deliveries_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%2Fdeliveries%22%2C%22events%22%3A%5B%22%2A%22%5D%2C%22id%22%3A1234%2C%22last_response%22%3A%7B%22code%22%3Anull%2C%22message%22%3Anull%2C%22status%22%3A%22unused%22%7D%2C%22name%22%3A%22web%22%2C%22ping_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%2Fpings%22%2C%22test_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%2Ftest%22%2C%22type%22%3A%22Repository%22%2C%22updated_at%22%3A%222021-10-20T16%3A01%3A58Z%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%2F1234%22%7D%2C%22hook_id%22%3A1234%2C%22meta%22%3A%7B%22signed_at%22%3A%222021-10-25T19%3A05%3A13%2B00%3A00%22%2C%22event%22%3A%22ping%22%2C%22nonce%22%3A%221231%22%2C%22url%22%3A%22https%3A%2F%2Ftest.io%2Fform%22%7D%2C%22repository%22%3A%7B%22allow_forking%22%3Atrue%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22archived%22%3Afalse%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fassignees%7B%2Fuser%7D%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fbranches%7B%2Fbranch%7D%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo.git%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcomments%7B%2Fnumber%7D%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcommits%7B%2Fsha%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcontents%2F%7B%2Bpath%7D%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fcontributors%22%2C%22created_at%22%3A%222016-12-07T19%3A17%3A19Z%22%2C%22default_branch%22%3A%22master%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fdeployments%22%2C%22description%22%3A%22A%2Btest%2Brepository%2Bfor%2Btest%2B.%22%2C%22disabled%22%3Afalse%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fdownloads%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fevents%22%2C%22fork%22%3Afalse%2C%22forks%22%3A0%2C%22forks_count%22%3A0%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fforks%22%2C%22full_name%22%3A%22testorg%2Ftestrepo%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo.git%22%2C%22has_downloads%22%3Atrue%2C%22has_issues%22%3Atrue%2C%22has_pages%22%3Afalse%2C%22has_projects%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22homepage%22%3A%22%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fhooks%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo%22%2C%22id%22%3A4567%2C%22is_template%22%3Afalse%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fissues%7B%2Fnumber%7D%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fkeys%7B%2Fkey_id%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Flabels%7B%2Fname%7D%22%2C%22language%22%3Anull%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Flanguages%22%2C%22license%22%3Anull%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fmerges%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fmilestones%7B%2Fnumber%7D%22%2C%22mirror_url%22%3Anull%2C%22name%22%3A%22testrepo%22%2C%22node_id%22%3A%22abcd%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22open_issues%22%3A27%2C%22open_issues_count%22%3A27%2C%22owner%22%3A%7B%22avatar_url%22%3A%22https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F1231%3Fv%3D4%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fevents%7B%2Fprivacy%7D%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fgists%7B%2Fgist_id%7D%22%2C%22gravatar_id%22%3A%22%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%22%2C%22id%22%3A4312013%2C%22login%22%3A%22testorg%22%2C%22node_id%22%3A%22abcd%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Forgs%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Freceived_events%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Frepos%22%2C%22site_admin%22%3Afalse%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%2Fsubscriptions%22%2C%22type%22%3A%22Organization%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestorg%22%7D%2C%22private%22%3Atrue%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fpulls%7B%2Fnumber%7D%22%2C%22pushed_at%22%3A%222021-10-08T17%3A33%3A23Z%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Freleases%7B%2Fid%7D%22%2C%22size%22%3A43%2C%22ssh_url%22%3A%22git%40github.com%3Atestorg%2Ftestrepo.git%22%2C%22stargazers_count%22%3A1%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fstargazers%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fstatuses%2F%7Bsha%7D%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fsubscription%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestorg%2Ftestrepo%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Ftags%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fteams%22%2C%22topics%22%3A%5B%5D%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22updated_at%22%3A%222021-10-08T17%3A33%3A26Z%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Ftestorg%2Ftestrepo%22%2C%22visibility%22%3A%22private%22%2C%22watchers%22%3A1%2C%22watchers_count%22%3A1%7D%2C%22sender%22%3A%7B%22avatar_url%22%3A%22https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F1385175%3Fv%3D4%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fevents%7B%2Fprivacy%7D%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fgists%7B%2Fgist_id%7D%22%2C%22gravatar_id%22%3A%22%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Ftestuser%22%2C%22id%22%3A1385175%2C%22login%22%3A%22testuser%22%2C%22node_id%22%3A%22abcd%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Forgs%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Freceived_events%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Frepos%22%2C%22site_admin%22%3Atrue%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%2Fsubscriptions%22%2C%22type%22%3A%22User%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Ftestuser%22%7D%2C%22zen%22%3A%22Responsive%2Bis%2Bbetter%2Bthan%2Bfast.%22%7D" } }, - "project-items-3": { - "value": [ - { - "owner_url": "https://api.github.com/users/octocat", - "url": "https://api.github.com/projects/1002603", - "html_url": "https://github.com/users/octocat/projects/1", - "columns_url": "https://api.github.com/projects/1002603/columns", - "id": 1002603, - "node_id": "MDc6UHJvamVjdDEwMDI2MDM=", - "name": "My Projects", - "body": "A board to manage my personal projects.", - "number": 1, + "secret-scanning-alert-location-created": { + "value": { + "action": "created", + "alert": { + "number": 42, + "created_at": "2020-11-06T18:18:30Z", + "updated_at": "2020-11-06T18:18:30Z", + "url": "https://api.github.com/repos/octocat-repo/hello-world/secret-scanning/alerts/42", + "html_url": "https://github.com/octocat-repo/hello-world/security/secret-scanning/42", + "locations_url": "https://api.github.com/repos/octocat-repo/hello-world/secret-scanning/alerts/42/locations", "state": "open", - "creator": { + "resolution": null, + "resolved_at": null, + "resolved_by": null, + "secret_type": "mailchimp_api_key", + "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2", + "publicly_leaked": false, + "multi_repo": false + }, + "location": { + "type": "commit", + "details": { + "path": "/example/secrets.txt", + "start_line": 1, + "end_line": 1, + "start_column": 1, + "end_column": 64, + "blob_sha": "af5626b4a114abcb82d63db7c8082c3c4756e51b", + "blob_url": "https://api.github.com/repos/octocat-repo/hello-world/git/blobs/af5626b4a114abcb82d63db7c8082c3c4756e51b", + "commit_sha": "f14d7debf9775f957cf4f1e8176da0786431f72b", + "commit_url": "https://api.github.com/repos/octocat-repo/hello-world/git/commits/f14d7debf9775f957cf4f1e8176da0786431f72b" + } + }, + "repository": { + "id": 186853002, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI=", + "name": "hello-world", + "full_name": "octocat-repo/hello-world", + "private": false, + "owner": { "login": "octocat", - "id": 1, - "node_id": "MDQ6VXNlcjE=", - "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", @@ -94593,809 +312938,1474 @@ "type": "User", "site_admin": false }, - "created_at": "2011-04-10T20:09:31Z", - "updated_at": "2014-03-03T18:58:10Z" + "html_url": "https://github.com/octocat-repo/hello-world", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octocat-repo/hello-world", + "forks_url": "https://api.github.com/repos/octocat-repo/hello-world/forks", + "keys_url": "https://api.github.com/repos/octocat-repo/hello-world/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/octocat-repo/hello-world/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/octocat-repo/hello-world/teams", + "hooks_url": "https://api.github.com/repos/octocat-repo/hello-world/hooks", + "issue_events_url": "https://api.github.com/repos/octocat-repo/hello-world/issues/events{/number}", + "events_url": "https://api.github.com/repos/octocat-repo/hello-world/events", + "assignees_url": "https://api.github.com/repos/octocat-repo/hello-world/assignees{/user}", + "branches_url": "https://api.github.com/repos/octocat-repo/hello-world/branches{/branch}", + "tags_url": "https://api.github.com/repos/octocat-repo/hello-world/tags", + "blobs_url": "https://api.github.com/repos/octocat-repo/hello-world/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat-repo/hello-world/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat-repo/hello-world/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/octocat-repo/hello-world/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/octocat-repo/hello-world/statuses/{sha}", + "languages_url": "https://api.github.com/repos/octocat-repo/hello-world/languages", + "stargazers_url": "https://api.github.com/repos/octocat-repo/hello-world/stargazers", + "contributors_url": "https://api.github.com/repos/octocat-repo/hello-world/contributors", + "subscribers_url": "https://api.github.com/repos/octocat-repo/hello-world/subscribers", + "subscription_url": "https://api.github.com/repos/octocat-repo/hello-world/subscription", + "commits_url": "https://api.github.com/repos/octocat-repo/hello-world/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/octocat-repo/hello-world/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/octocat-repo/hello-world/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/octocat-repo/hello-world/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/octocat-repo/hello-world/contents/{+path}", + "compare_url": "https://api.github.com/repos/octocat-repo/hello-world/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/octocat-repo/hello-world/merges", + "archive_url": "https://api.github.com/repos/octocat-repo/hello-world/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/octocat-repo/hello-world/downloads", + "issues_url": "https://api.github.com/repos/octocat-repo/hello-world/issues{/number}", + "pulls_url": "https://api.github.com/repos/octocat-repo/hello-world/pulls{/number}", + "milestones_url": "https://api.github.com/repos/octocat-repo/hello-world/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat-repo/hello-world/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/octocat-repo/hello-world/labels{/name}", + "releases_url": "https://api.github.com/repos/octocat-repo/hello-world/releases{/id}", + "deployments_url": "https://api.github.com/repos/octocat-repo/hello-world/deployments", + "created_at": "2019-05-15T15:19:25Z", + "updated_at": "2019-05-15T15:21:03Z", + "pushed_at": "2019-05-15T15:20:57Z", + "git_url": "git://github.com/octocat-repo/hello-world.git", + "ssh_url": "git@github.com:octocat-repo/hello-world.git", + "clone_url": "https://github.com/octocat-repo/hello-world.git", + "svn_url": "https://github.com/octocat-repo/hello-world", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Ruby", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": null, + "forks": 1, + "open_issues": 2, + "watchers": 0, + "default_branch": "master", + "is_template": false + }, + "sender": { + "login": "octocat", + "id": 21031067, + "node_id": "MDQ6VXNlcjIxMDMxMDY3", + "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false } - ] + } + }, + "secret-scanning-alert-location-created-form-encoded": { + "value": { + "payload": "action%3A%20created%0A%20%20alert%3A%0A%20%20%20%20number%3A%2042%0A%20%20%20%20created_at%3A%20%272020-11-06T18%3A18%3A30Z%27%0A%20%20%20%20updated_at%3A%20%272020-11-06T18%3A18%3A30Z%27%0A%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsecret-scanning%2Falerts%2F42%0A%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world%2Fsecurity%2Fsecret-scanning%2F42%0A%20%20%20%20locations_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsecret-scanning%2Falerts%2F42%2Flocations%0A%20%20%20%20state%3A%20open%0A%20%20%20%20resolution%3A%20null%0A%20%20%20%20resolved_at%3A%20null%0A%20%20%20%20resolved_by%3A%20null%0A%20%20%20%20secret_type%3A%20mailchimp_api_key%0A%20%20%20%20secret%3A%20XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2%0A%20%20location%3A%0A%20%20%20%20type%3A%20commit%0A%20%20%20%20details%3A%0A%20%20%20%20%20%20path%3A%20%27%2Fexample%2Fsecrets.txt%27%0A%20%20%20%20%20%20start_line%3A%201%0A%20%20%20%20%20%20end_line%3A%201%0A%20%20%20%20%20%20start_column%3A%201%0A%20%20%20%20%20%20end_column%3A%2064%0A%20%20%20%20%20%20blob_sha%3A%20af5626b4a114abcb82d63db7c8082c3c4756e51b%0A%20%20%20%20%20%20blob_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fblobs%2Faf5626b4a114abcb82d63db7c8082c3c4756e51b%0A%20%20%20%20%20%20commit_sha%3A%20f14d7debf9775f957cf4f1e8176da0786431f72b%0A%20%20%20%20%20%20commit_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fcommits%2Ff14d7debf9775f957cf4f1e8176da0786431f72b%0A%20%20repository%3A%0A%20%20%20%20id%3A%20186853002%0A%20%20%20%20node_id%3A%20MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI%3D%0A%20%20%20%20name%3A%20hello-world%0A%20%20%20%20full_name%3A%20octocat-repo%2Fhello-world%0A%20%20%20%20private%3A%20false%0A%20%20%20%20owner%3A%0A%20%20%20%20%20%20login%3A%20octocat%0A%20%20%20%20%20%20id%3A%2021031067%0A%20%20%20%20%20%20node_id%3A%20MDQ6VXNlcjIxMDMxMDY3%0A%20%20%20%20%20%20avatar_url%3A%20https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%0A%20%20%20%20%20%20gravatar_id%3A%20%27%27%0A%20%20%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%0A%20%20%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat%0A%20%20%20%20%20%20followers_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowers%0A%20%20%20%20%20%20following_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowing%7B%2Fother_user%7D%0A%20%20%20%20%20%20gists_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fgists%7B%2Fgist_id%7D%0A%20%20%20%20%20%20starred_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%0A%20%20%20%20%20%20subscriptions_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fsubscriptions%0A%20%20%20%20%20%20organizations_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Forgs%0A%20%20%20%20%20%20repos_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Frepos%0A%20%20%20%20%20%20events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fevents%7B%2Fprivacy%7D%0A%20%20%20%20%20%20received_events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Freceived_events%0A%20%20%20%20%20%20type%3A%20User%0A%20%20%20%20%20%20site_admin%3A%20false%0A%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world%0A%20%20%20%20description%3A%0A%20%20%20%20fork%3A%20false%0A%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%0A%20%20%20%20forks_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fforks%0A%20%20%20%20keys_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fkeys%7B%2Fkey_id%7D%0A%20%20%20%20collaborators_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcollaborators%7B%2Fcollaborator%7D%0A%20%20%20%20teams_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fteams%0A%20%20%20%20hooks_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fhooks%0A%20%20%20%20issue_events_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fissues%2Fevents%7B%2Fnumber%7D%0A%20%20%20%20events_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fevents%0A%20%20%20%20assignees_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fassignees%7B%2Fuser%7D%0A%20%20%20%20branches_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fbranches%7B%2Fbranch%7D%0A%20%20%20%20tags_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Ftags%0A%20%20%20%20blobs_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fblobs%7B%2Fsha%7D%0A%20%20%20%20git_tags_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Ftags%7B%2Fsha%7D%0A%20%20%20%20git_refs_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Frefs%7B%2Fsha%7D%0A%20%20%20%20trees_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Ftrees%7B%2Fsha%7D%0A%20%20%20%20statuses_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fstatuses%2F%7Bsha%7D%0A%20%20%20%20languages_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Flanguages%0A%20%20%20%20stargazers_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fstargazers%0A%20%20%20%20contributors_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcontributors%0A%20%20%20%20subscribers_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsubscribers%0A%20%20%20%20subscription_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fsubscription%0A%20%20%20%20commits_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcommits%7B%2Fsha%7D%0A%20%20%20%20git_commits_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fgit%2Fcommits%7B%2Fsha%7D%0A%20%20%20%20comments_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcomments%7B%2Fnumber%7D%0A%20%20%20%20issue_comment_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fissues%2Fcomments%7B%2Fnumber%7D%0A%20%20%20%20contents_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcontents%2F%7B%2Bpath%7D%0A%20%20%20%20compare_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%0A%20%20%20%20merges_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fmerges%0A%20%20%20%20archive_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2F%7Barchive_format%7D%7B%2Fref%7D%0A%20%20%20%20downloads_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fdownloads%0A%20%20%20%20issues_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fissues%7B%2Fnumber%7D%0A%20%20%20%20pulls_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fpulls%7B%2Fnumber%7D%0A%20%20%20%20milestones_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fmilestones%7B%2Fnumber%7D%0A%20%20%20%20notifications_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%0A%20%20%20%20labels_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Flabels%7B%2Fname%7D%0A%20%20%20%20releases_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Freleases%7B%2Fid%7D%0A%20%20%20%20deployments_url%3A%20https%3A%2F%2Fapi.github.com%2Frepos%2Foctocat-repo%2Fhello-world%2Fdeployments%0A%20%20%20%20created_at%3A%20%272019-05-15T15%3A19%3A25Z%27%0A%20%20%20%20updated_at%3A%20%272019-05-15T15%3A21%3A03Z%27%0A%20%20%20%20pushed_at%3A%20%272019-05-15T15%3A20%3A57Z%27%0A%20%20%20%20git_url%3A%20git%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world.git%0A%20%20%20%20ssh_url%3A%20git%40github.com%3Aoctocat-repo%2Fhello-world.git%0A%20%20%20%20clone_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world.git%0A%20%20%20%20svn_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat-repo%2Fhello-world%0A%20%20%20%20homepage%3A%0A%20%20%20%20size%3A%200%0A%20%20%20%20stargazers_count%3A%200%0A%20%20%20%20watchers_count%3A%200%0A%20%20%20%20language%3A%20Ruby%0A%20%20%20%20has_issues%3A%20true%0A%20%20%20%20has_projects%3A%20true%0A%20%20%20%20has_downloads%3A%20true%0A%20%20%20%20has_wiki%3A%20true%0A%20%20%20%20has_pages%3A%20true%0A%20%20%20%20forks_count%3A%201%0A%20%20%20%20mirror_url%3A%0A%20%20%20%20archived%3A%20false%0A%20%20%20%20disabled%3A%20false%0A%20%20%20%20open_issues_count%3A%202%0A%20%20%20%20license%3A%0A%20%20%20%20forks%3A%201%0A%20%20%20%20open_issues%3A%202%0A%20%20%20%20watchers%3A%200%0A%20%20%20%20default_branch%3A%20master%0A%20%20%20%20is_template%3A%20false%0A%20%20sender%3A%0A%20%20%20%20login%3A%20octocat%0A%20%20%20%20id%3A%2021031067%0A%20%20%20%20node_id%3A%20MDQ6VXNlcjIxMDMxMDY3%0A%20%20%20%20avatar_url%3A%20https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F21031067%3Fv%3D4%0A%20%20%20%20gravatar_id%3A%20%27%27%0A%20%20%20%20url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%0A%20%20%20%20html_url%3A%20https%3A%2F%2Fgithub.com%2Foctocat%0A%20%20%20%20followers_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowers%0A%20%20%20%20following_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Ffollowing%7B%2Fother_user%7D%0A%20%20%20%20gists_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fgists%7B%2Fgist_id%7D%0A%20%20%20%20starred_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%0A%20%20%20%20subscriptions_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fsubscriptions%0A%20%20%20%20organizations_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Forgs%0A%20%20%20%20repos_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Frepos%0A%20%20%20%20events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Fevents%7B%2Fprivacy%7D%0A%20%20%20%20received_events_url%3A%20https%3A%2F%2Fapi.github.com%2Fusers%2Foctocat%2Freceived_events%0A%20%20%20%20type%3A%20User%0A%20%20%20%20site_admin%3A%20false%0A" + } } }, - "responses": { - "not_found": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "parameters": { + "pagination-before": { + "name": "before", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "required": false, + "schema": { + "type": "string" } }, - "validation_failed_simple": { - "description": "Validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/validation-error-simple" - } - } + "pagination-after": { + "name": "after", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "required": false, + "schema": { + "type": "string" } }, - "bad_request": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - }, - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - } + "direction": { + "name": "direction", + "description": "The direction to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" } }, - "validation_failed": { - "description": "Validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/validation-error" - } - } + "ghsa_id": { + "name": "ghsa_id", + "description": "The GHSA (GitHub Security Advisory) identifier of the advisory.", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "accepted": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } + "per-page": { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 30 } }, - "preview_header_missing": { - "description": "Preview header missing", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "message", - "documentation_url" - ], - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } - } - } - } + "cursor": { + "name": "cursor", + "description": "Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors.", + "in": "query", + "required": false, + "schema": { + "type": "string" } }, - "forbidden": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "delivery-id": { + "name": "delivery_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" } }, - "requires_authentication": { - "description": "Requires authentication", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "page": { + "name": "page", + "description": "The page number of the results to fetch. For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 1 } }, - "not_modified": { - "description": "Not modified" + "since": { + "name": "since", + "description": "Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } }, - "gone": { - "description": "Gone", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } + "installation-id": { + "name": "installation_id", + "description": "The unique identifier of the installation.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "examples": { + "default": { + "value": 1 } } }, - "service_unavailable": { - "description": "Service unavailable", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } - } - } + "client-id": { + "name": "client_id", + "in": "path", + "required": true, + "description": "The client ID of the GitHub app.", + "schema": { + "type": "string" + }, + "examples": { + "default": { + "value": "Iv1.8a61f9b3a7aba766" } } }, - "forbidden_gist": { - "description": "Forbidden Gist", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "block": { - "type": "object", - "properties": { - "reason": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "html_url": { - "type": "string", - "nullable": true - } - } - }, - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } + "app-slug": { + "name": "app_slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "assignment-id": { + "name": "assignment_id", + "description": "The unique identifier of the classroom assignment.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "classroom-id": { + "name": "classroom_id", + "description": "The unique identifier of the classroom.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "enterprise": { + "name": "enterprise", + "description": "The slug version of the enterprise name.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "configuration-id": { + "name": "configuration_id", + "description": "The unique identifier of the code security configuration.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "dependabot-alert-comma-separated-states": { + "name": "state", + "in": "query", + "description": "A comma-separated list of states. If specified, only alerts with these states will be returned.\n\nCan be: `auto_dismissed`, `dismissed`, `fixed`, `open`", + "schema": { + "type": "string" + } + }, + "dependabot-alert-comma-separated-severities": { + "name": "severity", + "in": "query", + "description": "A comma-separated list of severities. If specified, only alerts with these severities will be returned.\n\nCan be: `low`, `medium`, `high`, `critical`", + "schema": { + "type": "string" + } + }, + "dependabot-alert-comma-separated-ecosystems": { + "name": "ecosystem", + "in": "query", + "description": "A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned.\n\nCan be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust`", + "schema": { + "type": "string" + } + }, + "dependabot-alert-comma-separated-packages": { + "name": "package", + "in": "query", + "description": "A comma-separated list of package names. If specified, only alerts for these packages will be returned.", + "schema": { + "type": "string" + } + }, + "dependabot-alert-comma-separated-epss": { + "name": "epss_percentage", + "in": "query", + "description": "CVE Exploit Prediction Scoring System (EPSS) percentage. Can be specified as:\n- An exact number (`n`)\n- Comparators such as `>n`, `=n`, `<=n`\n- A range like `n..n`, where `n` is a number from 0.0 to 1.0\n\nFilters the list of alerts based on EPSS percentages. If specified, only alerts with the provided EPSS percentages will be returned.", + "schema": { + "type": "string" + } + }, + "dependabot-alert-comma-separated-has": { + "name": "has", + "in": "query", + "description": "Filters the list of alerts based on whether the alert has the given value. If specified, only alerts meeting this criterion will be returned.\nMultiple `has` filters can be passed to filter for alerts that have all of the values. Currently, only `patch` is supported.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "patch" + ] } } - } + ] } }, - "moved_permanently": { - "description": "Moved permanently", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "dependabot-alert-scope": { + "name": "scope", + "in": "query", + "description": "The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned.", + "schema": { + "type": "string", + "enum": [ + "development", + "runtime" + ] } }, - "conflict": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "dependabot-alert-sort": { + "name": "sort", + "in": "query", + "description": "The property by which to sort the results.\n`created` means when the alert was created.\n`updated` means when the alert's state last changed.\n`epss_percentage` sorts alerts by the Exploit Prediction Scoring System (EPSS) percentage.", + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "epss_percentage" + ], + "default": "created" } }, - "temporary_redirect": { - "description": "Temporary Redirect", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "enterprise-team": { + "name": "enterprise-team", + "description": "The slug version of the enterprise team name. You can also substitute this value with the enterprise team id.", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "code_scanning_forbidden_read": { - "description": "Response if GitHub Advanced Security is not enabled for this repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "username": { + "name": "username", + "description": "The handle for the GitHub user account.", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "code_scanning_forbidden_write": { - "description": "Response if the repository is archived or if github advanced security is not enabled for this repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "org": { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "internal_error": { - "description": "Internal Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } + "team-slug": { + "name": "team_slug", + "description": "The slug of the team name.", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "found": { - "description": "Found" + "public-events-per-page": { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 15 + } }, - "no_content": { - "description": "A header with no content is returned." + "gist-id": { + "name": "gist_id", + "description": "The unique identifier of the gist.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "scim_not_found": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - }, - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - } + "comment-id": { + "name": "comment_id", + "description": "The unique identifier of the comment.", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "scim_forbidden": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - }, - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/scim-error" + "labels": { + "name": "labels", + "description": "A list of comma separated label names. Example: `bug,ui,@high`", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + "account-id": { + "name": "account_id", + "description": "account_id parameter", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "plan-id": { + "name": "plan_id", + "description": "The unique identifier of the plan.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "sort": { + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + "owner": { + "name": "owner", + "description": "The account owner of the repository. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "repo": { + "name": "repo", + "description": "The name of the repository without the `.git` extension. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "all": { + "name": "all", + "description": "If `true`, show notifications marked as read.", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + "participating": { + "name": "participating", + "description": "If `true`, only shows notifications in which the user is directly participating or mentioned.", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + "before": { + "name": "before", + "description": "Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + "thread-id": { + "name": "thread_id", + "description": "The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)).", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "since-org": { + "name": "since", + "description": "An organization ID. Only return organizations with an ID greater than this ID.", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + "budget": { + "name": "budget_id", + "description": "The ID corresponding to the budget.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "billing-usage-report-year": { + "name": "year", + "description": "If specified, only return results for a single year. The value of `year` is an integer with four digits representing a year. For example, `2025`. Default value is the current year.", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + "billing-usage-report-month-default": { + "name": "month", + "description": "If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. Default value is the current month. If no year is specified the default `year` is used.", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + "billing-usage-report-day": { + "name": "day", + "description": "If specified, only return results for a single day. The value of `day` is an integer between `1` and `31`. If no `year` or `month` is specified, the default `year` and `month` are used.", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + "billing-usage-report-user": { + "name": "user", + "description": "The user name to query usage for. The name is not case sensitive.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + "billing-usage-report-model": { + "name": "model", + "description": "The model name to query usage for. The name is not case sensitive.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + "billing-usage-report-product": { + "name": "product", + "description": "The product name to query usage for. The name is not case sensitive.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + "billing-usage-report-month": { + "name": "month", + "description": "If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. If no year is specified the default `year` is used.", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + "billing-usage-report-repository": { + "name": "repository", + "description": "The repository name to query for usage in the format owner/repository.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + "billing-usage-report-sku": { + "name": "sku", + "description": "The SKU to query for usage.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + "actions-custom-image-definition-id": { + "name": "image_definition_id", + "description": "Image definition ID of custom image", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "actions-custom-image-version": { + "name": "version", + "description": "Version of a custom image", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + }, + "hosted-runner-id": { + "name": "hosted_runner_id", + "description": "Unique identifier of the GitHub-hosted runner.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "repository-id": { + "name": "repository_id", + "description": "The unique identifier of the repository.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "visible-to-repository": { + "name": "visible_to_repository", + "description": "Only return runner groups that are allowed to be used by this repository.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + "runner-group-id": { + "name": "runner_group_id", + "description": "Unique identifier of the self-hosted runner group.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "runner-id": { + "name": "runner_id", + "description": "Unique identifier of the self-hosted runner.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "runner-label-name": { + "name": "name", + "description": "The name of a self-hosted runner's custom label.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "secret-name": { + "name": "secret_name", + "description": "The name of the secret.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "variables-per-page": { + "name": "per_page", + "description": "The number of results per page (max 30). For more information, see \"[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).\"", + "in": "query", + "schema": { + "type": "integer", + "default": 10 + } + }, + "variable-name": { + "name": "name", + "description": "The name of the variable.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "subject-digest": { + "name": "subject_digest", + "description": "The SHA256 digest of the artifact, in the form `sha256:HEX_DIGEST`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + } + }, + "tool-name": { + "name": "tool_name", + "description": "The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + } + }, + "tool-guid": { + "name": "tool_guid", + "description": "The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-guid" + } + }, + "dependabot-alert-comma-separated-artifact-registry-urls": { + "name": "artifact_registry_url", + "in": "query", + "description": "A comma-separated list of artifact registry URLs. If specified, only alerts for repositories with storage records matching these URLs will be returned.", + "schema": { + "type": "string" + } + }, + "dependabot-alert-comma-separated-artifact-registry": { + "name": "artifact_registry", + "in": "query", + "description": "A comma-separated list of Artifact Registry name strings. If specified, only alerts for repositories with storage records matching these registries will be returned.\n\nCan be: `jfrog-artifactory`", + "schema": { + "type": "string" + } + }, + "dependabot-alert-org-scope-comma-separated-has": { + "name": "has", + "in": "query", + "description": "Filters the list of alerts based on whether the alert has the given value. If specified, only alerts meeting this criterion will be returned.\nMultiple `has` filters can be passed to filter for alerts that have all of the values.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "patch", + "deployment" + ] + } } - } + ] + } + }, + "dependabot-alert-comma-separated-runtime-risk": { + "name": "runtime_risk", + "in": "query", + "description": "A comma-separated list of runtime risk strings. If specified, only alerts for repositories with deployment records matching these risks will be returned.\n\nCan be: `critical-resource`, `internet-exposed`, `sensitive-data`, `lateral-movement`", + "schema": { + "type": "string" + } + }, + "hook-id": { + "name": "hook_id", + "description": "The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "api-insights-actor-type": { + "name": "actor_type", + "in": "path", + "description": "The type of the actor", + "required": true, + "schema": { + "type": "string", + "enum": [ + "installation", + "classic_pat", + "fine_grained_pat", + "oauth_app", + "github_app_user_to_server" + ] + } + }, + "api-insights-actor-id": { + "name": "actor_id", + "in": "path", + "description": "The ID of the actor", + "required": true, + "schema": { + "type": "integer" + } + }, + "api-insights-min-timestamp": { + "name": "min_timestamp", + "description": "The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": true, + "schema": { + "type": "string" } }, - "scim_bad_request": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - }, - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - } + "api-insights-max-timestamp": { + "name": "max_timestamp", + "description": "The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": false, + "schema": { + "type": "string" } }, - "scim_internal_error": { - "description": "Internal Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - }, - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } + "api-insights-route-stats-sort": { + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "last_rate_limited_timestamp", + "last_request_timestamp", + "rate_limited_request_count", + "http_method", + "api_route", + "total_request_count" + ], + "default": "total_request_count" } } }, - "scim_conflict": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - }, - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/scim-error" - } - } + "api-insights-api-route-substring": { + "name": "api_route_substring", + "in": "query", + "description": "Providing a substring will filter results where the API route contains the substring. This is a case-insensitive search.", + "required": false, + "schema": { + "type": "string" } - } - }, - "parameters": { - "per-page": { - "name": "per_page", - "description": "Results per page (max 100)", + }, + "api-insights-sort": { + "name": "sort", + "description": "The property to sort the results by.", "in": "query", + "required": false, "schema": { - "type": "integer", - "default": 30 + "type": "array", + "items": { + "type": "string", + "enum": [ + "last_rate_limited_timestamp", + "last_request_timestamp", + "rate_limited_request_count", + "subject_name", + "total_request_count" + ], + "default": "total_request_count" + } } }, - "cursor": { - "name": "cursor", - "description": "Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors.", + "api-insights-subject-name-substring": { + "name": "subject_name_substring", "in": "query", + "description": "Providing a substring will filter results where the subject name contains the substring. This is a case-insensitive search.", "required": false, "schema": { "type": "string" } }, - "delivery-id": { - "name": "delivery_id", + "api-insights-user-id": { + "name": "user_id", "in": "path", + "description": "The ID of the user to query for stats", "required": true, "schema": { - "type": "integer" + "type": "string" } }, - "page": { - "name": "page", - "description": "Page number of the results to fetch.", + "api-insights-timestamp-increment": { + "name": "timestamp_increment", + "description": "The increment of time used to breakdown the query results (5m, 10m, 1h, etc.)", "in": "query", + "required": true, "schema": { - "type": "integer", - "default": 1 + "type": "string" } }, - "since": { - "name": "since", - "description": "Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "api-insights-actor-name-substring": { + "name": "actor_name_substring", "in": "query", + "description": "Providing a substring will filter results where the actor name contains the substring. This is a case-insensitive search.", "required": false, "schema": { - "type": "string", - "format": "date-time" + "type": "string" } }, - "installation-id": { - "name": "installation_id", - "description": "installation_id parameter", + "invitation-id": { + "name": "invitation_id", + "description": "The unique identifier of the invitation.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "grant-id": { - "name": "grant_id", - "description": "grant_id parameter", + "issue-type-id": { + "name": "issue_type_id", + "description": "The unique identifier of the issue type.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "client-id": { - "name": "client_id", + "codespace-name": { + "name": "codespace_name", "in": "path", "required": true, - "description": "The client ID of your GitHub app.", + "description": "The name of the codespace.", "schema": { "type": "string" } }, - "access-token": { - "name": "access_token", + "migration-id": { + "name": "migration_id", + "description": "The unique identifier of the migration.", "in": "path", "required": true, "schema": { - "type": "string" + "type": "integer" } }, - "app-slug": { - "name": "app_slug", + "repo-name": { + "name": "repo_name", + "description": "repo_name parameter", "in": "path", "required": true, "schema": { "type": "string" } }, - "authorization-id": { - "name": "authorization_id", - "description": "authorization_id parameter", + "role-id": { + "name": "role_id", + "description": "The unique identifier of the role.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "enterprise": { - "name": "enterprise", - "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.", - "in": "path", - "required": true, + "package-visibility": { + "name": "visibility", + "description": "The selected visibility of the packages. This parameter is optional and only filters an existing result set.\n\nThe `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`.\nFor the list of GitHub Packages registries that support granular permissions, see \"[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).\"", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "public", + "private", + "internal" + ] } }, - "org-id": { - "name": "org_id", - "description": "Unique identifier of an organization.", + "package-type": { + "name": "package_type", + "description": "The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry.", "in": "path", "required": true, "schema": { - "type": "integer" + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] } }, - "runner-group-id": { - "name": "runner_group_id", - "description": "Unique identifier of the self-hosted runner group.", + "package-name": { + "name": "package_name", + "description": "The name of the package.", "in": "path", "required": true, "schema": { - "type": "integer" + "type": "string" } }, - "runner-id": { - "name": "runner_id", - "description": "Unique identifier of the self-hosted runner.", + "package-version-id": { + "name": "package_version_id", + "description": "Unique identifier of the package version.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "audit-log-phrase": { - "name": "phrase", - "description": "A search phrase. For more information, see [Searching the audit log](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#searching-the-audit-log).", + "personal-access-token-sort": { + "name": "sort", + "description": "The property by which to sort the results.", "in": "query", "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "created_at" + ], + "default": "created_at" + } + }, + "personal-access-token-owner": { + "name": "owner", + "description": "A list of owner usernames to use to filter the results.", + "in": "query", + "required": false, + "schema": { + "type": "array", + "maxItems": 10, + "items": { + "type": "string" + }, + "example": "owner[]=octocat1,owner[]=octocat2" } }, - "audit-log-include": { - "name": "include", - "description": "The event types to include:\n\n- `web` - returns web (non-Git) events\n- `git` - returns Git events\n- `all` - returns both web and Git events\n\nThe default is `web`.", + "personal-access-token-repository": { + "name": "repository", + "description": "The name of the repository to use to filter the results.", "in": "query", "required": false, "schema": { "type": "string", - "enum": [ - "web", - "git", - "all" - ] + "example": "Hello-World" } }, - "audit-log-after": { - "name": "after", - "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor.", + "personal-access-token-permission": { + "name": "permission", + "description": "The permission to use to filter the results.", "in": "query", "required": false, "schema": { - "type": "string" + "type": "string", + "example": "issues_read" } }, - "audit-log-before": { - "name": "before", - "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor.", + "personal-access-token-before": { + "name": "last_used_before", + "description": "Only show fine-grained personal access tokens used before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", "in": "query", "required": false, "schema": { - "type": "string" + "type": "string", + "format": "date-time" } }, - "audit-log-order": { - "name": "order", - "description": "The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`.\n\nThe default is `desc`.", + "personal-access-token-after": { + "name": "last_used_after", + "description": "Only show fine-grained personal access tokens used after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", "in": "query", "required": false, "schema": { "type": "string", - "enum": [ - "desc", - "asc" - ] + "format": "date-time" } }, - "gist-id": { - "name": "gist_id", - "description": "gist_id parameter", + "personal-access-token-token-id": { + "name": "token_id", + "description": "The ID of the token", + "in": "query", + "required": false, + "schema": { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" + }, + "example": "token_id[]=1,token_id[]=2" + } + }, + "fine-grained-personal-access-token-id": { + "name": "pat_id", + "description": "The unique identifier of the fine-grained personal access token.", "in": "path", "required": true, "schema": { - "type": "string" + "type": "integer" } }, - "comment-id": { - "name": "comment_id", - "description": "comment_id parameter", + "project-number": { + "name": "project_number", + "description": "The project's number.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "labels": { - "name": "labels", - "description": "A list of comma separated label names. Example: `bug,ui,@high`", - "in": "query", - "required": false, + "field-id": { + "name": "field_id", + "description": "The unique identifier of the field.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } }, - "direction": { - "name": "direction", - "description": "One of `asc` (ascending) or `desc` (descending).", - "in": "query", - "required": false, + "item-id": { + "name": "item_id", + "description": "The unique identifier of the project item.", + "in": "path", + "required": true, "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "desc" + "type": "integer" } }, - "account-id": { - "name": "account_id", - "description": "account_id parameter", + "view-number": { + "name": "view_number", + "description": "The number that identifies the project view.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "plan-id": { - "name": "plan_id", - "description": "plan_id parameter", + "custom-property-name": { + "name": "custom_property_name", + "description": "The custom property name", "in": "path", "required": true, "schema": { - "type": "integer" + "type": "string" } }, - "sort": { - "name": "sort", - "description": "One of `created` (when the repository was starred) or `updated` (when it was last pushed to).", + "ruleset-targets": { + "name": "targets", + "description": "A comma-separated list of rule targets to filter by.\nIf provided, only rulesets that apply to the specified targets will be returned.\nFor example, `branch,tag,push`.\n", "in": "query", "required": false, "schema": { "type": "string", - "enum": [ - "created", - "updated" - ], - "default": "created" + "example": "branch,tag,push" } }, - "owner": { - "name": "owner", - "in": "path", - "required": true, + "ref-in-query": { + "name": "ref", + "description": "The name of the ref. Cannot contain wildcard characters. Optionally prefix with `refs/heads/` to limit to branches or `refs/tags/` to limit to tags. Omit the prefix to search across all refs. When specified, only rule evaluations triggered for this ref will be returned.", + "in": "query", "schema": { "type": "string" - } + }, + "x-multi-segment": true }, - "repo": { - "name": "repo", - "in": "path", - "required": true, + "repository-name-in-query": { + "name": "repository_name", + "description": "The name of the repository to filter on.", + "in": "query", "schema": { "type": "string" } }, - "all": { - "name": "all", - "description": "If `true`, show notifications marked as read.", + "time-period": { + "name": "time_period", + "description": "The time period to filter by.\n\nFor example, `day` will filter for rule suites that occurred in the past 24 hours, and `week` will filter for rule suites that occurred in the past 7 days (168 hours).", "in": "query", "required": false, "schema": { - "type": "boolean", - "default": false + "type": "string", + "enum": [ + "hour", + "day", + "week", + "month" + ], + "default": "day" } }, - "participating": { - "name": "participating", - "description": "If `true`, only shows notifications in which the user is directly participating or mentioned.", + "actor-name-in-query": { + "name": "actor_name", + "description": "The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned.", "in": "query", - "required": false, "schema": { - "type": "boolean", - "default": false + "type": "string" } }, - "before": { - "name": "before", - "description": "Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "rule-suite-result": { + "name": "rule_suite_result", + "description": "The rule suite results to filter on. When specified, only suites with this result will be returned.", "in": "query", - "required": false, "schema": { "type": "string", - "format": "date-time" + "enum": [ + "pass", + "fail", + "bypass", + "all" + ], + "default": "all" } }, - "thread-id": { - "name": "thread_id", - "description": "thread_id parameter", + "rule-suite-id": { + "name": "rule_suite_id", + "description": "The unique identifier of the rule suite result.\nTo get this ID, you can use [GET /repos/{owner}/{repo}/rulesets/rule-suites](https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites)\nfor repositories and [GET /orgs/{org}/rulesets/rule-suites](https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites)\nfor organizations.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "since-org": { - "name": "since", - "description": "An organization ID. Only return organizations with an ID greater than this ID.", + "secret-scanning-alert-state": { + "name": "state", "in": "query", + "description": "Set to `open` or `resolved` to only list secret scanning alerts in a specific state.", "required": false, "schema": { - "type": "integer" + "type": "string", + "enum": [ + "open", + "resolved" + ] } }, - "org": { - "name": "org", - "in": "path", - "required": true, + "secret-scanning-alert-secret-type": { + "name": "secret_type", + "in": "query", + "description": "A comma-separated list of secret types to return. All default secret patterns are returned. To return generic patterns, pass the token name(s) in the parameter. See \"[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)\" for a complete list of secret types.", + "required": false, "schema": { "type": "string" } }, - "repository-id": { - "name": "repository_id", - "in": "path", - "required": true, + "secret-scanning-alert-resolution": { + "name": "resolution", + "in": "query", + "description": "A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`.", + "required": false, "schema": { - "type": "integer" + "type": "string" } }, - "secret-name": { - "name": "secret_name", - "description": "secret_name parameter", - "in": "path", - "required": true, + "secret-scanning-alert-assignee": { + "name": "assignee", + "in": "query", + "description": "Filters alerts by assignee. Use `*` to get all assigned alerts, `none` to get all unassigned alerts, or a GitHub username to get alerts assigned to a specific user.", + "required": false, "schema": { "type": "string" + }, + "examples": { + "assigned-to-user": { + "value": "octocat", + "summary": "Filter for alerts assigned to the user \"octocat\"" + }, + "all-assigned": { + "value": "*", + "summary": "Filter for all assigned alerts" + }, + "all-unassigned": { + "value": "none", + "summary": "Filter for all unassigned alerts" + } } }, - "username": { - "name": "username", - "in": "path", - "required": true, + "secret-scanning-alert-sort": { + "name": "sort", + "description": "The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + "secret-scanning-pagination-before-org-repo": { + "name": "before", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty \"before\" query string.", + "in": "query", + "required": false, "schema": { "type": "string" } }, - "hook-id": { - "name": "hook_id", - "in": "path", - "required": true, + "secret-scanning-pagination-after-org-repo": { + "name": "after", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty \"after\" query string.", + "in": "query", + "required": false, "schema": { - "type": "integer" + "type": "string" } }, - "invitation-id": { - "name": "invitation_id", - "description": "invitation_id parameter", - "in": "path", - "required": true, + "secret-scanning-alert-validity": { + "name": "validity", + "in": "query", + "description": "A comma-separated list of validities that, when present, will return alerts that match the validities in this list. Valid options are `active`, `inactive`, and `unknown`.", + "required": false, "schema": { - "type": "integer" + "type": "string" } }, - "migration-id": { - "name": "migration_id", - "description": "migration_id parameter", - "in": "path", - "required": true, + "secret-scanning-alert-publicly-leaked": { + "name": "is_publicly_leaked", + "in": "query", + "description": "A boolean value representing whether or not to filter alerts by the publicly-leaked tag being present.", + "required": false, "schema": { - "type": "integer" + "type": "boolean", + "default": false } }, - "repo-name": { - "name": "repo_name", - "description": "repo_name parameter", - "in": "path", - "required": true, + "secret-scanning-alert-multi-repo": { + "name": "is_multi_repo", + "in": "query", + "description": "A boolean value representing whether or not to filter alerts by the multi-repo tag being present.", + "required": false, "schema": { - "type": "string" + "type": "boolean", + "default": false } }, - "package-type": { - "name": "package_type", - "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry.", - "in": "path", - "required": true, + "secret-scanning-alert-hide-secret": { + "name": "hide_secret", + "in": "query", + "description": "A boolean value representing whether or not to hide literal secrets in the results.", + "required": false, "schema": { - "type": "string", - "enum": [ - "npm", - "maven", - "rubygems", - "docker", - "nuget", - "container" - ] + "type": "boolean", + "default": false } }, - "package-name": { - "name": "package_name", - "description": "The name of the package.", + "network-configuration-id": { + "name": "network_configuration_id", + "description": "Unique identifier of the hosted compute network configuration.", "in": "path", "required": true, "schema": { "type": "string" } }, - "package-version-id": { - "name": "package_version_id", - "description": "Unique identifier of the package version.", + "network-settings-id": { + "name": "network_settings_id", + "description": "Unique identifier of the hosted compute network settings.", "in": "path", "required": true, "schema": { - "type": "integer" + "type": "string" } }, - "team-slug": { - "name": "team_slug", - "description": "team_slug parameter", + "security-product": { + "name": "security_product", "in": "path", + "description": "The security feature to enable or disable.", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "dependency_graph", + "dependabot_alerts", + "dependabot_security_updates", + "advanced_security", + "code_scanning_default_setup", + "secret_scanning", + "secret_scanning_push_protection" + ] } }, - "discussion-number": { - "name": "discussion_number", + "org-security-product-enablement": { + "name": "enablement", "in": "path", + "description": "The action to take.\n\n`enable_all` means to enable the specified security feature for all repositories in the organization.\n`disable_all` means to disable the specified security feature for all repositories in the organization.", "required": true, "schema": { - "type": "integer" + "type": "string", + "enum": [ + "enable_all", + "disable_all" + ] } }, - "comment-number": { - "name": "comment_number", - "in": "path", - "required": true, + "artifact-name": { + "name": "name", + "description": "The name field of an artifact. When specified, only artifacts with this name will be returned.", + "in": "query", + "required": false, "schema": { - "type": "integer" + "type": "string" } }, - "reaction-id": { - "name": "reaction_id", + "artifact-id": { + "name": "artifact_id", + "description": "The unique identifier of the artifact.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "project-id": { - "name": "project_id", - "in": "path", - "required": true, + "actions-cache-git-ref-full": { + "name": "ref", + "description": "The full Git reference for narrowing down the cache. The `ref` for a branch should be formatted as `refs/heads/`. To reference a pull request use `refs/pull//merge`.", + "in": "query", + "required": false, "schema": { - "type": "integer" + "type": "string" } }, - "card-id": { - "name": "card_id", - "description": "card_id parameter", - "in": "path", - "required": true, + "actions-cache-key": { + "name": "key", + "description": "An explicit key or prefix for identifying the cache", + "in": "query", + "required": false, "schema": { - "type": "integer" + "type": "string" } }, - "column-id": { - "name": "column_id", - "description": "column_id parameter", - "in": "path", + "actions-cache-list-sort": { + "name": "sort", + "description": "The property to sort the results by. `created_at` means when the cache was created. `last_accessed_at` means when the cache was last accessed. `size_in_bytes` is the size of the cache in bytes.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created_at", + "last_accessed_at", + "size_in_bytes" + ], + "default": "last_accessed_at" + } + }, + "actions-cache-key-required": { + "name": "key", + "description": "A key for identifying the cache.", + "in": "query", "required": true, "schema": { - "type": "integer" + "type": "string" } }, - "artifact-id": { - "name": "artifact_id", - "description": "artifact_id parameter", + "cache-id": { + "name": "cache_id", + "description": "The unique identifier of the GitHub Actions cache.", "in": "path", "required": true, "schema": { @@ -95404,7 +314414,7 @@ }, "job-id": { "name": "job_id", - "description": "job_id parameter", + "description": "The unique identifier of the job.", "in": "path", "required": true, "schema": { @@ -95431,7 +314441,7 @@ }, "event": { "name": "event", - "description": "Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see \"[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows).\"", + "description": "Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see \"[Events that trigger workflows](https://docs.github.com/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows).\"", "in": "query", "required": false, "schema": { @@ -95440,7 +314450,7 @@ }, "workflow-run-status": { "name": "status", - "description": "Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. For a list of the possible `status` and `conclusion` options, see \"[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run).\"", + "description": "Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`.", "in": "query", "required": false, "schema": { @@ -95458,12 +314468,42 @@ "in_progress", "queued", "requested", - "waiting" + "waiting", + "pending" ] } }, "created": { "name": "created", + "description": "Returns workflow runs created within the given date-time range. For more information on the syntax, see \"[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).\"", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + "exclude-pull-requests": { + "name": "exclude_pull_requests", + "description": "If `true` pull requests are omitted from the response (empty array).", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + "workflow-run-check-suite-id": { + "name": "check_suite_id", + "description": "Returns workflow runs with the `check_suite_id` that you specify.", + "in": "query", + "schema": { + "type": "integer" + } + }, + "workflow-run-head-sha": { + "name": "head_sha", + "description": "Only returns workflow runs that are associated with the specified `head_sha`.", "in": "query", "required": false, "schema": { @@ -95472,7 +314512,16 @@ }, "run-id": { "name": "run_id", - "description": "The id of the workflow run.", + "description": "The unique identifier of the workflow run.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "attempt-number": { + "name": "attempt_number", + "description": "The attempt number of the workflow run.", "in": "path", "required": true, "schema": { @@ -95497,7 +314546,7 @@ }, "autolink-id": { "name": "autolink_id", - "description": "autolink_id parameter", + "description": "The unique identifier of the autolink.", "in": "path", "required": true, "schema": { @@ -95506,7 +314555,7 @@ }, "branch": { "name": "branch", - "description": "The name of the branch.", + "description": "The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql).", "in": "path", "required": true, "schema": { @@ -95516,7 +314565,7 @@ }, "check-run-id": { "name": "check_run_id", - "description": "check_run_id parameter", + "description": "The unique identifier of the check run.", "in": "path", "required": true, "schema": { @@ -95525,7 +314574,7 @@ }, "check-suite-id": { "name": "check_suite_id", - "description": "check_suite_id parameter", + "description": "The unique identifier of the check suite.", "in": "path", "required": true, "schema": { @@ -95543,7 +314592,7 @@ }, "status": { "name": "status", - "description": "Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`.", + "description": "Returns check runs with the specified `status`.", "in": "query", "required": false, "schema": { @@ -95555,31 +314604,22 @@ ] } }, - "tool-name": { - "name": "tool_name", - "description": "The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both.", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/code-scanning-analysis-tool-name" - } - }, - "tool-guid": { - "name": "tool_guid", - "description": "The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both.", + "git-ref": { + "name": "ref", + "description": "The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`.", "in": "query", "required": false, "schema": { - "$ref": "#/components/schemas/code-scanning-analysis-tool-guid" + "$ref": "#/components/schemas/code-scanning-ref" } }, - "git-ref": { - "name": "ref", - "description": "The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`.", + "pr-alias": { + "name": "pr", + "description": "The number of the pull request for the results you want to list.", "in": "query", "required": false, "schema": { - "$ref": "#/components/schemas/code-scanning-ref" + "type": "integer" } }, "alert-number": { @@ -95591,9 +314631,28 @@ "$ref": "#/components/schemas/alert-number" } }, + "reaction-id": { + "name": "reaction_id", + "description": "The unique identifier of the reaction.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, "commit-sha": { "name": "commit_sha", - "description": "commit_sha parameter", + "description": "The SHA of the commit.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + }, + "commit-ref": { + "name": "ref", + "description": "The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see \"[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)\" in the Git documentation.", "in": "path", "required": true, "schema": { @@ -95601,6 +314660,32 @@ }, "x-multi-segment": true }, + "dependabot-alert-comma-separated-manifests": { + "name": "manifest", + "in": "query", + "description": "A comma-separated list of full manifest paths. If specified, only alerts for these manifests will be returned.", + "schema": { + "type": "string" + } + }, + "dependabot-alert-number": { + "name": "alert_number", + "in": "path", + "description": "The number that identifies a Dependabot alert in its repository.\nYou can find this at the end of the URL for a Dependabot alert within GitHub,\nor in `number` fields in the response from the\n`GET /repos/{owner}/{repo}/dependabot/alerts` operation.", + "required": true, + "schema": { + "$ref": "#/components/schemas/alert-number" + } + }, + "manifest-path": { + "name": "name", + "description": "The full path, relative to the repository root, of the dependency manifest file.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, "deployment-id": { "name": "deployment_id", "description": "deployment_id parameter", @@ -95614,11 +314699,40 @@ "name": "environment_name", "in": "path", "required": true, - "description": "The name of the environment", + "description": "The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`.", "schema": { "type": "string" } }, + "branch-policy-id": { + "name": "branch_policy_id", + "in": "path", + "required": true, + "description": "The unique identifier of the branch policy.", + "schema": { + "type": "integer" + } + }, + "protection-rule-id": { + "name": "protection_rule_id", + "description": "The unique identifier of the protection rule.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "git-ref-only": { + "name": "ref", + "description": "The Git reference. For more information, see \"[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)\" in the Git documentation.", + "in": "path", + "required": true, + "example": "heads/feature-a", + "schema": { + "type": "string" + }, + "x-multi-segment": true + }, "since-user": { "name": "since", "description": "A user ID. Only return users with an ID greater than this ID.", @@ -95630,7 +314744,7 @@ }, "issue-number": { "name": "issue_number", - "description": "issue_number parameter", + "description": "The number that identifies the issue.", "in": "path", "required": true, "schema": { @@ -95639,7 +314753,7 @@ }, "key-id": { "name": "key_id", - "description": "key_id parameter", + "description": "The unique identifier of the key.", "in": "path", "required": true, "schema": { @@ -95648,15 +314762,32 @@ }, "milestone-number": { "name": "milestone_number", - "description": "milestone_number parameter", + "description": "The number that identifies the milestone.", "in": "path", "required": true, "schema": { "type": "integer" } }, + "pages-deployment-id": { + "name": "pages_deployment_id", + "description": "The ID of the Pages deployment. You can also give the commit SHA of the deployment.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } + }, "pull-number": { "name": "pull_number", + "description": "The number that identifies the pull request.", "in": "path", "required": true, "schema": { @@ -95665,7 +314796,7 @@ }, "review-id": { "name": "review_id", - "description": "review_id parameter", + "description": "The unique identifier of the review.", "in": "path", "required": true, "schema": { @@ -95674,7 +314805,7 @@ }, "asset-id": { "name": "asset_id", - "description": "asset_id parameter", + "description": "The unique identifier of the asset.", "in": "path", "required": true, "schema": { @@ -95683,7 +314814,16 @@ }, "release-id": { "name": "release_id", - "description": "release_id parameter", + "description": "The unique identifier of the release.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "tag-protection-id": { + "name": "tag_protection_id", + "description": "The unique identifier of the tag protection.", "in": "path", "required": true, "schema": { @@ -95692,13 +314832,12 @@ }, "per": { "name": "per", - "description": "Must be one of: `day`, `week`.", + "description": "The time frame to display results for.", "in": "query", "required": false, "schema": { "type": "string", "enum": [ - "", "day", "week" ], @@ -95714,71 +314853,650 @@ "type": "integer" } }, - "start-index": { - "name": "startIndex", - "description": "Used for pagination: the index of the first result to return.", + "order": { + "name": "order", + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", "in": "query", "required": false, "schema": { - "type": "integer" + "type": "string", + "enum": [ + "desc", + "asc" + ], + "default": "desc" } }, - "count": { - "name": "count", - "description": "Used for pagination: the number of results to return.", + "issues-advanced-search": { + "name": "advanced_search", + "description": "Set to `true` to use advanced search.\nExample: `http://api.github.com/search/issues?q={query}&advanced_search=true`", "in": "query", "required": false, + "schema": { + "type": "string" + } + }, + "team-id": { + "name": "team_id", + "description": "The unique identifier of the team.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + "repository-id-in-query": { + "name": "repository_id", + "description": "ID of the Repository to filter on", + "in": "query", "schema": { "type": "integer" } }, - "scim-group-id": { - "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.", + "export-id": { + "name": "export_id", "in": "path", "required": true, + "description": "The ID of the export operation, or `latest`. Currently only `latest` is currently supported.", "schema": { "type": "string" } }, - "scim-user-id": { - "name": "scim_user_id", - "description": "scim_user_id parameter", + "gpg-key-id": { + "name": "gpg_key_id", + "description": "The unique identifier of the GPG key.", "in": "path", "required": true, "schema": { - "type": "string" + "type": "integer" } }, - "order": { - "name": "order", - "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "since-repo-date": { + "name": "since", + "description": "Only show repositories updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", "in": "query", "required": false, "schema": { "type": "string", - "enum": [ - "desc", - "asc" - ], - "default": "desc" + "format": "date-time" } }, - "team-id": { - "name": "team_id", + "before-repo-date": { + "name": "before", + "description": "Only show repositories updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + "ssh-signing-key-id": { + "name": "ssh_signing_key_id", + "description": "The unique identifier of the SSH signing key.", "in": "path", "required": true, "schema": { "type": "integer" } }, - "gpg-key-id": { - "name": "gpg_key_id", - "description": "gpg_key_id parameter", + "sort-starred": { + "name": "sort", + "description": "The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + "user-id": { + "name": "user_id", + "description": "The unique identifier of the user.", "in": "path", "required": true, "schema": { - "type": "integer" + "type": "string" + } + } + }, + "responses": { + "validation_failed_simple": { + "description": "Validation failed, or the endpoint has been spammed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/validation-error-simple" + } + } + } + }, + "not_found": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "bad_request": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + }, + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/scim-error" + } + } + } + }, + "validation_failed": { + "description": "Validation failed, or the endpoint has been spammed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/validation-error" + } + } + } + }, + "accepted": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "examples": { + "default": { + "value": null + } + } + } + } + }, + "not_modified": { + "description": "Not modified" + }, + "requires_authentication": { + "description": "Requires authentication", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "forbidden": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "internal_error": { + "description": "Internal Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "conflict": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "no_content": { + "description": "A header with no content is returned." + }, + "service_unavailable": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "forbidden_gist": { + "description": "Forbidden Gist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "block": { + "type": "object", + "properties": { + "reason": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "html_url": { + "type": "string", + "nullable": true + } + } + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "moved_permanently": { + "description": "Moved permanently", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "get_all_budgets": { + "description": "Response when getting all budgets", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/get_all_budgets" + }, + "examples": { + "default": { + "$ref": "#/components/examples/get_all_budgets" + } + } + } + } + }, + "budget": { + "description": "Response when updating a budget", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/get-budget" + }, + "examples": { + "default": { + "$ref": "#/components/examples/get-budget" + } + } + } + } + }, + "delete-budget": { + "description": "Response when deleting a budget", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/delete-budget" + }, + "examples": { + "default": { + "$ref": "#/components/examples/delete-budget" + } + } + } + } + }, + "billing_premium_request_usage_report_org": { + "description": "Response when getting a billing premium request usage report", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-premium-request-usage-report-org" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-premium-request-usage-report-org" + } + } + } + } + }, + "billing_usage_report_org": { + "description": "Billing usage report response for an organization", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-usage-report" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-usage-report" + } + } + } + } + }, + "billing_usage_summary_report_org": { + "description": "Response when getting a billing usage summary", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-usage-summary-report-org" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-usage-summary-report-org" + } + } + } + } + }, + "actions_runner_jitconfig": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "runner", + "encoded_jit_config" + ], + "properties": { + "runner": { + "$ref": "#/components/schemas/runner" + }, + "encoded_jit_config": { + "type": "string", + "description": "The base64 encoded runner configuration." + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-jitconfig" + } + } + } + } + }, + "actions_runner_labels": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "labels" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-label" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-labels" + } + } + } + } + }, + "actions_runner_labels_readonly": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "labels" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-label" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-labels-readonly" + } + } + } + } + }, + "usage_metrics_api_disabled": { + "description": "Copilot Usage Merics API setting is disabled at the organization or enterprise level.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "package_es_list_error": { + "description": "The value of `per_page` multiplied by `page` cannot be greater than 10000." + }, + "temporary_redirect": { + "description": "Temporary Redirect", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "gone": { + "description": "Gone", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "code_scanning_forbidden_read": { + "description": "Response if GitHub Advanced Security is not enabled for this repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "code_scanning_forbidden_write": { + "description": "Response if the repository is archived or if GitHub Advanced Security is not enabled for this repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "code_scanning_bad_request": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-bad-request" + } + } + } + } + }, + "code_scanning_autofix_create_forbidden": { + "description": "Response if the repository is archived, if GitHub Advanced Security is not enabled for this repository or if rate limit is exceeded", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "unprocessable_analysis": { + "description": "Response if analysis could not be processed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "found": { + "description": "Found" + }, + "code_scanning_conflict": { + "description": "Response if there is already a validation run in progress with a different default setup configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "code_scanning_invalid_state": { + "description": "Response if the configuration change cannot be made because the repository is not in the required state", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "dependency_review_forbidden": { + "description": "Response for a private repository when GitHub Advanced Security is not enabled, or if used against a fork", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "porter_maintenance": { + "description": "Unavailable due to service under maintenance.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "unacceptable": { + "description": "Unacceptable", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "billing_premium_request_usage_report_user": { + "description": "Response when getting a billing premium request usage report", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-premium-request-usage-report-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-premium-request-usage-report-user" + } + } + } + } + }, + "billing_usage_report_user": { + "description": "Response when getting a billing usage report", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-usage-report-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-usage-report-user" + } + } + } + } + }, + "billing_usage_summary_report_user": { + "description": "Response when getting a billing usage summary", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-usage-summary-report-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-usage-summary-report-user" + } + } + } } } }, @@ -95828,4 +315546,4 @@ } } } -} +} \ No newline at end of file From 74e62d7b6cff5231b635569b01caab8f9de91d46 Mon Sep 17 00:00:00 2001 From: mbainter Date: Mon, 16 Feb 2026 21:26:52 -0600 Subject: [PATCH 02/10] Skip generating types for GitHub webhook events These create a lot of conflicts in the TypeId space and are not technically not part of the API per se, so take the easy way out for now. --- generator/src/main.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/generator/src/main.rs b/generator/src/main.rs index 14adaefd..63b19d27 100644 --- a/generator/src/main.rs +++ b/generator/src/main.rs @@ -2990,6 +2990,13 @@ fn main() -> Result<()> { if let Some(components) = &api.components { // Populate a type to describe each entry in the schemas section. for (i, (sn, s)) in components.schemas.iter().enumerate() { + if args.opt_str("proper-name").unwrap() == "GitHub" + && ((sn.starts_with("webhook-") && !sn.starts_with("webhook-config")) + || sn.starts_with("webhooks_")) + { + debug(&format!("Skipping schema: {}", sn)); + continue; + } let name = clean_name(sn); debug(&format!( "SCHEMA {}/{}: {}", From 9ecc3ae5f4fb9c1a46962bb4f2e7643a9317f222 Mon Sep 17 00:00:00 2001 From: mbainter Date: Mon, 16 Feb 2026 21:14:19 -0600 Subject: [PATCH 03/10] Improve consistency between TypeSpace Btrees and add async keyword The new GitHub API exposed problems with how references are handled in the TypeSpace. A lot of this commit is actually scaffolding I made to help me understand what was happening and track the problems. The key changes are: * ensuring a proper generic String type gets created for some of the new GitHub API types (such as no_content) in both directions * adding async to the keyword list --- generator/src/main.rs | 95 +++++++++++++++++++++++++++++++++++++++--- generator/src/types.rs | 2 + 2 files changed, 91 insertions(+), 6 deletions(-) diff --git a/generator/src/main.rs b/generator/src/main.rs index 63b19d27..ff5fa811 100644 --- a/generator/src/main.rs +++ b/generator/src/main.rs @@ -5,7 +5,7 @@ mod types; mod utils; use std::{ - collections::{BTreeMap, HashSet}, + collections::{BTreeMap, HashMap, HashSet}, ffi::OsStr, fs::{File, OpenOptions}, io::Write, @@ -745,6 +745,7 @@ pub struct TypeSpace { */ name_to_id: BTreeMap, id_to_entry: BTreeMap, + unresolved_refs: HashMap>, } impl TypeSpace { @@ -753,6 +754,7 @@ impl TypeSpace { next_id: 1, name_to_id: BTreeMap::new(), id_to_entry: BTreeMap::new(), + unresolved_refs: HashMap::new(), } } @@ -912,7 +914,26 @@ impl TypeSpace { if let Some(te) = self.id_to_entry.get(tid) { match &te.details { TypeDetails::Basic(t, _) => Ok(t.to_string()), - TypeDetails::NamedType(itid, _) => self.render_type(itid, in_mod), + TypeDetails::NamedType(itid, _) => { + if !self.id_to_entry.contains_key(itid) { + eprintln!( + "[error] {:?} [{:?}] has an unresolvable inner {:?}!", + tid, + te.name.as_deref().unwrap_or("unknown"), + itid + ); + + for (ref_path, ids) in &self.unresolved_refs { + if ids.contains(tid) { + println!(" Referenced as: {}", ref_path); + } + } + + bail!("could not resolve referenced type ID {:?}", itid); + } + + self.render_type(itid, in_mod) + } TypeDetails::Enum(..) => { if let Some(n) = &te.name { let struct_name = struct_name(n); @@ -1109,7 +1130,15 @@ impl TypeSpace { // Let's make some generic details, assign an id and then later in // populate ref we can replace this ID with the real one. let details = TypeDetails::NamedType(self.assign(), Default::default()); - self.add_if_not_exists(Some(ref_), details, "", true) + let id = self.add_if_not_exists(Some(ref_.clone()), details, "", true)?; + + // Keep track of this reference until it is resolved to make troubleshooting references easier + self.unresolved_refs + .entry(ref_) + .or_default() + .push(id.clone()); + + Ok(id) } fn add_if_not_exists( @@ -1270,7 +1299,7 @@ impl TypeSpace { is_reference, ); } else if !name.contains("object") { - // Let's try to append "type" onto the end and see if that helps. + // Let's try to append "object" onto the end and see if that helps. let new_name = format!("{} object", name); return self.add_if_not_exists( Some(clean_name(&new_name)), @@ -1358,7 +1387,23 @@ impl TypeSpace { let details = if let Some(id) = id { TypeDetails::NamedType(id, Default::default()) } else { - TypeDetails::NamedType(self.id_for_name("String"), Default::default()) + let string_id = self.id_for_name("String"); + + // NOTE: + // In the GitHub API a few response types have no content attribute. There is no + // String type defined, resulting in mismatched references. This code is intended to + // ensure that a String TypeId exists and is mapped correctly in both directions. + if !self.id_to_entry.contains_key(&string_id) { + self.id_to_entry.insert( + string_id.clone(), + TypeEntry { + id: string_id.clone(), + name: Some("String".to_string()), + details: TypeDetails::Basic("String".to_string(), Default::default()), + }, + ); + } + TypeDetails::NamedType(string_id, Default::default()) }; // Lets check if we already have this reference added. @@ -1366,7 +1411,7 @@ impl TypeSpace { // was referenced that had not yet been parsed. if let Some(rid) = self.name_to_id.get(&ref_) { // Okay we have the id for the reference. - // Let's update it's named type. + // Let's update its named type. self.id_to_entry.insert( rid.clone(), TypeEntry { @@ -1376,6 +1421,15 @@ impl TypeSpace { }, ); + // If we are defining an unresolved reference clean it up here + if let Some(type_ids) = self.unresolved_refs.remove(&ref_) { + println!( + "Resolved reference '{}' used by {} type IDs", + ref_, + type_ids.len() + ); + } + return Ok(rid.clone()); } @@ -2134,6 +2188,33 @@ impl TypeSpace { bail!("could not get parameter_data for {:?}: {:?}", name, p); } } + + fn validate_refs(&self) -> Result<()> { + if !self.unresolved_refs.is_empty() { + eprintln!( + "[error]: Found {} unresolved references:", + self.unresolved_refs.len() + ); + + for (reference, ids) in &self.unresolved_refs { + eprintln!(" '{}' referenced by {} types:", reference, ids.len()); + + for id in ids { + if let Some(entry) = self.id_to_entry.get(id) { + let name = entry.name.as_deref().unwrap_or("unnamed"); + eprintln!(" - {:?} [{}]", id, name); + + if let TypeDetails::NamedType(target_id, _) = &entry.details { + eprintln!(" points to {:?}", target_id); + } + } + } + } + bail!("parsed API contains {} unresolved references.", self.unresolved_refs.keys().len()) + } + + Ok(()) + } } fn get_parameter_data(param: &openapiv3::Parameter) -> Option<&openapiv3::ParameterData> { @@ -3304,6 +3385,8 @@ fn main() -> Result<()> { } debug(""); + ts.validate_refs()?; + let name = args.opt_str("n").unwrap(); let version = args.opt_str("v").unwrap(); let host = args.opt_str("host").unwrap(); diff --git a/generator/src/types.rs b/generator/src/types.rs index ecee96b9..f65ef1fe 100644 --- a/generator/src/types.rs +++ b/generator/src/types.rs @@ -149,6 +149,7 @@ pub fn generate_types(ts: &mut TypeSpace, proper_name: &str) -> Result { || prop == "enum" || prop == "const" || prop == "use" + || prop == "async" { prop = format!("{}_", name); } else if name == "$ref" { @@ -283,6 +284,7 @@ pub fn generate_types(ts: &mut TypeSpace, proper_name: &str) -> Result { || prop == "enum" || prop == "const" || prop == "use" + || prop == "async" { prop = format!("{}_", prop); } From c8f9a8fbf84286bd8149a2bfb0ccdd3bf8b0f7cb Mon Sep 17 00:00:00 2001 From: mbainter Date: Mon, 16 Feb 2026 21:38:53 -0600 Subject: [PATCH 04/10] Attempt to add support for pattern constraints The GitHub API makes use of patterns which was not yet implemented and caused the generation to fail if present. This commit takes a swing at an implementation that can at least track those patterns as part of processing the data types and allow the build to proceed. All this does is gather the data. If this approach is viable then I'll will try to make time to at least figure out how to get it into the generated documentation for ease of reference. --- generator/src/main.rs | 47 ++++++++++++++++++++++++++++++++++++++---- generator/src/types.rs | 1 - 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/generator/src/main.rs b/generator/src/main.rs index ff5fa811..a1f2310d 100644 --- a/generator/src/main.rs +++ b/generator/src/main.rs @@ -227,7 +227,7 @@ impl ParameterDataExt for openapiv3::ParameterData { }; if st.pattern.is_some() { - bail!("XXX pattern"); + println!("XXX unsupported pattern detected"); } if !st.enumeration.is_empty() { @@ -303,6 +303,7 @@ impl ParameterDataExt for openapiv3::ParameterData { "uuid" => "&str".to_string(), "hostname" => "&str".to_string(), "time" => "chrono::NaiveTime".to_string(), + "repo.nwo" => "&str".to_string(), f => { bail!("XXX unknown string format {}", f) } @@ -436,7 +437,7 @@ impl ExtractJsonMediaType for openapiv3::Response { bail!("expected binary format string, got {:?}", st.format); } if st.pattern.is_some() { - bail!("XXX pattern"); + println!("XXX unsupported pattern detected"); } if !st.enumeration.is_empty() { bail!("XXX binary enumeration {:?}", st); @@ -734,6 +735,13 @@ impl PartialEq for TypeId { } } +#[derive(Debug, Clone, Default)] +pub struct Constraints { + pub pattern: Option, + pub min_length: Option, + pub max_length: Option, +} + #[derive(Debug, Clone)] pub struct TypeSpace { next_id: u64, @@ -741,11 +749,12 @@ pub struct TypeSpace { * Object types generally have a useful name, which we would like to match * with anywhere that name appears in the definition document. Many other * types, though, do not; e.g., an array of strings is just going to become - * Vec without necesssarily having a useful distinct type name. + * Vec without necessarily having a useful distinct type name. */ name_to_id: BTreeMap, id_to_entry: BTreeMap, unresolved_refs: HashMap>, + constraints: BTreeMap, } impl TypeSpace { @@ -755,6 +764,7 @@ impl TypeSpace { name_to_id: BTreeMap::new(), id_to_entry: BTreeMap::new(), unresolved_refs: HashMap::new(), + constraints: BTreeMap::new(), } } @@ -1478,7 +1488,24 @@ impl TypeSpace { let (n, details) = self.get_type_name_and_details(name, s, parent_name, additional_description)?; - self.add_if_not_exists(n, details, parent_name, false) + let id = self.add_if_not_exists(n, details, parent_name, false)?; + + // Extract string-type constraints and associate them with the TypeId. + if let openapiv3::SchemaKind::Type(openapiv3::Type::String(st)) = &s.schema_kind { + let constraints = Constraints { + pattern: st.pattern.clone(), + min_length: st.min_length, + max_length: st.max_length, + }; + if constraints.pattern.is_some() + || constraints.min_length.is_some() + || constraints.max_length.is_some() + { + self.set_constraints(id.clone(), constraints); + } + } + + Ok(id) } fn get_type_name_and_details( @@ -1879,6 +1906,10 @@ impl TypeSpace { s.schema_data.clone(), ), )), + "repo.nwo" => Ok(( + Some(uid.to_string()), + TypeDetails::Basic("String".to_string(), s.schema_data.clone()), + )), f => bail!("XXX unknown string format {}", f), }, } @@ -2215,6 +2246,14 @@ impl TypeSpace { Ok(()) } + + fn set_constraints(&mut self, id: TypeId, constraints: Constraints) { + self.constraints.insert(id, constraints); + } + + fn get_constraints(&self, id: &TypeId) -> Option<&Constraints> { + self.constraints.get(id) + } } fn get_parameter_data(param: &openapiv3::Parameter) -> Option<&openapiv3::ParameterData> { diff --git a/generator/src/types.rs b/generator/src/types.rs index f65ef1fe..907d9316 100644 --- a/generator/src/types.rs +++ b/generator/src/types.rs @@ -97,7 +97,6 @@ pub fn generate_types(ts: &mut TypeSpace, proper_name: &str) -> Result { || sn == "DescriptionlessJobOptionsDataType" || sn == "SubmitJobOptions" || sn == "SubmitJobOptionsData" - || sn == "MinimalRepository" || sn == "WorkflowRun" || sn == "CheckAnnotation" { From ee07bbb920ed82a3ebb2c7659415c1189287cbad Mon Sep 17 00:00:00 2001 From: mbainter Date: Mon, 16 Feb 2026 23:28:06 -0600 Subject: [PATCH 05/10] Handle conflicting names in the GitHub crate generation The credentials function is only used within the GitHub client template, . There is now a conflicting public function generated from the API, so we should rename the private one. This also adds tracking of the names we are using to make conflicts more visible and easier to track down. --- generator/src/client.rs | 4 ++-- generator/src/types.rs | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/generator/src/client.rs b/generator/src/client.rs index 51c33dd4..af0b374e 100644 --- a/generator/src/client.rs +++ b/generator/src/client.rs @@ -138,7 +138,7 @@ impl Client { self.credentials = credentials.into(); } - fn credentials(&self, authentication: crate::auth::AuthenticationConstraint) -> Option<&crate::auth::Credentials> { + fn get_credentials(&self, authentication: crate::auth::AuthenticationConstraint) -> Option<&crate::auth::Credentials> { match (authentication, self.credentials.as_ref()) { (crate::auth::AuthenticationConstraint::Unconstrained, creds) => creds, (crate::auth::AuthenticationConstraint::JWT, creds @ Some(&crate::auth::Credentials::JWT(_))) => creds, @@ -162,7 +162,7 @@ impl Client { ) -> ClientResult<(reqwest::Url, Option)> { let mut parsed_url = uri.parse::()?; - match self.credentials(authentication) { + match self.get_credentials(authentication) { Some(&crate::auth::Credentials::Client(ref id, ref secret)) => { parsed_url.query_pairs_mut() .append_pair("client_id", id) diff --git a/generator/src/types.rs b/generator/src/types.rs index 907d9316..cae4a5d4 100644 --- a/generator/src/types.rs +++ b/generator/src/types.rs @@ -1,4 +1,4 @@ -use std::collections::BTreeMap; +use std::collections::{BTreeMap, HashSet}; use anyhow::{bail, Result}; use inflector::cases::snakecase::to_snake_case; @@ -21,10 +21,19 @@ pub fn generate_types(ts: &mut TypeSpace, proper_name: &str) -> Result { a(" use serde::{Serialize, Deserialize};"); a(""); + let mut emitted_names: HashSet = HashSet::new(); + for te in ts.clone().id_to_entry.values() { if let Some(sn) = te.name.as_deref() { let sn = struct_name(sn); + // Warn about duplicate type names, but keep going + if emitted_names.contains(&sn) { + eprintln!("[warn] skipping duplicate type name: {}", sn); + continue; + } + emitted_names.insert(sn.clone()); + match &te.details { TypeDetails::Enum(vals, schema_data) => { let mut desc = "".to_string(); @@ -80,7 +89,7 @@ pub fn generate_types(ts: &mut TypeSpace, proper_name: &str) -> Result { || sn == "PagesHttpsCertificate" || sn == "ErrorDetails" || sn == "EnvelopeDefinition" - || (sn == "Event" && proper_name != "Stripe") + || (sn == "Event" && proper_name != "Stripe" && proper_name != "GitHub") || sn == "User" || sn == "Group" || sn == "CalendarResource" From e064b80235f7f969dca0649bc9145851286b9bd4 Mon Sep 17 00:00:00 2001 From: mbainter Date: Mon, 16 Feb 2026 23:42:45 -0600 Subject: [PATCH 06/10] Increase uniqueness for nested ProjectV2 types The 2022 GitHub API adds ProjectsV2 to the namespace, and those projects have custom fields. The fields are an AnyOf that has a few types (Object and Enum). These are Data Field Types technically, and so there were a lot of conflicts here and there wasn't anything in the name I could leverage to make them unique. This uses details from the types themselves instead to try to find additional details and it seems to work fairly well (at least for the GitHub API). --- generator/src/main.rs | 50 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/generator/src/main.rs b/generator/src/main.rs index a1f2310d..825a5336 100644 --- a/generator/src/main.rs +++ b/generator/src/main.rs @@ -1319,7 +1319,34 @@ impl TypeSpace { ); } - // If we don't have anything to append, let's bail. + // Failed to find a unique suffix based on the name. Try + // using unique descriptors from the type's details + let content_suffixes: Vec = match &details { + TypeDetails::Enum(vals, _) => { + // Use enum values as distinguishing suffixes. + vals.iter().map(|v| clean_name(v)).collect() + } + TypeDetails::Object(props, _) => { + // Use property names as distinguishing suffixes. + props.keys().map(|k| clean_name(k)).collect() + } + _ => vec![], + }; + + // Try each content-derived suffix, picking the first one + // that isn't already part of the name. + for suffix in &content_suffixes { + if !name.contains(suffix.as_str()) { + let new_name = format!("{} {}", name, suffix); + return self.add_if_not_exists( + Some(clean_name(&new_name)), + details, + "", + is_reference, + ); + } + } + // WE ARE RUNNING OUT OF NAMES AND WE TRIED. bail!( "we ran out of unique names for this thing {}: {:?}", @@ -2241,7 +2268,10 @@ impl TypeSpace { } } } - bail!("parsed API contains {} unresolved references.", self.unresolved_refs.keys().len()) + bail!( + "parsed API contains {} unresolved references.", + self.unresolved_refs.keys().len() + ) } Ok(()) @@ -2452,11 +2482,11 @@ fn gen( * Tags are how functions are grouped. */ for tag in api.tags.iter() { - if !tags.contains(&to_snake_case(&clean_name(&tag.name))) - && (proper_name == "Zoom" || proper_name == "DocuSign") - { + if !tags.contains(&to_snake_case(&clean_name(&tag.name))) { + // This specifically fixes Zoom, GitHub and DocuSign where they + // list tags that have no associated functions, but this should be + // safe for all APIs. // Return early do nothing! - // This fixes Zoom and DocuSign where they list tags that have no associated functions. continue; } @@ -2689,11 +2719,11 @@ pub(crate) struct Message { * Tags are how functions are grouped. */ for tag in api.tags.iter() { - if !tags.contains(&to_snake_case(&tag.name)) - && (proper_name == "Zoom" || proper_name == "DocuSign") - { + if !tags.contains(&to_snake_case(&clean_name(&tag.name))) { + // This specifically fixes Zoom, GitHub and DocuSign where they + // list tags that have no associated functions, but this should be + // safe for all APIs. // Return early do nothing! - // This fixes Zoom and DocuSign where they list tags that have no associated functions. continue; } From 12e6d6204fdd561b022f8cbf680f990ac023583e Mon Sep 17 00:00:00 2001 From: mbainter Date: Mon, 16 Feb 2026 23:58:12 -0600 Subject: [PATCH 07/10] Delay type generation until after the other source files I ran into some problems that turned out to be because the code generation is changing the TypeSpace, so I moved it so it runs aftwarward. I need to review this one further, as I have not yet been able to explore the potential impact of this change, particularly for other APIs. --- generator/src/main.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/generator/src/main.rs b/generator/src/main.rs index 825a5336..30782550 100644 --- a/generator/src/main.rs +++ b/generator/src/main.rs @@ -3675,18 +3675,12 @@ rustdoc-args = ["--cfg", "docsrs"] save(utilsrs, utils.as_str())?; /* - * Create the Rust source types file containing the generated types: - */ - let types = types::generate_types(&mut ts, &proper_name)?; - let mut typesrs = src.clone(); - typesrs.push("types.rs"); - save(typesrs, types.as_str())?; - - /* - * Create the Rust source files for each of the tags functions: + * NOTE: In at least the GitHub API the TypeSpace is changed + * during code generation. If moving type generation to after + * this step breaks other APIs we may need to do it twice. */ - - match functions::generate_files(&api, &proper_name, &mut ts, ¶meters) { + // Create the Rust source files for each of the tags functions: + let result = match functions::generate_files(&api, &proper_name, &mut ts, ¶meters) { Ok(files) => { // We have a map of our files, let's write to them. for (f, output) in files { @@ -3731,7 +3725,17 @@ impl {} {{ println!("generate_files fail: {:?}", e); true } - } + }; + + /* + * Create the Rust source types file containing the generated types: + */ + let types = types::generate_types(&mut ts, &proper_name)?; + let mut typesrs = src.clone(); + typesrs.push("types.rs"); + save(typesrs, types.as_str())?; + + result } Err(e) => { println!("gen fail: {:?}", e); From 7dea7b84506a0ad05c8417926834daf48a0cb9c7 Mon Sep 17 00:00:00 2001 From: mbainter Date: Tue, 17 Feb 2026 22:36:00 -0600 Subject: [PATCH 08/10] Update tests to reflect changes to Issues in the GitHub API --- github/tests/tests.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/github/tests/tests.rs b/github/tests/tests.rs index 77565742..b4d74e18 100644 --- a/github/tests/tests.rs +++ b/github/tests/tests.rs @@ -39,7 +39,7 @@ fn empty_issue() -> octorust::types::Issue { active_lock_reason: String::new(), assignee: None, assignees: vec![], - author_association: octorust::types::AuthorAssociation::None, + author_association: Some(octorust::types::AuthorAssociation::None), body: String::new(), body_html: String::new(), body_text: String::new(), @@ -48,23 +48,30 @@ fn empty_issue() -> octorust::types::Issue { comments: 0, comments_url: String::new(), created_at: None, + draft: false, events_url: String::new(), html_url: String::new(), id: 0, + issue_dependencies_summary: None, + issue_field_values: vec![], labels: vec![], labels_url: String::new(), locked: false, milestone: None, node_id: String::new(), number: 0, + parent_issue_url: String::new(), performed_via_github_app: None, pull_request: None, reactions: None, repository: None, repository_url: String::new(), state: String::new(), + state_reason: None, + sub_issues_summary: None, timeline_url: String::new(), title: String::new(), + type_: None, updated_at: None, url: String::new(), user: None, From d3981d6a1e3336d0e89480cd93f768e4275388a2 Mon Sep 17 00:00:00 2001 From: mbainter Date: Sat, 21 Feb 2026 00:07:52 -0600 Subject: [PATCH 09/10] Generate app_installation_id as a signed int Because of the nature of JSON specs the OpenAPI spec does not truly support specifying a u64. GitHub could signal this with a minimum value constraint but that is not present in the current version of the API. This arguably should be a u64, and the generator can be amended to support this. Given the affected ids are generated by GitHub and not this crate the impact would be minimal. Even so, this commit opts for sticking with applying the schema as-written. Forcing it another direction that is not based on the schema itself feels likely to bite someone later on. --- generator/src/template.rs | 4 ++-- github/README.md | 4 ++-- github/src/lib.rs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/generator/src/template.rs b/generator/src/template.rs index 317290db..5b3b7227 100644 --- a/generator/src/template.rs +++ b/generator/src/template.rs @@ -365,10 +365,10 @@ pub fn generate_docs_github( //! use base64::{{Engine, engine::general_purpose::STANDARD}}; //! //! let app_id_str = env::var("GH_APP_ID").unwrap(); -//! let app_id = app_id_str.parse::().unwrap(); +//! let app_id = app_id_str.parse::().unwrap(); //! //! let app_installation_id_str = env::var("GH_INSTALLATION_ID").unwrap(); -//! let app_installation_id = app_installation_id_str.parse::().unwrap(); +//! let app_installation_id = app_installation_id_str.parse::().unwrap(); //! //! let encoded_private_key = env::var("GH_PRIVATE_KEY").unwrap(); //! let private_key = STANDARD.decode(encoded_private_key).unwrap(); diff --git a/github/README.md b/github/README.md index 04431620..edcfcf28 100644 --- a/github/README.md +++ b/github/README.md @@ -121,10 +121,10 @@ use octorust::http_cache::FileBasedCache; use base64::{Engine, engine::general_purpose::STANDARD}; let app_id_str = env::var("GH_APP_ID").unwrap(); -let app_id = app_id_str.parse::().unwrap(); +let app_id = app_id_str.parse::().unwrap(); let app_installation_id_str = env::var("GH_INSTALLATION_ID").unwrap(); -let app_installation_id = app_installation_id_str.parse::().unwrap(); +let app_installation_id = app_installation_id_str.parse::().unwrap(); let encoded_private_key = env::var("GH_PRIVATE_KEY").unwrap(); let private_key = STANDARD.decode(encoded_private_key).unwrap(); diff --git a/github/src/lib.rs b/github/src/lib.rs index c3131aa3..4915e18a 100644 --- a/github/src/lib.rs +++ b/github/src/lib.rs @@ -119,10 +119,10 @@ //! use base64::{Engine, engine::general_purpose::STANDARD}; //! //! let app_id_str = env::var("GH_APP_ID").unwrap(); -//! let app_id = app_id_str.parse::().unwrap(); +//! let app_id = app_id_str.parse::().unwrap(); //! //! let app_installation_id_str = env::var("GH_INSTALLATION_ID").unwrap(); -//! let app_installation_id = app_installation_id_str.parse::().unwrap(); +//! let app_installation_id = app_installation_id_str.parse::().unwrap(); //! //! let encoded_private_key = env::var("GH_PRIVATE_KEY").unwrap(); //! let private_key = STANDARD.decode(encoded_private_key).unwrap(); From 47a4f7b098d133c28840eff456543774127a1c7d Mon Sep 17 00:00:00 2001 From: mbainter Date: Tue, 17 Feb 2026 00:22:45 -0600 Subject: [PATCH 10/10] Generate updated octorust crate --- github/README.md | 2 +- github/src/actions.rs | 7239 ++- github/src/activity.rs | 518 +- github/src/apps.rs | 610 +- github/src/billing.rs | 419 +- github/src/campaigns.rs | 297 + github/src/checks.rs | 283 +- github/src/classroom.rs | 369 + github/src/code_scanning.rs | 1036 +- github/src/code_security.rs | 1208 + github/src/codes_of_conduct.rs | 57 +- github/src/codespaces.rs | 2034 + github/src/copilot.rs | 599 + github/src/credentials.rs | 50 + github/src/dependabot.rs | 1502 + github/src/dependency_graph.rs | 185 + github/src/emojis.rs | 4 +- github/src/enterprise_team_memberships.rs | 294 + github/src/enterprise_team_organizations.rs | 294 + github/src/enterprise_teams.rs | 242 + github/src/gists.rs | 238 +- github/src/git.rs | 236 +- github/src/gitignore.rs | 23 +- github/src/hosted_compute.rs | 259 + github/src/interactions.rs | 66 +- github/src/issues.rs | 1794 +- github/src/lib.rs | 186 +- github/src/licenses.rs | 52 +- github/src/markdown.rs | 10 +- github/src/meta.rs | 71 +- github/src/migrations.rs | 289 +- github/src/oidc.rs | 87 + github/src/orgs.rs | 5094 +- github/src/packages.rs | 962 +- github/src/private_registries.rs | 263 + github/src/projects.rs | 1295 +- github/src/pulls.rs | 759 +- github/src/rate_limit.rs | 22 +- github/src/reactions.rs | 951 +- github/src/repos.rs | 9576 ++- github/src/search.rs | 119 +- github/src/secret_scanning.rs | 635 +- github/src/security_advisories.rs | 806 + github/src/teams.rs | 2672 +- github/src/types.rs | 59004 +++++++++++++----- github/src/users.rs | 1539 +- github/src/utils.rs | 19 +- 47 files changed, 78211 insertions(+), 26058 deletions(-) create mode 100644 github/src/campaigns.rs create mode 100644 github/src/classroom.rs create mode 100644 github/src/code_security.rs create mode 100644 github/src/codespaces.rs create mode 100644 github/src/copilot.rs create mode 100644 github/src/credentials.rs create mode 100644 github/src/dependabot.rs create mode 100644 github/src/dependency_graph.rs create mode 100644 github/src/enterprise_team_memberships.rs create mode 100644 github/src/enterprise_team_organizations.rs create mode 100644 github/src/enterprise_teams.rs create mode 100644 github/src/hosted_compute.rs create mode 100644 github/src/oidc.rs create mode 100644 github/src/private_registries.rs create mode 100644 github/src/security_advisories.rs diff --git a/github/README.md b/github/README.md index edcfcf28..c2045508 100644 --- a/github/README.md +++ b/github/README.md @@ -16,7 +16,7 @@ GitHub's v3 REST API. | name | url | |----|----| -| Support | | +| Support | | ### License diff --git a/github/src/actions.rs b/github/src/actions.rs index ca1626e1..983ebe60 100644 --- a/github/src/actions.rs +++ b/github/src/actions.rs @@ -12,28 +12,29 @@ impl Actions { } /** - * Get GitHub Actions permissions for an organization. + * Get GitHub Actions cache retention limit for an enterprise. * - * This function performs a `GET` to the `/orgs/{org}/actions/permissions` endpoint. + * This function performs a `GET` to the `/enterprises/{enterprise}/actions/cache/retention-limit` endpoint. * - * Gets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * Gets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this + * enterprise may not set a higher cache retention limit. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `enterprise: &str` -- The slug version of the enterprise name. */ - pub async fn get_github_actions_permissions_organization( + pub async fn get_actions_cache_retention_limit_for_enterprise( &self, - org: &str, - ) -> ClientResult> { + enterprise: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions", - crate::progenitor_support::encode_path(org), + "/enterprises/{}/actions/cache/retention-limit", + crate::progenitor_support::encode_path(&enterprise.to_string()), ), None, ); @@ -48,31 +49,30 @@ impl Actions { .await } /** - * Set GitHub Actions permissions for an organization. - * - * This function performs a `PUT` to the `/orgs/{org}/actions/permissions` endpoint. + * Set GitHub Actions cache retention limit for an enterprise. * - * Sets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * This function performs a `PUT` to the `/enterprises/{enterprise}/actions/cache/retention-limit` endpoint. * - * If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions, then you cannot override them for the organization. + * Sets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this + * enterprise may not set a higher cache retention limit. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `enterprise: &str` -- The slug version of the enterprise name. */ - pub async fn set_github_actions_permissions_organization( + pub async fn set_actions_cache_retention_limit_for_enterprise( &self, - org: &str, - body: &crate::types::ActionsSetGithubPermissionsOrganizationRequest, + enterprise: &str, + body: &crate::types::ActionsCacheRetentionLimitEnterprise, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions", - crate::progenitor_support::encode_path(org), + "/enterprises/{}/actions/cache/retention-limit", + crate::progenitor_support::encode_path(&enterprise.to_string()), ), None, ); @@ -87,45 +87,29 @@ impl Actions { .await } /** - * List selected repositories enabled for GitHub Actions in an organization. + * Get GitHub Actions cache storage limit for an enterprise. * - * This function performs a `GET` to the `/orgs/{org}/actions/permissions/repositories` endpoint. + * This function performs a `GET` to the `/enterprises/{enterprise}/actions/cache/storage-limit` endpoint. * - * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * Gets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this + * enterprise may not set a higher cache storage limit. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `enterprise: &str` -- The slug version of the enterprise name. */ - pub async fn list_selected_repositories_enabled_github_actions_organization( + pub async fn get_actions_cache_storage_limit_for_enterprise( &self, - org: &str, - per_page: i64, - page: i64, - ) -> ClientResult< - crate::Response< - crate::types::ActionsListSelectedRepositoriesEnabledGithubOrganizationResponse, - >, - > { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + enterprise: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions/repositories?{}", - crate::progenitor_support::encode_path(org), - query_ + "/enterprises/{}/actions/cache/storage-limit", + crate::progenitor_support::encode_path(&enterprise.to_string()), ), None, ); @@ -140,29 +124,30 @@ impl Actions { .await } /** - * Set selected repositories enabled for GitHub Actions in an organization. + * Set GitHub Actions cache storage limit for an enterprise. * - * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/repositories` endpoint. + * This function performs a `PUT` to the `/enterprises/{enterprise}/actions/cache/storage-limit` endpoint. * - * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * Sets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this + * enterprise may not set a higher cache storage limit. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `enterprise: &str` -- The slug version of the enterprise name. */ - pub async fn set_selected_repositories_enabled_github_actions_organization( + pub async fn set_actions_cache_storage_limit_for_enterprise( &self, - org: &str, - body: &crate::types::ActionsSetRepoAccessSelfHostedRunnerGroupInOrgRequest, + enterprise: &str, + body: &crate::types::ActionsCacheStorageLimitEnterprise, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions/repositories", - crate::progenitor_support::encode_path(org), + "/enterprises/{}/actions/cache/storage-limit", + crate::progenitor_support::encode_path(&enterprise.to_string()), ), None, ); @@ -177,36 +162,34 @@ impl Actions { .await } /** - * Enable a selected repository for GitHub Actions in an organization. + * Get GitHub Actions cache retention limit for an organization. * - * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/repositories/{repository_id}` endpoint. + * This function performs a `GET` to the `/organizations/{org}/actions/cache/retention-limit` endpoint. * - * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * Gets GitHub Actions cache retention limit for an organization. All repositories under this + * organization may not set a higher cache retention limit. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `repository_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn enable_selected_repository_github_actions_organization( + pub async fn get_actions_cache_retention_limit_for_organization( &self, org: &str, - repository_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions/repositories/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&repository_id.to_string()), + "/organizations/{}/actions/cache/retention-limit", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { body: None, @@ -216,67 +199,67 @@ impl Actions { .await } /** - * Disable a selected repository for GitHub Actions in an organization. + * Set GitHub Actions cache retention limit for an organization. * - * This function performs a `DELETE` to the `/orgs/{org}/actions/permissions/repositories/{repository_id}` endpoint. + * This function performs a `PUT` to the `/organizations/{org}/actions/cache/retention-limit` endpoint. * - * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * Sets GitHub Actions cache retention limit for an organization. All repositories under this + * organization may not set a higher cache retention limit. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `repository_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn disable_selected_repository_github_actions_organization( + pub async fn set_actions_cache_retention_limit_for_organization( &self, org: &str, - repository_id: i64, + body: &crate::types::ActionsCacheRetentionLimitOrganization, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions/repositories/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&repository_id.to_string()), + "/organizations/{}/actions/cache/retention-limit", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get allowed actions for an organization. + * Get GitHub Actions cache storage limit for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/permissions/selected-actions` endpoint. + * This function performs a `GET` to the `/organizations/{org}/actions/cache/storage-limit` endpoint. * - * Gets the selected actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)."" + * Gets GitHub Actions cache storage limit for an organization. All repositories under this + * organization may not set a higher cache storage limit. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_allowed_actions_organization( + pub async fn get_actions_cache_storage_limit_for_organization( &self, org: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions/selected-actions", - crate::progenitor_support::encode_path(org), + "/organizations/{}/actions/cache/storage-limit", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -291,33 +274,30 @@ impl Actions { .await } /** - * Set allowed actions for an organization. - * - * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/selected-actions` endpoint. + * Set GitHub Actions cache storage limit for an organization. * - * Sets the actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * This function performs a `PUT` to the `/organizations/{org}/actions/cache/storage-limit` endpoint. * - * If the organization belongs to an enterprise that has `selected` actions set at the enterprise level, then you cannot override any of the enterprise's allowed actions settings. + * Sets GitHub Actions cache storage limit for an organization. All organizations and repositories under this + * organization may not set a higher cache storage limit. * - * To use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization. + * OAuth tokens and personal access tokens (classic) need the `admin:organization` scope to use this endpoint. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. - * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn set_allowed_actions_organization( + pub async fn set_actions_cache_storage_limit_for_organization( &self, org: &str, - body: &crate::types::SelectedActions, + body: &crate::types::ActionsCacheStorageLimitOrganization, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/permissions/selected-actions", - crate::progenitor_support::encode_path(org), + "/organizations/{}/actions/cache/storage-limit", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -332,31 +312,66 @@ impl Actions { .await } /** - * List self-hosted runner groups for an organization. + * Get GitHub Actions cache usage for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/cache/usage` endpoint. * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. * - * Lists all self-hosted runner groups configured in an organization and inherited from an enterprise. + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_actions_cache_usage_for_org( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/cache/usage", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repositories with GitHub Actions cache usage for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/cache/usage-by-repository` endpoint. + * + * Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_self_hosted_runner_groups_for_org( + pub async fn get_actions_cache_usage_by_repo_for_org( &self, org: &str, per_page: i64, page: i64, - ) -> ClientResult> - { + ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -367,8 +382,8 @@ impl Actions { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups?{}", - crate::progenitor_support::encode_path(org), + "/orgs/{}/actions/cache/usage-by-repository?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -384,118 +399,118 @@ impl Actions { .await } /** - * Create a self-hosted runner group for an organization. - * - * This function performs a `POST` to the `/orgs/{org}/actions/runner-groups` endpoint. + * List GitHub-hosted runners for an organization. * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners` endpoint. * - * Creates a new self-hosted runner group for an organization. + * Lists all GitHub-hosted runners configured in an organization. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `manage_runner:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn create_self_hosted_runner_group_for_org( + pub async fn list_hosted_runners_for_org( &self, org: &str, - body: &crate::types::ActionsCreateSelfHostedRunnerGroupOrgRequest, - ) -> ClientResult> { + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups", - crate::progenitor_support::encode_path(org), + "/orgs/{}/actions/hosted-runners?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a self-hosted runner group for an organization. - * - * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}` endpoint. + * Create a GitHub-hosted runner for an organization. * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * This function performs a `POST` to the `/orgs/{org}/actions/hosted-runners` endpoint. * - * Gets a specific self-hosted runner group for an organization. - * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * Creates a GitHub-hosted runner for an organization. + * OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_self_hosted_runner_group_for_org( + pub async fn create_hosted_runner_for_org( &self, org: &str, - runner_group_id: i64, - ) -> ClientResult> { + body: &crate::types::ActionsCreateHostedRunnerOrgRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), + "/orgs/{}/actions/hosted-runners", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Delete a self-hosted runner group from an organization. - * - * This function performs a `DELETE` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}` endpoint. + * List custom images for an organization. * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/images/custom` endpoint. * - * Deletes a self-hosted runner group for an organization. + * List custom images for an organization. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn delete_self_hosted_runner_group_from_org( + pub async fn list_custom_images_for_org( &self, org: &str, - runner_group_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), + "/orgs/{}/actions/hosted-runners/images/custom", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -505,95 +520,75 @@ impl Actions { .await } /** - * Update a self-hosted runner group for an organization. - * - * This function performs a `PATCH` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}` endpoint. + * Get a custom image definition for GitHub Actions Hosted Runners. * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}` endpoint. * - * Updates the `name` and `visibility` of a self-hosted runner group in an organization. + * Get a custom image definition for GitHub Actions Hosted Runners. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `image_definition_id: i64` -- Image definition ID of custom image. */ - pub async fn update_self_hosted_runner_group_for_org( + pub async fn get_custom_image_for_org( &self, org: &str, - runner_group_id: i64, - body: &crate::types::ActionsUpdateSelfHostedRunnerGroupOrgRequest, - ) -> ClientResult> { + image_definition_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), + "/orgs/{}/actions/hosted-runners/images/custom/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&image_definition_id.to_string()), ), None, ); self.client - .patch( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List repository access to a self-hosted runner group in an organization. + * Delete a custom image from the organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories` endpoint. - * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * This function performs a `DELETE` to the `/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}` endpoint. * - * Lists the repositories with access to a self-hosted runner group configured in an organization. + * Delete a custom image from the organization. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `image_definition_id: i64` -- Image definition ID of custom image. */ - pub async fn list_repo_access_to_self_hosted_runner_group_in_org( + pub async fn delete_custom_image_from_org( &self, org: &str, - runner_group_id: i64, - page: i64, - per_page: i64, - ) -> ClientResult< - crate::Response, - > { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + image_definition_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/repositories?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), - query_ + "/orgs/{}/actions/hosted-runners/images/custom/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&image_definition_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -603,85 +598,79 @@ impl Actions { .await } /** - * Set repository access for a self-hosted runner group in an organization. - * - * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories` endpoint. + * List image versions of a custom image for an organization. * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions` endpoint. * - * Replaces the list of repositories that have access to a self-hosted runner group configured in an organization. + * List image versions of a custom image for an organization. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `image_definition_id: i64` -- Image definition ID of custom image. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn set_repo_access_to_self_hosted_runner_group_in_org( + pub async fn list_custom_image_versions_for_org( &self, + image_definition_id: i64, org: &str, - runner_group_id: i64, - body: &crate::types::ActionsSetRepoAccessSelfHostedRunnerGroupInOrgRequest, - ) -> ClientResult> { + ) -> ClientResult> + { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/repositories", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), + "/orgs/{}/actions/hosted-runners/images/custom/{}/versions", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&image_definition_id.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Add repository access to a self-hosted runner group in an organization. - * - * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}` endpoint. - * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * Get an image version of a custom image for GitHub Actions Hosted Runners. * + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}` endpoint. * - * Adds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * Get an image version of a custom image for GitHub Actions Hosted Runners. * - * You must authenticate using an access token with the `admin:org` - * scope to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. - * * `repository_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `image_definition_id: i64` -- Image definition ID of custom image. + * * `version: &str` -- Version of a custom image. */ - pub async fn add_repo_access_to_self_hosted_runner_group_in_org( + pub async fn get_custom_image_version_for_org( &self, org: &str, - runner_group_id: i64, - repository_id: i64, - ) -> ClientResult> { + image_definition_id: i64, + version: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/repositories/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), - crate::progenitor_support::encode_path(&repository_id.to_string()), + "/orgs/{}/actions/hosted-runners/images/custom/{}/versions/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&image_definition_id.to_string()), + crate::progenitor_support::encode_path(&version.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { body: None, @@ -691,37 +680,34 @@ impl Actions { .await } /** - * Remove repository access to a self-hosted runner group in an organization. - * - * This function performs a `DELETE` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}` endpoint. + * Delete an image version of custom image from the organization. * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * This function performs a `DELETE` to the `/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}` endpoint. * + * Delete an image version of custom image from the organization. * - * Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." - * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. - * * `repository_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `image_definition_id: i64` -- Image definition ID of custom image. + * * `version: &str` -- Version of a custom image. */ - pub async fn remove_repo_access_to_self_hosted_runner_group_in_org( + pub async fn delete_custom_image_version_from_org( &self, org: &str, - runner_group_id: i64, - repository_id: i64, + image_definition_id: i64, + version: &str, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/repositories/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), - crate::progenitor_support::encode_path(&repository_id.to_string()), + "/orgs/{}/actions/hosted-runners/images/custom/{}/versions/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&image_definition_id.to_string()), + crate::progenitor_support::encode_path(&version.to_string()), ), None, ); @@ -736,47 +722,27 @@ impl Actions { .await } /** - * List self-hosted runners in a group for an organization. - * - * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners` endpoint. - * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * Get GitHub-owned images for GitHub-hosted runners in an organization. * - * Lists self-hosted runners that are in a specific organization group. + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/images/github-owned` endpoint. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * Get the list of GitHub-owned images available for GitHub-hosted runners for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn list_self_hosted_runners_in_group_for_org( + pub async fn get_hosted_runners_github_owned_images_for_org( &self, org: &str, - runner_group_id: i64, - per_page: i64, - page: i64, - ) -> ClientResult> + ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/runners?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), - query_ + "/orgs/{}/actions/hosted-runners/images/github-owned", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -791,85 +757,66 @@ impl Actions { .await } /** - * Set self-hosted runners in a group for an organization. - * - * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners` endpoint. - * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * Get partner images for GitHub-hosted runners in an organization. * - * Replaces the list of self-hosted runners that are part of an organization runner group. + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/images/partner` endpoint. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * Get the list of partner images available for GitHub-hosted runners for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn set_self_hosted_runners_in_group_for_org( + pub async fn get_hosted_runners_partner_images_for_org( &self, org: &str, - runner_group_id: i64, - body: &crate::types::ActionsSetSelfHostedRunnersInGroupOrgRequest, - ) -> ClientResult> { + ) -> ClientResult> + { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/runners", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), + "/orgs/{}/actions/hosted-runners/images/partner", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Add a self-hosted runner to a group for an organization. - * - * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}` endpoint. - * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." - * + * Get limits on GitHub-hosted runners for an organization. * - * Adds a self-hosted runner to a runner group configured in an organization. + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/limits` endpoint. * - * You must authenticate using an access token with the `admin:org` - * scope to use this endpoint. + * Get the GitHub-hosted runners limits for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. - * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn add_self_hosted_runner_to_group_for_org( + pub async fn get_hosted_runners_limits_for_org( &self, org: &str, - runner_group_id: i64, - runner_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/runners/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), - crate::progenitor_support::encode_path(&runner_id.to_string()), + "/orgs/{}/actions/hosted-runners/limits", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { body: None, @@ -879,42 +826,32 @@ impl Actions { .await } /** - * Remove a self-hosted runner from a group for an organization. - * - * This function performs a `DELETE` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}` endpoint. - * - * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * Get GitHub-hosted runners machine specs for an organization. * + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/machine-sizes` endpoint. * - * Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group. - * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * Get the list of machine specs available for GitHub-hosted runners for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. - * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn remove_self_hosted_runner_from_group_for_org( + pub async fn get_hosted_runners_machine_specs_for_org( &self, org: &str, - runner_group_id: i64, - runner_id: i64, - ) -> ClientResult> { + ) -> ClientResult> + { let url = self.client.url( &format!( - "/orgs/{}/actions/runner-groups/{}/runners/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_group_id.to_string()), - crate::progenitor_support::encode_path(&runner_id.to_string()), + "/orgs/{}/actions/hosted-runners/machine-sizes", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -924,41 +861,27 @@ impl Actions { .await } /** - * List self-hosted runners for an organization. - * - * This function performs a `GET` to the `/orgs/{org}/actions/runners` endpoint. + * Get platforms for GitHub-hosted runners in an organization. * - * Lists all self-hosted runners configured in an organization. + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/platforms` endpoint. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * Get the list of platforms available for GitHub-hosted runners for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn list_self_hosted_runners_for_org( + pub async fn get_hosted_runners_platforms_for_org( &self, org: &str, - per_page: i64, - page: i64, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> + { let url = self.client.url( &format!( - "/orgs/{}/actions/runners?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/actions/hosted-runners/platforms", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -973,28 +896,31 @@ impl Actions { .await } /** - * List runner applications for an organization. + * Get a GitHub-hosted runner for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/runners/downloads` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/hosted-runners/{hosted_runner_id}` endpoint. * - * Lists binaries for the runner application that you can download and run. + * Gets a GitHub-hosted runner configured in an organization. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hosted_runner_id: i64` -- Unique identifier of the GitHub-hosted runner. */ - pub async fn list_runner_applications_for_org( + pub async fn get_hosted_runner_for_org( &self, org: &str, - ) -> ClientResult>> { + hosted_runner_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runners/downloads", - crate::progenitor_support::encode_path(org), + "/orgs/{}/actions/hosted-runners/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hosted_runner_id.to_string()), ), None, ); @@ -1009,31 +935,34 @@ impl Actions { .await } /** - * List runner applications for an organization. + * Delete a GitHub-hosted runner for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/runners/downloads` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/actions/hosted-runners/{hosted_runner_id}` endpoint. * - * As opposed to `list_runner_applications_for_org`, this function returns all the pages of the request at once. + * Deletes a GitHub-hosted runner for an organization. * - * Lists binaries for the runner application that you can download and run. + * FROM: * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hosted_runner_id: i64` -- Unique identifier of the GitHub-hosted runner. */ - pub async fn list_all_runner_applications_for_org( + pub async fn delete_hosted_runner_for_org( &self, org: &str, - ) -> ClientResult>> { + hosted_runner_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runners/downloads", - crate::progenitor_support::encode_path(org), + "/orgs/{}/actions/hosted-runners/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hosted_runner_id.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -1043,41 +972,72 @@ impl Actions { .await } /** - * Create a registration token for an organization. + * Update a GitHub-hosted runner for an organization. * - * This function performs a `POST` to the `/orgs/{org}/actions/runners/registration-token` endpoint. + * This function performs a `PATCH` to the `/orgs/{org}/actions/hosted-runners/{hosted_runner_id}` endpoint. * - * Returns a token that you can pass to the `config` script. The token expires after one hour. + * Updates a GitHub-hosted runner for an organization. + * OAuth app tokens and personal access tokens (classic) need the `manage_runners:org` scope to use this endpoint. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hosted_runner_id: i64` -- Unique identifier of the GitHub-hosted runner. + */ + pub async fn update_hosted_runner_for_org( + &self, + org: &str, + hosted_runner_id: i64, + body: &crate::types::ActionsUpdateHostedRunnerOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/hosted-runners/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hosted_runner_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get GitHub Actions permissions for an organization. * - * #### Example using registration token + * This function performs a `GET` to the `/orgs/{org}/actions/permissions` endpoint. * - * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. * - * ``` - * ./config.sh --url https://github.com/octo-org --token TOKEN - * ``` + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn create_registration_token_for_org( + pub async fn get_github_actions_permissions_organization( &self, org: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runners/registration-token", - crate::progenitor_support::encode_path(org), + "/orgs/{}/actions/permissions", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { body: None, @@ -1087,76 +1047,65 @@ impl Actions { .await } /** - * Create a remove token for an organization. - * - * This function performs a `POST` to the `/orgs/{org}/actions/runners/remove-token` endpoint. - * - * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. - * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * Set GitHub Actions permissions for an organization. * - * #### Example using remove token + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions` endpoint. * - * To remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this - * endpoint. + * Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. * - * ``` - * ./config.sh remove --token TOKEN - * ``` + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn create_remove_token_for_org( + pub async fn set_github_actions_permissions_organization( &self, org: &str, - ) -> ClientResult> { + body: &crate::types::ActionsSetGithubPermissionsOrganizationRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runners/remove-token", - crate::progenitor_support::encode_path(org), + "/orgs/{}/actions/permissions", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .post( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get a self-hosted runner for an organization. + * Get artifact and log retention settings for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/runners/{runner_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/artifact-and-log-retention` endpoint. * - * Gets a specific self-hosted runner configured in an organization. + * Gets artifact and log retention settings for an organization. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_self_hosted_runner_for_org( + pub async fn get_artifact_and_log_retention_settings_organization( &self, org: &str, - runner_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runners/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_id.to_string()), + "/orgs/{}/actions/permissions/artifact-and-log-retention", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1171,78 +1120,65 @@ impl Actions { .await } /** - * Delete a self-hosted runner from an organization. + * Set artifact and log retention settings for an organization. * - * This function performs a `DELETE` to the `/orgs/{org}/actions/runners/{runner_id}` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/artifact-and-log-retention` endpoint. * - * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * Sets artifact and log retention settings for an organization. * - * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn delete_self_hosted_runner_from_org( + pub async fn set_artifact_and_log_retention_settings_organization( &self, org: &str, - runner_id: i64, + body: &crate::types::ActionsArtifactLogRetention, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/runners/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&runner_id.to_string()), + "/orgs/{}/actions/permissions/artifact-and-log-retention", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List organization secrets. + * Get fork PR contributor approval permissions for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/secrets` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/fork-pr-contributor-approval` endpoint. * - * Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * Gets the fork PR contributor approval policy for an organization. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn list_org_secrets( + pub async fn get_fork_pr_contributor_approval_permissions_organization( &self, org: &str, - per_page: i64, - page: i64, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/actions/permissions/fork-pr-contributor-approval", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1257,63 +1193,63 @@ impl Actions { .await } /** - * Get an organization public key. + * Set fork PR contributor approval permissions for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/secrets/public-key` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/fork-pr-contributor-approval` endpoint. + * + * Sets the fork PR contributor approval policy for an organization. * - * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_org_public_key( + pub async fn set_fork_pr_contributor_approval_permissions_organization( &self, org: &str, - ) -> ClientResult> { + body: &crate::types::ActionsForkPrContributorApproval, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/public-key", - crate::progenitor_support::encode_path(org), + "/orgs/{}/actions/permissions/fork-pr-contributor-approval", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get an organization secret. + * Get private repo fork PR workflow settings for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/secrets/{secret_name}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos` endpoint. * - * Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * Gets the settings for whether workflows from fork pull requests can run on private repositories in an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `secret_name: &str` -- secret_name parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_org_secret( + pub async fn get_private_repo_fork_pr_workflows_settings_organization( &self, org: &str, - secret_name: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(secret_name), + "/orgs/{}/actions/permissions/fork-pr-workflows-private-repos", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1328,104 +1264,157 @@ impl Actions { .await } /** - * Create or update an organization secret. + * Set private repo fork PR workflow settings for an organization. * - * This function performs a `PUT` to the `/orgs/{org}/actions/secrets/{secret_name}` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos` endpoint. * - * Creates or updates an organization secret with an encrypted value. Encrypt your secret using - * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access - * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to - * use this endpoint. + * Sets the settings for whether workflows from fork pull requests can run on private repositories in an organization. * - * #### Example encrypting a secret using Node.js + * FROM: * - * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * **Parameters:** * - * ``` - * const sodium = require('tweetsodium'); + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn set_private_repo_fork_pr_workflows_settings_organization( + &self, + org: &str, + body: &crate::types::ActionsForkPrWorkflowsPrivateReposRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/permissions/fork-pr-workflows-private-repos", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List selected repositories enabled for GitHub Actions in an organization. * - * const key = "base64-encoded-public-key"; - * const value = "plain-text-secret"; + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/repositories` endpoint. * - * // Convert the message and key to Uint8Array's (Buffer implements that interface) - * const messageBytes = Buffer.from(value); - * const keyBytes = Buffer.from(key, 'base64'); + * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." * - * // Encrypt using LibSodium. - * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * // Base64 the encrypted secret - * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * FROM: * - * console.log(encrypted); - * ``` + * **Parameters:** * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_selected_repositories_enabled_github_actions_organization( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult< + crate::Response< + crate::types::ActionsListSelectedRepositoriesEnabledGithubOrganizationResponse, + >, + > { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/permissions/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set selected repositories enabled for GitHub Actions in an organization. * - * #### Example encrypting a secret using Python - * - * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. - * - * ``` - * from base64 import b64encode - * from nacl import encoding, public - * - * def encrypt(public_key: str, secret_value: str) -> str: - * """Encrypt a Unicode string using the public key.""" - * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) - * sealed_box = public.SealedBox(public_key) - * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) - * return b64encode(encrypted).decode("utf-8") - * ``` - * - * #### Example encrypting a secret using C# - * - * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/repositories` endpoint. * - * ``` - * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); - * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." * - * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); * - * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); - * ``` + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * #### Example encrypting a secret using Ruby + * FROM: * - * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * **Parameters:** * - * ```ruby - * require "rbnacl" - * require "base64" + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn set_selected_repositories_enabled_github_actions_organization( + &self, + org: &str, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/permissions/repositories", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Enable a selected repository for GitHub Actions in an organization. * - * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") - * public_key = RbNaCl::PublicKey.new(key) + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/repositories/{repository_id}` endpoint. * - * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) - * encrypted_secret = box.encrypt("my_secret") + * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." * - * # Print the base64 encoded secret - * puts Base64.strict_encode64(encrypted_secret) - * ``` + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `secret_name: &str` -- secret_name parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn create_or_update_org_secret( + pub async fn enable_selected_repository_github_actions_organization( &self, org: &str, - secret_name: &str, - body: &crate::types::ActionsCreateUpdateOrgSecretRequest, + repository_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(secret_name), + "/orgs/{}/actions/permissions/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), ), None, ); @@ -1433,36 +1422,38 @@ impl Actions { .put( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Delete an organization secret. + * Disable a selected repository for GitHub Actions in an organization. * - * This function performs a `DELETE` to the `/orgs/{org}/actions/secrets/{secret_name}` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/actions/permissions/repositories/{repository_id}` endpoint. + * + * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." * - * Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `secret_name: &str` -- secret_name parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn delete_org_secret( + pub async fn disable_selected_repository_github_actions_organization( &self, org: &str, - secret_name: &str, + repository_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(secret_name), + "/orgs/{}/actions/permissions/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), ), None, ); @@ -1477,43 +1468,28 @@ impl Actions { .await } /** - * List selected repositories for an organization secret. + * Get allowed actions and reusable workflows for an organization. * - * This function performs a `GET` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/selected-actions` endpoint. + * + * Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." * - * Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `secret_name: &str` -- secret_name parameter. - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn list_selected_repos_for_org_secret( + pub async fn get_allowed_actions_organization( &self, org: &str, - secret_name: &str, - page: i64, - per_page: i64, - ) -> ClientResult> - { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/{}/repositories?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(secret_name), - query_ + "/orgs/{}/actions/permissions/selected-actions", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1528,30 +1504,29 @@ impl Actions { .await } /** - * Set selected repositories for an organization secret. + * Set allowed actions and reusable workflows for an organization. * - * This function performs a `PUT` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/selected-actions` endpoint. + * + * Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." * - * Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `secret_name: &str` -- secret_name parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn set_selected_repos_for_org_secret( + pub async fn set_allowed_actions_organization( &self, org: &str, - secret_name: &str, - body: &crate::types::ActionsSetSelectedReposOrgSecretRequest, + body: &crate::types::SelectedActions, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/{}/repositories", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(secret_name), + "/orgs/{}/actions/permissions/selected-actions", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1566,37 +1541,33 @@ impl Actions { .await } /** - * Add selected repository to an organization secret. + * Get self-hosted runners settings for an organization. * - * This function performs a `PUT` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/self-hosted-runners` endpoint. * - * Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * Gets the settings for self-hosted runners for an organization. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `secret_name: &str` -- secret_name parameter. - * * `repository_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn add_selected_repo_to_org_secret( + pub async fn get_self_hosted_runners_permissions_organization( &self, org: &str, - secret_name: &str, - repository_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/{}/repositories/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(secret_name), - crate::progenitor_support::encode_path(&repository_id.to_string()), + "/orgs/{}/actions/permissions/self-hosted-runners", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { body: None, @@ -1606,68 +1577,69 @@ impl Actions { .await } /** - * Remove selected repository from an organization secret. + * Set self-hosted runners settings for an organization. * - * This function performs a `DELETE` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/self-hosted-runners` endpoint. * - * Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + * Sets the settings for self-hosted runners for an organization. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `secret_name: &str` -- secret_name parameter. - * * `repository_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn remove_selected_repo_from_org_secret( + pub async fn set_self_hosted_runners_permissions_organization( &self, org: &str, - secret_name: &str, - repository_id: i64, + body: &crate::types::ActionsSetSelfHostedRunnersPermissionsOrganizationRequest, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/actions/secrets/{}/repositories/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(secret_name), - crate::progenitor_support::encode_path(&repository_id.to_string()), + "/orgs/{}/actions/permissions/self-hosted-runners", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List artifacts for a repository. + * List repositories allowed to use self-hosted runners in an organization. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/artifacts` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/self-hosted-runners/repositories` endpoint. + * + * Lists repositories that are allowed to use self-hosted runners in an organization. * - * Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_artifacts_for_repo( + pub async fn list_selected_repositories_self_hosted_runners_organization( &self, - owner: &str, - repo: &str, + org: &str, per_page: i64, page: i64, - ) -> ClientResult> { + ) -> ClientResult< + crate::Response< + crate::types::ActionsListSelectedRepositoriesSelfHostedRunnersOrganizationResponse, + >, + > { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -1678,9 +1650,8 @@ impl Actions { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/actions/artifacts?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/actions/permissions/self-hosted-runners/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -1696,77 +1667,73 @@ impl Actions { .await } /** - * Get an artifact. + * Set repositories allowed to use self-hosted runners in an organization. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/artifacts/{artifact_id}` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/self-hosted-runners/repositories` endpoint. * - * Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * Sets repositories that are allowed to use self-hosted runners in an organization. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `artifact_id: i64` -- artifact_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_artifact( + pub async fn set_selected_repositories_self_hosted_runners_organization( &self, - owner: &str, - repo: &str, - artifact_id: i64, - ) -> ClientResult> { + org: &str, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/artifacts/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&artifact_id.to_string()), + "/orgs/{}/actions/permissions/self-hosted-runners/repositories", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Delete an artifact. + * Add a repository to the list of repositories allowed to use self-hosted runners in an organization. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/artifacts/{artifact_id}` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id}` endpoint. * - * Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + * Adds a repository to the list of repositories that are allowed to use self-hosted runners in an organization. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `artifact_id: i64` -- artifact_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn delete_artifact( + pub async fn enable_selected_repository_self_hosted_runners_organization( &self, - owner: &str, - repo: &str, - artifact_id: i64, + org: &str, + repository_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/artifacts/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&artifact_id.to_string()), + "/orgs/{}/actions/permissions/self-hosted-runners/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { body: None, @@ -1776,43 +1743,36 @@ impl Actions { .await } /** - * Download an artifact. + * Remove a repository from the list of repositories allowed to use self-hosted runners in an organization. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id}` endpoint. * - * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in - * the response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to - * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. - * GitHub Apps must have the `actions:read` permission to use this endpoint. + * Removes a repository from the list of repositories that are allowed to use self-hosted runners in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope or the "Actions policies" fine-grained permission to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `artifact_id: i64` -- artifact_id parameter. - * * `archive_format: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn download_artifact( + pub async fn disable_selected_repository_self_hosted_runners_organization( &self, - owner: &str, - repo: &str, - artifact_id: i64, - archive_format: &str, + org: &str, + repository_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/artifacts/{}/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&artifact_id.to_string()), - crate::progenitor_support::encode_path(archive_format), + "/orgs/{}/actions/permissions/self-hosted-runners/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -1822,32 +1782,30 @@ impl Actions { .await } /** - * Get a job for a workflow run. + * Get default workflow permissions for an organization. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/jobs/{job_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/permissions/workflow` endpoint. + * + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." * - * Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `job_id: i64` -- job_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_job_for_workflow_run( + pub async fn get_github_actions_default_workflow_permissions_organization( &self, - owner: &str, - repo: &str, - job_id: i64, - ) -> ClientResult> { + org: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/jobs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&job_id.to_string()), + "/orgs/{}/actions/permissions/workflow", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1862,80 +1820,3826 @@ impl Actions { .await } /** - * Download job logs for a workflow run. + * Set default workflow permissions for an organization. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/jobs/{job_id}/logs` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/actions/permissions/workflow` endpoint. * - * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look - * for `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can - * use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must - * have the `actions:read` permission to use this endpoint. + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `job_id: i64` -- job_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn download_job_logs_for_workflow_run( + pub async fn set_github_actions_default_workflow_permissions_organization( &self, - owner: &str, - repo: &str, - job_id: i64, + org: &str, + body: &crate::types::ActionsSetDefaultWorkflowPermissions, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/jobs/{}/logs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&job_id.to_string()), + "/orgs/{}/actions/permissions/workflow", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get GitHub Actions permissions for a repository. + * List self-hosted runner groups for an organization. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions` endpoint. + * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups` endpoint. * - * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository. + * Lists all self-hosted runner groups configured in an organization and inherited from an enterprise. * - * You must authenticate using an access token with the `repo` scope to use this - * endpoint. GitHub Apps must have the `administration` repository permission to use this API. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `visible_to_repository: &str` -- Only return runner groups that are allowed to be used by this repository. */ - pub async fn get_github_actions_permissions_repository( + pub async fn list_self_hosted_runner_groups_for_org( + &self, + org: &str, + per_page: i64, + page: i64, + visible_to_repository: &str, + ) -> ClientResult> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !visible_to_repository.is_empty() { + query_args.push(( + "visible_to_repository".to_string(), + visible_to_repository.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a self-hosted runner group for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/actions/runner-groups` endpoint. + * + * Creates a new self-hosted runner group for an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_self_hosted_runner_group_for_org( + &self, + org: &str, + body: &crate::types::ActionsCreateSelfHostedRunnerGroupOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a self-hosted runner group for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}` endpoint. + * + * Gets a specific self-hosted runner group for an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + */ + pub async fn get_self_hosted_runner_group_for_org( + &self, + org: &str, + runner_group_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a self-hosted runner group from an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}` endpoint. + * + * Deletes a self-hosted runner group for an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + */ + pub async fn delete_self_hosted_runner_group_from_org( + &self, + org: &str, + runner_group_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a self-hosted runner group for an organization. + * + * This function performs a `PATCH` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}` endpoint. + * + * Updates the `name` and `visibility` of a self-hosted runner group in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + */ + pub async fn update_self_hosted_runner_group_for_org( + &self, + org: &str, + runner_group_id: i64, + body: &crate::types::ActionsUpdateSelfHostedRunnerGroupOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List GitHub-hosted runners in a group for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners` endpoint. + * + * Lists the GitHub-hosted runners in an organization group. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_github_hosted_runners_in_group_for_org( + &self, + org: &str, + runner_group_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/hosted-runners?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository access to a self-hosted runner group in an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories` endpoint. + * + * Lists the repositories with access to a self-hosted runner group configured in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_repo_access_to_self_hosted_runner_group_in_org( + &self, + org: &str, + runner_group_id: i64, + page: i64, + per_page: i64, + ) -> ClientResult< + crate::Response, + > { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set repository access for a self-hosted runner group in an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories` endpoint. + * + * Replaces the list of repositories that have access to a self-hosted runner group configured in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + */ + pub async fn set_repo_access_to_self_hosted_runner_group_in_org( + &self, + org: &str, + runner_group_id: i64, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/repositories", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add repository access to a self-hosted runner group in an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}` endpoint. + * + * Adds a repository to the list of repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `repository_id: i64` -- The unique identifier of the repository. + */ + pub async fn add_repo_access_to_self_hosted_runner_group_in_org( + &self, + org: &str, + runner_group_id: i64, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove repository access to a self-hosted runner group in an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}` endpoint. + * + * Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `repository_id: i64` -- The unique identifier of the repository. + */ + pub async fn remove_repo_access_to_self_hosted_runner_group_in_org( + &self, + org: &str, + runner_group_id: i64, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List self-hosted runners in a group for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners` endpoint. + * + * Lists self-hosted runners that are in a specific organization group. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_self_hosted_runners_in_group_for_org( + &self, + org: &str, + runner_group_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/runners?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set self-hosted runners in a group for an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners` endpoint. + * + * Replaces the list of self-hosted runners that are part of an organization runner group. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + */ + pub async fn set_self_hosted_runners_in_group_for_org( + &self, + org: &str, + runner_group_id: i64, + body: &crate::types::ActionsSetSelfHostedRunnersInGroupOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/runners", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add a self-hosted runner to a group for an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}` endpoint. + * + * Adds a self-hosted runner to a runner group configured in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn add_self_hosted_runner_to_group_for_org( + &self, + org: &str, + runner_group_id: i64, + runner_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/runners/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove a self-hosted runner from a group for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}` endpoint. + * + * Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_group_id: i64` -- Unique identifier of the self-hosted runner group. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn remove_self_hosted_runner_from_group_for_org( + &self, + org: &str, + runner_group_id: i64, + runner_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runner-groups/{}/runners/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_group_id.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List self-hosted runners for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runners` endpoint. + * + * Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `name: &str` -- The name of a self-hosted runner. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_self_hosted_runners_for_org( + &self, + name: &str, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !name.is_empty() { + query_args.push(("name".to_string(), name.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List runner applications for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runners/downloads` endpoint. + * + * Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn list_runner_applications_for_org( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/downloads", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List runner applications for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runners/downloads` endpoint. + * + * As opposed to `list_runner_applications_for_org`, this function returns all the pages of the request at once. + * + * Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + */ + pub async fn list_all_runner_applications_for_org( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/downloads", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create configuration for a just-in-time runner for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/actions/runners/generate-jitconfig` endpoint. + * + * Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn generate_runner_jitconfig_for_org( + &self, + org: &str, + body: &crate::types::ActionsGenerateRunnerJitconfigOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/generate-jitconfig", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Create a registration token for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/actions/runners/registration-token` endpoint. + * + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_registration_token_for_org( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/registration-token", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a remove token for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/actions/runners/remove-token` endpoint. + * + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_remove_token_for_org( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/remove-token", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a self-hosted runner for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runners/{runner_id}` endpoint. + * + * Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn get_self_hosted_runner_for_org( + &self, + org: &str, + runner_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a self-hosted runner from an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/runners/{runner_id}` endpoint. + * + * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn delete_self_hosted_runner_from_org( + &self, + org: &str, + runner_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List labels for a self-hosted runner for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/runners/{runner_id}/labels` endpoint. + * + * Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn list_labels_for_self_hosted_runner_for_org( + &self, + org: &str, + runner_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set custom labels for a self-hosted runner for an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/runners/{runner_id}/labels` endpoint. + * + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn set_custom_labels_for_self_hosted_runner_for_org( + &self, + org: &str, + runner_id: i64, + body: &crate::types::IssuesAddLabelsRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add custom labels to a self-hosted runner for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/actions/runners/{runner_id}/labels` endpoint. + * + * Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn add_custom_labels_to_self_hosted_runner_for_org( + &self, + org: &str, + runner_id: i64, + body: &crate::types::IssuesAddLabelsRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Remove all custom labels from a self-hosted runner for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/runners/{runner_id}/labels` endpoint. + * + * Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn remove_all_custom_labels_from_self_hosted_runner_for_org( + &self, + org: &str, + runner_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove a custom label from a self-hosted runner for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/runners/{runner_id}/labels/{name}` endpoint. + * + * Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * * `name: &str` -- The name of a self-hosted runner's custom label. + */ + pub async fn remove_custom_label_from_self_hosted_runner_for_org( + &self, + org: &str, + runner_id: i64, + name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/runners/{}/labels/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization secrets. + * + * This function performs a `GET` to the `/orgs/{org}/actions/secrets` endpoint. + * + * Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_org_secrets( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an organization public key. + * + * This function performs a `GET` to the `/orgs/{org}/actions/secrets/public-key` endpoint. + * + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_org_public_key( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/public-key", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an organization secret. + * + * This function performs a `GET` to the `/orgs/{org}/actions/secrets/{secret_name}` endpoint. + * + * Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn get_org_secret( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/secrets/{secret_name}` endpoint. + * + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_org_secret( + &self, + org: &str, + secret_name: &str, + body: &crate::types::ActionsCreateUpdateOrgSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete an organization secret. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/secrets/{secret_name}` endpoint. + * + * Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_org_secret( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List selected repositories for an organization secret. + * + * This function performs a `GET` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories` endpoint. + * + * Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_selected_repos_for_org_secret( + &self, + org: &str, + secret_name: &str, + page: i64, + per_page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set selected repositories for an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories` endpoint. + * + * Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn set_selected_repos_for_org_secret( + &self, + org: &str, + secret_name: &str, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/{}/repositories", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add selected repository to an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn add_selected_repo_to_org_secret( + &self, + org: &str, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove selected repository from an organization secret. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn remove_selected_repo_from_org_secret( + &self, + org: &str, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization variables. + * + * This function performs a `GET` to the `/orgs/{org}/actions/variables` endpoint. + * + * Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 30). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_org_variables( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create an organization variable. + * + * This function performs a `POST` to the `/orgs/{org}/actions/variables` endpoint. + * + * Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_org_variable( + &self, + org: &str, + body: &crate::types::ActionsCreateOrgVariableRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get an organization variable. + * + * This function performs a `GET` to the `/orgs/{org}/actions/variables/{name}` endpoint. + * + * Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + */ + pub async fn get_org_variable( + &self, + org: &str, + name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete an organization variable. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/variables/{name}` endpoint. + * + * Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + */ + pub async fn delete_org_variable( + &self, + org: &str, + name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update an organization variable. + * + * This function performs a `PATCH` to the `/orgs/{org}/actions/variables/{name}` endpoint. + * + * Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + */ + pub async fn update_org_variable( + &self, + org: &str, + name: &str, + body: &crate::types::ActionsUpdateOrgVariableRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List selected repositories for an organization variable. + * + * This function performs a `GET` to the `/orgs/{org}/actions/variables/{name}/repositories` endpoint. + * + * Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_selected_repos_for_org_variable( + &self, + org: &str, + name: &str, + page: i64, + per_page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set selected repositories for an organization variable. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/variables/{name}/repositories` endpoint. + * + * Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + */ + pub async fn set_selected_repos_for_org_variable( + &self, + org: &str, + name: &str, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables/{}/repositories", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add selected repository to an organization variable. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/variables/{name}/repositories/{repository_id}` endpoint. + * + * Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + * * `repository_id: i64` + */ + pub async fn add_selected_repo_to_org_variable( + &self, + org: &str, + name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove selected repository from an organization variable. + * + * This function performs a `DELETE` to the `/orgs/{org}/actions/variables/{name}/repositories/{repository_id}` endpoint. + * + * Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + * * `repository_id: i64` + */ + pub async fn remove_selected_repo_from_org_variable( + &self, + org: &str, + name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/variables/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List artifacts for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/artifacts` endpoint. + * + * Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `name: &str` -- The name field of an artifact. When specified, only artifacts with this name will be returned. + */ + pub async fn list_artifacts_for_repo( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + name: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !name.is_empty() { + query_args.push(("name".to_string(), name.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/artifacts?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an artifact. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/artifacts/{artifact_id}` endpoint. + * + * Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `artifact_id: i64` -- The unique identifier of the artifact. + */ + pub async fn get_artifact( + &self, + owner: &str, + repo: &str, + artifact_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/artifacts/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&artifact_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete an artifact. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/artifacts/{artifact_id}` endpoint. + * + * Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `artifact_id: i64` -- The unique identifier of the artifact. + */ + pub async fn delete_artifact( + &self, + owner: &str, + repo: &str, + artifact_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/artifacts/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&artifact_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Download an artifact. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}` endpoint. + * + * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `artifact_id: i64` -- The unique identifier of the artifact. + * * `archive_format: &str` + */ + pub async fn download_artifact( + &self, + owner: &str, + repo: &str, + artifact_id: i64, + archive_format: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/artifacts/{}/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&artifact_id.to_string()), + crate::progenitor_support::encode_path(&archive_format.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get GitHub Actions cache retention limit for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/cache/retention-limit` endpoint. + * + * Gets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if + * not manually removed or evicted due to size constraints. + * + * OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_actions_cache_retention_limit_for_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/cache/retention-limit", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set GitHub Actions cache retention limit for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/cache/retention-limit` endpoint. + * + * Sets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if + * not manually removed or evicted due to size constraints. + * + * OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_actions_cache_retention_limit_for_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsCacheRetentionLimitRepository, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/cache/retention-limit", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get GitHub Actions cache storage limit for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/cache/storage-limit` endpoint. + * + * Gets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be + * stored before eviction occurs. + * + * OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_actions_cache_storage_limit_for_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/cache/storage-limit", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set GitHub Actions cache storage limit for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/cache/storage-limit` endpoint. + * + * Sets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be + * stored before eviction occurs. + * + * OAuth tokens and personal access tokens (classic) need the `admin:repository` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_actions_cache_storage_limit_for_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsCacheStorageLimitRepository, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/cache/storage-limit", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get GitHub Actions cache usage for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/cache/usage` endpoint. + * + * Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_actions_cache_usage( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/cache/usage", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List GitHub Actions caches for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/caches` endpoint. + * + * Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `ref_: &str` -- The full Git reference for narrowing down the cache. The `ref` for a branch should be formatted as `refs/heads/`. To reference a pull request use `refs/pull//merge`. + * * `key: &str` -- An explicit key or prefix for identifying the cache. + * * `sort: crate::types::ActionsCacheListSort` -- The property to sort the results by. `created_at` means when the cache was created. `last_accessed_at` means when the cache was last accessed. `size_in_bytes` is the size of the cache in bytes. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + pub async fn get_actions_cache_list( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ref_: &str, + key: &str, + sort: crate::types::ActionsCacheListSort, + direction: crate::types::Order, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !key.is_empty() { + query_args.push(("key".to_string(), key.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/caches?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete GitHub Actions caches for a repository (using a cache key). + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/caches` endpoint. + * + * Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `key: &str` -- A key for identifying the cache. + * * `ref_: &str` -- The full Git reference for narrowing down the cache. The `ref` for a branch should be formatted as `refs/heads/`. To reference a pull request use `refs/pull//merge`. + */ + pub async fn delete_actions_cache_by_key( + &self, + owner: &str, + repo: &str, + key: &str, + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !key.is_empty() { + query_args.push(("key".to_string(), key.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/caches?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a GitHub Actions cache for a repository (using a cache ID). + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/caches/{cache_id}` endpoint. + * + * Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `cache_id: i64` -- The unique identifier of the GitHub Actions cache. + */ + pub async fn delete_actions_cache_by_id( + &self, + owner: &str, + repo: &str, + cache_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/caches/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&cache_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a job for a workflow run. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/jobs/{job_id}` endpoint. + * + * Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `job_id: i64` -- The unique identifier of the job. + */ + pub async fn get_job_for_workflow_run( + &self, + owner: &str, + repo: &str, + job_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/jobs/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&job_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Download job logs for a workflow run. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/jobs/{job_id}/logs` endpoint. + * + * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `job_id: i64` -- The unique identifier of the job. + */ + pub async fn download_job_logs_for_workflow_run( + &self, + owner: &str, + repo: &str, + job_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/jobs/{}/logs", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&job_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Re-run a job from a workflow run. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun` endpoint. + * + * Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `job_id: i64` -- The unique identifier of the job. + */ + pub async fn re_run_job_for_workflow_run( + &self, + owner: &str, + repo: &str, + job_id: i64, + body: &crate::types::ActionsReRunWorkflowRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/jobs/{}/rerun", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&job_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get the customization template for an OIDC subject claim for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/oidc/customization/sub` endpoint. + * + * Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_custom_oidc_sub_claim_for_repo( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/oidc/customization/sub", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set the customization template for an OIDC subject claim for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/oidc/customization/sub` endpoint. + * + * Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_custom_oidc_sub_claim_for_repo( + &self, + owner: &str, + repo: &str, + body: &crate::types::OidcCustomSubRepo, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/oidc/customization/sub", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List repository organization secrets. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/organization-secrets` endpoint. + * + * Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_repo_organization_secrets( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/organization-secrets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository organization variables. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/organization-variables` endpoint. + * + * Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 30). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_repo_organization_variables( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/organization-variables?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get GitHub Actions permissions for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions` endpoint. + * + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_github_actions_permissions_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set GitHub Actions permissions for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions` endpoint. + * + * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_github_actions_permissions_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsSetGithubPermissionsRepositoryRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get the level of access for workflows outside of the repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions/access` endpoint. + * + * Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_workflow_access_to_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/access", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set the level of access for workflows outside of the repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions/access` endpoint. + * + * Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_workflow_access_to_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsWorkflowAccessRepository, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/access", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get artifact and log retention settings for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention` endpoint. + * + * Gets artifact and log retention settings for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_artifact_and_log_retention_settings_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/artifact-and-log-retention", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set artifact and log retention settings for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention` endpoint. + * + * Sets artifact and log retention settings for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_artifact_and_log_retention_settings_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsArtifactLogRetention, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/artifact-and-log-retention", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get fork PR contributor approval permissions for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval` endpoint. + * + * Gets the fork PR contributor approval policy for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_fork_pr_contributor_approval_permissions_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/fork-pr-contributor-approval", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set fork PR contributor approval permissions for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval` endpoint. + * + * Sets the fork PR contributor approval policy for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_fork_pr_contributor_approval_permissions_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsForkPrContributorApproval, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/fork-pr-contributor-approval", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get private repo fork PR workflow settings for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos` endpoint. + * + * Gets the settings for whether workflows from fork pull requests can run on a private repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_private_repo_fork_pr_workflows_settings_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/fork-pr-workflows-private-repos", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set private repo fork PR workflow settings for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos` endpoint. + * + * Sets the settings for whether workflows from fork pull requests can run on a private repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_private_repo_fork_pr_workflows_settings_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsForkPrWorkflowsPrivateReposRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/fork-pr-workflows-private-repos", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get allowed actions and reusable workflows for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions/selected-actions` endpoint. + * + * Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_allowed_actions_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/selected-actions", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set allowed actions and reusable workflows for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions/selected-actions` endpoint. + * + * Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_allowed_actions_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::SelectedActions, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/selected-actions", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get default workflow permissions for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions/workflow` endpoint. + * + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_github_actions_default_workflow_permissions_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/workflow", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set default workflow permissions for a repository. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions/workflow` endpoint. + * + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn set_github_actions_default_workflow_permissions_repository( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsSetDefaultWorkflowPermissions, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/permissions/workflow", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List self-hosted runners for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners` endpoint. + * + * Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `name: &str` -- The name of a self-hosted runner. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_self_hosted_runners_for_repo( + &self, + name: &str, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !name.is_empty() { + query_args.push(("name".to_string(), name.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/runners?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List runner applications for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners/downloads` endpoint. + * + * Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn list_runner_applications_for_repo( + &self, + owner: &str, + repo: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/runners/downloads", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List runner applications for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners/downloads` endpoint. + * + * As opposed to `list_runner_applications_for_repo`, this function returns all the pages of the request at once. + * + * Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_runner_applications_for_repo( + &self, + owner: &str, + repo: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/runners/downloads", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create configuration for a just-in-time runner for a repository. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runners/generate-jitconfig` endpoint. + * + * Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn generate_runner_jitconfig_for_repo( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsGenerateRunnerJitconfigOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/runners/generate-jitconfig", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Create a registration token for a repository. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runners/registration-token` endpoint. + * + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_registration_token_for_repo( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/runners/registration-token", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a remove token for a repository. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runners/remove-token` endpoint. + * + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_remove_token_for_repo( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/runners/remove-token", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a self-hosted runner for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}` endpoint. + * + * Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn get_self_hosted_runner_for_repo( + &self, + owner: &str, + repo: &str, + runner_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/runners/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a self-hosted runner from a repository. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}` endpoint. + * + * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + */ + pub async fn delete_self_hosted_runner_from_repo( &self, owner: &str, repo: &str, - ) -> ClientResult> { + runner_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/permissions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runners/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -1945,122 +5649,132 @@ impl Actions { .await } /** - * Set GitHub Actions permissions for a repository. + * List labels for a self-hosted runner for a repository. * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}/labels` endpoint. * - * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions in the repository. + * Lists all labels for a self-hosted runner configured in a repository. * - * If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions, then you cannot override them for the repository. + * Authenticated users must have admin access to the repository to use this endpoint. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. */ - pub async fn set_github_actions_permissions_repository( + pub async fn list_labels_for_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, - body: &crate::types::ActionsSetGithubPermissionsRepositoryRequest, - ) -> ClientResult> { + runner_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/permissions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get allowed actions for a repository. + * Set custom labels for a self-hosted runner for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/permissions/selected-actions` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}/labels` endpoint. * - * Gets the settings for selected actions that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + * Authenticated users must have admin access to the repository to use this endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. */ - pub async fn get_allowed_actions_repository( + pub async fn set_custom_labels_for_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, - ) -> ClientResult> { + runner_id: i64, + body: &crate::types::IssuesAddLabelsRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/permissions/selected-actions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Set allowed actions for a repository. - * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/permissions/selected-actions` endpoint. + * Add custom labels to a self-hosted runner for a repository. * - * Sets the actions that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}/labels` endpoint. * - * If the repository belongs to an organization or enterprise that has `selected` actions set at the organization or enterprise levels, then you cannot override any of the allowed actions settings. + * Adds custom labels to a self-hosted runner configured in a repository. * - * To use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories. + * Authenticated users must have admin access to the organization to use this endpoint. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. */ - pub async fn set_allowed_actions_repository( + pub async fn add_custom_labels_to_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, - body: &crate::types::SelectedActions, - ) -> ClientResult> { + runner_id: i64, + body: &crate::types::IssuesAddLabelsRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/permissions/selected-actions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), ), None, ); self.client - .put( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -2070,47 +5784,42 @@ impl Actions { .await } /** - * List self-hosted runners for a repository. + * Remove all custom labels from a self-hosted runner for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}/labels` endpoint. * - * Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint. + * Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. * - * FROM: + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. */ - pub async fn list_self_hosted_runners_for_repo( + pub async fn remove_all_custom_labels_from_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, - per_page: i64, - page: i64, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + runner_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runners?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/actions/runners/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -2120,36 +5829,48 @@ impl Actions { .await } /** - * List runner applications for a repository. + * Remove a custom label from a self-hosted runner for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners/downloads` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}` endpoint. * - * Lists binaries for the runner application that you can download and run. + * Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. * - * FROM: + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * * `name: &str` -- The name of a self-hosted runner's custom label. */ - pub async fn list_runner_applications_for_repo( + pub async fn remove_custom_label_from_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + runner_id: i64, + name: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runners/downloads", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runners/{}/labels/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&runner_id.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -2159,33 +5880,96 @@ impl Actions { .await } /** - * List runner applications for a repository. + * List workflow runs for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners/downloads` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs` endpoint. * - * As opposed to `list_runner_applications_for_repo`, this function returns all the pages of the request at once. + * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). * - * Lists binaries for the runner application that you can download and run. + * Anyone with read access to the repository can use this endpoint. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * This endpoint will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `actor: &str` -- Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. + * * `branch: &str` -- Returns workflow runs associated with a branch. Use the name of the branch of the `push`. + * * `event: &str` -- Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows).". + * * `status: crate::types::WorkflowRunStatus` -- Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `created: chrono::DateTime` -- Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).". + * * `exclude_pull_requests: bool` -- If `true` pull requests are omitted from the response (empty array). + * * `check_suite_id: i64` -- Returns workflow runs with the `check_suite_id` that you specify. + * * `head_sha: &str` -- Only returns workflow runs that are associated with the specified `head_sha`. */ - pub async fn list_all_runner_applications_for_repo( + pub async fn list_workflow_runs_for_repo( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + actor: &str, + branch: &str, + event: &str, + status: crate::types::WorkflowRunStatus, + per_page: i64, + page: i64, + created: Option>, + exclude_pull_requests: bool, + check_suite_id: i64, + head_sha: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !actor.is_empty() { + query_args.push(("actor".to_string(), actor.to_string())); + } + if !branch.is_empty() { + query_args.push(("branch".to_string(), branch.to_string())); + } + if check_suite_id > 0 { + query_args.push(("check_suite_id".to_string(), check_suite_id.to_string())); + } + if let Some(date) = created { + query_args.push(("created".to_string(), date.to_rfc3339())); + } + if !event.is_empty() { + query_args.push(("event".to_string(), event.to_string())); + } + if exclude_pull_requests { + query_args.push(( + "exclude_pull_requests".to_string(), + exclude_pull_requests.to_string(), + )); + } + if !head_sha.is_empty() { + query_args.push(("head_sha".to_string(), head_sha.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !status.to_string().is_empty() { + query_args.push(("status".to_string(), status.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/actions/runners/downloads", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -2195,43 +5979,52 @@ impl Actions { .await } /** - * Create a registration token for a repository. + * Get a workflow run. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runners/registration-token` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}` endpoint. * - * Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate - * using an access token with the `repo` scope to use this endpoint. + * Gets a specific workflow run. * - * #### Example using registration token - * - * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * Anyone with read access to the repository can use this endpoint. * - * ``` - * ./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN - * ``` + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. + * * `exclude_pull_requests: bool` -- If `true` pull requests are omitted from the response (empty array). */ - pub async fn create_registration_token_for_repo( + pub async fn get_workflow_run( &self, owner: &str, repo: &str, - ) -> ClientResult> { + run_id: i64, + exclude_pull_requests: bool, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if exclude_pull_requests { + query_args.push(( + "exclude_pull_requests".to_string(), + exclude_pull_requests.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/actions/runners/registration-token", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&run_id.to_string()), + query_ ), None, ); self.client - .post( + .get( &url, crate::Message { body: None, @@ -2241,43 +6034,41 @@ impl Actions { .await } /** - * Create a remove token for a repository. + * Delete a workflow run. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runners/remove-token` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/runs/{run_id}` endpoint. * - * Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. - * You must authenticate using an access token with the `repo` scope to use this endpoint. + * Deletes a specific workflow run. * - * #### Example using remove token - * - * To remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint. + * Anyone with write access to the repository can use this endpoint. * - * ``` - * ./config.sh remove --token TOKEN - * ``` + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ - pub async fn create_remove_token_for_repo( + pub async fn delete_workflow_run( &self, owner: &str, repo: &str, - ) -> ClientResult> { + run_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runners/remove-token", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&run_id.to_string()), ), None, ); self.client - .post( + .delete( &url, crate::Message { body: None, @@ -2287,35 +6078,34 @@ impl Actions { .await } /** - * Get a self-hosted runner for a repository. + * Get the review history for a workflow run. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/approvals` endpoint. * - * Gets a specific self-hosted runner configured in a repository. + * Anyone with read access to the repository can use this endpoint. * - * You must authenticate using an access token with the `repo` scope to use this - * endpoint. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ - pub async fn get_self_hosted_runner_for_repo( + pub async fn get_reviews_for_run( &self, owner: &str, repo: &str, - runner_id: i64, - ) -> ClientResult> { + run_id: i64, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runners/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&runner_id.to_string()), + "/repos/{}/{}/actions/runs/{}/approvals", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&run_id.to_string()), ), None, ); @@ -2330,40 +6120,35 @@ impl Actions { .await } /** - * Delete a self-hosted runner from a repository. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/runners/{runner_id}` endpoint. + * Get the review history for a workflow run. * - * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/approvals` endpoint. * - * You must authenticate using an access token with the `repo` - * scope to use this endpoint. + * As opposed to `get_reviews_for_run`, this function returns all the pages of the request at once. * - * FROM: + * Anyone with read access to the repository can use this endpoint. * - * **Parameters:** + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * * `owner: &str` - * * `repo: &str` - * * `runner_id: i64` -- Unique identifier of the self-hosted runner. + * FROM: */ - pub async fn delete_self_hosted_runner_from_repo( + pub async fn get_all_reviews_for_run( &self, owner: &str, repo: &str, - runner_id: i64, - ) -> ClientResult> { + run_id: i64, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runners/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&runner_id.to_string()), + "/repos/{}/{}/actions/runs/{}/approvals", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&run_id.to_string()), ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -2373,74 +6158,39 @@ impl Actions { .await } /** - * List workflow runs for a repository. + * Approve a workflow run for a fork pull request. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/approve` endpoint. * - * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." * - * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `actor: &str` -- Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. - * * `branch: &str` -- Returns workflow runs associated with a branch. Use the name of the branch of the `push`. - * * `event: &str` -- Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows).". - * * `status: crate::types::WorkflowRunStatus` -- Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. For a list of the possible `status` and `conclusion` options, see "[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run).". - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - * * `created: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ - pub async fn list_workflow_runs_for_repo( + pub async fn approve_workflow_run( &self, owner: &str, repo: &str, - actor: &str, - branch: &str, - event: &str, - status: crate::types::WorkflowRunStatus, - per_page: i64, - page: i64, - created: &str, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !actor.is_empty() { - query_args.push(("actor".to_string(), actor.to_string())); - } - if !branch.is_empty() { - query_args.push(("branch".to_string(), branch.to_string())); - } - if !created.is_empty() { - query_args.push(("created".to_string(), created.to_string())); - } - if !event.is_empty() { - query_args.push(("event".to_string(), event.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - if !status.to_string().is_empty() { - query_args.push(("status".to_string(), status.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + run_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/actions/runs/{}/approve", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&run_id.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { body: None, @@ -2450,32 +6200,54 @@ impl Actions { .await } /** - * Get a workflow run. + * List workflow run artifacts. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts` endpoint. + * + * Lists artifacts for a workflow run. * - * Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * Anyone with read access to the repository can use this endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `name: &str` -- The name field of an artifact. When specified, only artifacts with this name will be returned. */ - pub async fn get_workflow_run( + pub async fn list_workflow_run_artifacts( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult> { + per_page: i64, + page: i64, + name: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !name.is_empty() { + query_args.push(("name".to_string(), name.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}/artifacts?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), + query_ ), None, ); @@ -2490,39 +6262,55 @@ impl Actions { .await } /** - * Delete a workflow run. + * Get a workflow run attempt. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/runs/{run_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}` endpoint. + * + * Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. * - * Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is - * private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use - * this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. + * * `attempt_number: i64` -- The attempt number of the workflow run. + * * `exclude_pull_requests: bool` -- If `true` pull requests are omitted from the response (empty array). */ - pub async fn delete_workflow_run( + pub async fn get_workflow_run_attempt( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult> { + attempt_number: i64, + exclude_pull_requests: bool, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if exclude_pull_requests { + query_args.push(( + "exclude_pull_requests".to_string(), + exclude_pull_requests.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}/attempts/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), + crate::progenitor_support::encode_path(&attempt_number.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -2532,32 +6320,53 @@ impl Actions { .await } /** - * Get the review history for a workflow run. + * List jobs for a workflow run attempt. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/approvals` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs` endpoint. + * + * Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). * - * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * Anyone with read access to the repository can use this endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. + * * `attempt_number: i64` -- The attempt number of the workflow run. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_reviews_for_run( + pub async fn list_jobs_for_workflow_run_attempt( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult>> { + attempt_number: i64, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs/{}/approvals", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}/attempts/{}/jobs?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), + crate::progenitor_support::encode_path(&attempt_number.to_string()), + query_ ), None, ); @@ -2572,33 +6381,45 @@ impl Actions { .await } /** - * Get the review history for a workflow run. + * Download workflow run attempt logs. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/approvals` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs` endpoint. * - * As opposed to `get_reviews_for_run`, this function returns all the pages of the request at once. + * Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. * - * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. + * * `attempt_number: i64` -- The attempt number of the workflow run. */ - pub async fn get_all_reviews_for_run( + pub async fn download_workflow_run_attempt_logs( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult>> { + attempt_number: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs/{}/approvals", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}/attempts/{}/logs", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), + crate::progenitor_support::encode_path(&attempt_number.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -2608,33 +6429,33 @@ impl Actions { .await } /** - * Approve a workflow run for a fork pull request. + * Cancel a workflow run. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/approve` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/cancel` endpoint. * - * Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * Cancels a workflow run using its `id`. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ - pub async fn approve_workflow_run( + pub async fn cancel_workflow_run( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs/{}/approve", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}/cancel", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -2650,84 +6471,80 @@ impl Actions { .await } /** - * List workflow run artifacts. + * Review custom deployment protection rules for a workflow run. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule` endpoint. + * + * Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." * - * Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * > [!NOTE] + * > GitHub Apps can only review their own custom deployment protection rules. To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ - pub async fn list_workflow_run_artifacts( + pub async fn review_custom_gates_for_run( &self, owner: &str, repo: &str, run_id: i64, - per_page: i64, - page: i64, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + body: &crate::types::ActionsReviewCustomGatesRunRequestAnyOf, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs/{}/artifacts?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}/deployment_protection_rule", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), - query_ ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Cancel a workflow run. + * Force cancel a workflow run. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/cancel` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel` endpoint. * - * Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + * Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). * - * FROM: + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ - pub async fn cancel_workflow_run( + pub async fn force_cancel_workflow_run( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/runs/{}/cancel", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/actions/runs/{}/force-cancel", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -2747,20 +6564,23 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/jobs` endpoint. * - * Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. - * * `filter: crate::types::ActionsListJobsWorkflowRunFilter` -- Filters jobs by their `completed_at` timestamp. Can be one of: - * \\* `latest`: Returns jobs from the most recent execution of the workflow run. - * \\* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. + * * `filter: crate::types::ActionsListJobsWorkflowRunFilter` -- Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_jobs_for_workflow_run( &self, @@ -2785,8 +6605,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/jobs?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), query_ ), @@ -2808,17 +6628,19 @@ impl Actions { * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/logs` endpoint. * * Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for - * `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use - * this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have - * the `actions:read` permission to use this endpoint. + * `Location:` in the response header to find the URL for the download. * - * FROM: + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ pub async fn download_workflow_run_logs( &self, @@ -2829,8 +6651,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/logs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -2850,15 +6672,17 @@ impl Actions { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/logs` endpoint. * - * Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + * Deletes all logs for a workflow run. * - * FROM: + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ pub async fn delete_workflow_run_logs( &self, @@ -2869,8 +6693,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/logs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -2892,15 +6716,17 @@ impl Actions { * * Get all deployment environments for a workflow run that are waiting for protection rules to pass. * - * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ pub async fn get_pending_deployments_for_run( &self, @@ -2911,8 +6737,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/pending_deployments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -2936,9 +6762,11 @@ impl Actions { * * Get all deployment environments for a workflow run that are waiting for protection rules to pass. * - * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * Anyone with read access to the repository can use this endpoint. * - * FROM: + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: */ pub async fn get_all_pending_deployments_for_run( &self, @@ -2949,8 +6777,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/pending_deployments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -2972,15 +6800,17 @@ impl Actions { * * Approve or reject pending deployments that are waiting on approval by a required reviewer. * - * Anyone with read access to the repository contents and deployments can use this endpoint. + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ pub async fn review_pending_deployments_for_run( &self, @@ -2992,8 +6822,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/pending_deployments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -3013,27 +6843,30 @@ impl Actions { * * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/rerun` endpoint. * - * Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + * Re-runs your workflow run using its `id`. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ pub async fn re_run_workflow( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult> { + body: &crate::types::ActionsReRunWorkflowRequest, + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/rerun", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -3042,8 +6875,8 @@ impl Actions { .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await @@ -3053,27 +6886,30 @@ impl Actions { * * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs` endpoint. * - * Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. + * Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ pub async fn re_run_workflow_failed_jobs( &self, owner: &str, repo: &str, run_id: i64, - ) -> ClientResult> { + body: &crate::types::ActionsReRunWorkflowRequest, + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/rerun-failed-jobs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -3082,8 +6918,8 @@ impl Actions { .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await @@ -3093,17 +6929,22 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/runs/{run_id}/timing` endpoint. * - * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * > [!WARNING] + * > This endpoint is in the process of closing down. Refer to "[Actions Get workflow usage and Get workflow run usage endpoints closing down](https://github.blog/changelog/2025-02-02-actions-get-workflow-usage-and-get-workflow-run-usage-endpoints-closing-down/)" for more information. + * + * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. * - * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `run_id: i64` -- The id of the workflow run. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `run_id: i64` -- The unique identifier of the workflow run. */ pub async fn get_workflow_run_usage( &self, @@ -3114,8 +6955,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/runs/{}/timing", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&run_id.to_string()), ), None, @@ -3135,16 +6976,21 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/secrets` endpoint. * - * Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * Lists all secrets available in a repository without revealing their encrypted + * values. * - * FROM: + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repo_secrets( &self, @@ -3164,8 +7010,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/secrets?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -3185,14 +7031,19 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/secrets/public-key` endpoint. * - * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_repo_public_key( &self, @@ -3202,8 +7053,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/secrets/public-key", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -3222,15 +7073,19 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/secrets/{secret_name}` endpoint. * - * Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * Gets a single repository secret without revealing its encrypted value. * - * FROM: + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `secret_name: &str` -- secret_name parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. */ pub async fn get_repo_secret( &self, @@ -3241,9 +7096,9 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/secrets/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(secret_name), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), ), None, ); @@ -3263,151 +7118,315 @@ impl Actions { * This function performs a `PUT` to the `/repos/{owner}/{repo}/actions/secrets/{secret_name}` endpoint. * * Creates or updates a repository secret with an encrypted value. Encrypt your secret using - * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access - * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use - * this endpoint. + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." * - * #### Example encrypting a secret using Node.js + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. * - * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * ``` - * const sodium = require('tweetsodium'); + * FROM: * - * const key = "base64-encoded-public-key"; - * const value = "plain-text-secret"; + * **Parameters:** * - * // Convert the message and key to Uint8Array's (Buffer implements that interface) - * const messageBytes = Buffer.from(value); - * const keyBytes = Buffer.from(key, 'base64'); + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + body: &crate::types::ActionsCreateUpdateRepoSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete a repository secret. * - * // Encrypt using LibSodium. - * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/secrets/{secret_name}` endpoint. * - * // Base64 the encrypted secret - * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * Deletes a secret in a repository using the secret name. * - * console.log(encrypted); - * ``` + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * #### Example encrypting a secret using Python + * FROM: * - * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * **Parameters:** * - * ``` - * from base64 import b64encode - * from nacl import encoding, public - * - * def encrypt(public_key: str, secret_value: str) -> str: - * """Encrypt a Unicode string using the public key.""" - * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) - * sealed_box = public.SealedBox(public_key) - * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) - * return b64encode(encrypted).decode("utf-8") - * ``` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository variables. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/variables` endpoint. + * + * Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 30). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_repo_variables( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/variables?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a repository variable. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/actions/variables` endpoint. + * + * Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_repo_variable( + &self, + owner: &str, + repo: &str, + body: &crate::types::ActionsCreateRepoVariableRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/variables", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a repository variable. * - * #### Example encrypting a secret using C# + * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/variables/{name}` endpoint. * - * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * Gets a specific variable in a repository. * - * ``` - * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); - * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * The authenticated user must have collaborator access to the repository to use this endpoint. * - * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); - * ``` + * FROM: * - * #### Example encrypting a secret using Ruby + * **Parameters:** * - * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + */ + pub async fn get_repo_variable( + &self, + owner: &str, + repo: &str, + name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/actions/variables/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a repository variable. * - * ```ruby - * require "rbnacl" - * require "base64" + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/variables/{name}` endpoint. * - * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") - * public_key = RbNaCl::PublicKey.new(key) + * Deletes a repository variable using the variable name. * - * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) - * encrypted_secret = box.encrypt("my_secret") + * Authenticated users must have collaborator access to a repository to create, update, or read variables. * - * # Print the base64 encoded secret - * puts Base64.strict_encode64(encrypted_secret) - * ``` + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `secret_name: &str` -- secret_name parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `name: &str` -- The name of the variable. */ - pub async fn create_or_update_repo_secret( + pub async fn delete_repo_variable( &self, owner: &str, repo: &str, - secret_name: &str, - body: &crate::types::ActionsCreateUpdateRepoSecretRequest, + name: &str, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/secrets/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(secret_name), + "/repos/{}/{}/actions/variables/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); self.client - .put( + .delete( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Delete a repository secret. + * Update a repository variable. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/actions/secrets/{secret_name}` endpoint. + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/actions/variables/{name}` endpoint. + * + * Updates a repository variable that you can reference in a GitHub Actions workflow. * - * Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * Authenticated users must have collaborator access to a repository to create, update, or read variables. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `secret_name: &str` -- secret_name parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `name: &str` -- The name of the variable. */ - pub async fn delete_repo_secret( + pub async fn update_repo_variable( &self, owner: &str, repo: &str, - secret_name: &str, + name: &str, + body: &crate::types::ActionsUpdateRepoVariableRequest, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/actions/secrets/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(secret_name), + "/repos/{}/{}/actions/variables/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); self.client - .delete( + .patch( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await @@ -3417,16 +7436,20 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/workflows` endpoint. * - * Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * Lists the workflows in a repository. * - * FROM: + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repo_workflows( &self, @@ -3446,8 +7469,8 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/workflows?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -3467,14 +7490,19 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/workflows/{workflow_id}` endpoint. * - * Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `workflow_id: &str` -- The ID of the workflow. You can also pass the workflow file name as a string. */ pub async fn get_workflow( @@ -3486,9 +7514,9 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/workflows/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(workflow_id), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&workflow_id.to_string()), ), None, ); @@ -3509,14 +7537,14 @@ impl Actions { * * Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `workflow_id: &str` -- The ID of the workflow. You can also pass the workflow file name as a string. */ pub async fn disable_workflow( @@ -3528,9 +7556,9 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/workflows/{}/disable", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(workflow_id), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&workflow_id.to_string()), ), None, ); @@ -3553,14 +7581,14 @@ impl Actions { * * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." * - * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)." + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `workflow_id: &str` -- The ID of the workflow. You can also pass the workflow file name as a string. */ pub async fn create_workflow_dispatch( @@ -3573,9 +7601,9 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/workflows/{}/dispatches", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(workflow_id), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&workflow_id.to_string()), ), None, ); @@ -3596,14 +7624,14 @@ impl Actions { * * Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. * - * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `workflow_id: &str` -- The ID of the workflow. You can also pass the workflow file name as a string. */ pub async fn enable_workflow( @@ -3615,9 +7643,9 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/workflows/{}/enable", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(workflow_id), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&workflow_id.to_string()), ), None, ); @@ -3632,28 +7660,35 @@ impl Actions { .await } /** - * List workflow runs. + * List workflow runs for a workflow. * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs` endpoint. * - * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). * - * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * Anyone with read access to the repository can use this endpoint * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * This endpoint will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `workflow_id: &str` -- The ID of the workflow. You can also pass the workflow file name as a string. * * `actor: &str` -- Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. * * `branch: &str` -- Returns workflow runs associated with a branch. Use the name of the branch of the `push`. - * * `event: &str` -- Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows).". - * * `status: crate::types::WorkflowRunStatus` -- Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. For a list of the possible `status` and `conclusion` options, see "[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run).". - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - * * `created: &str` + * * `event: &str` -- Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows).". + * * `status: crate::types::WorkflowRunStatus` -- Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `created: chrono::DateTime` -- Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).". + * * `exclude_pull_requests: bool` -- If `true` pull requests are omitted from the response (empty array). + * * `check_suite_id: i64` -- Returns workflow runs with the `check_suite_id` that you specify. + * * `head_sha: &str` -- Only returns workflow runs that are associated with the specified `head_sha`. */ pub async fn list_workflow_runs( &self, @@ -3666,7 +7701,10 @@ impl Actions { status: crate::types::WorkflowRunStatus, per_page: i64, page: i64, - created: &str, + created: Option>, + exclude_pull_requests: bool, + check_suite_id: i64, + head_sha: &str, ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); if !actor.is_empty() { @@ -3675,12 +7713,24 @@ impl Actions { if !branch.is_empty() { query_args.push(("branch".to_string(), branch.to_string())); } - if !created.is_empty() { - query_args.push(("created".to_string(), created.to_string())); + if check_suite_id > 0 { + query_args.push(("check_suite_id".to_string(), check_suite_id.to_string())); + } + if let Some(date) = created { + query_args.push(("created".to_string(), date.to_rfc3339())); } if !event.is_empty() { query_args.push(("event".to_string(), event.to_string())); } + if exclude_pull_requests { + query_args.push(( + "exclude_pull_requests".to_string(), + exclude_pull_requests.to_string(), + )); + } + if !head_sha.is_empty() { + query_args.push(("head_sha".to_string(), head_sha.to_string())); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } @@ -3694,9 +7744,9 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/workflows/{}/runs?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(workflow_id), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&workflow_id.to_string()), query_ ), None, @@ -3716,16 +7766,23 @@ impl Actions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing` endpoint. * - * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * > [!WARNING] + * > This endpoint is in the process of closing down. Refer to "[Actions Get workflow usage and Get workflow run usage endpoints closing down](https://github.blog/changelog/2025-02-02-actions-get-workflow-usage-and-get-workflow-run-usage-endpoints-closing-down/)" for more information. + * + * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. * - * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `workflow_id: &str` -- The ID of the workflow. You can also pass the workflow file name as a string. */ pub async fn get_workflow_usage( @@ -3737,9 +7794,9 @@ impl Actions { let url = self.client.url( &format!( "/repos/{}/{}/actions/workflows/{}/timing", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(workflow_id), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&workflow_id.to_string()), ), None, ); @@ -3756,22 +7813,29 @@ impl Actions { /** * List environment secrets. * - * This function performs a `GET` to the `/repositories/{repository_id}/environments/{environment_name}/secrets` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/secrets` endpoint. * - * Lists all secrets available in an environment without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * Lists all secrets available in an environment without revealing their + * encrypted values. * - * FROM: + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `repository_id: i64` - * * `environment_name: &str` -- The name of the environment. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_environment_secrets( &self, - repository_id: i64, + owner: &str, + repo: &str, environment_name: &str, per_page: i64, page: i64, @@ -3786,9 +7850,10 @@ impl Actions { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repositories/{}/environments/{}/secrets?{}", - crate::progenitor_support::encode_path(&repository_id.to_string()), - crate::progenitor_support::encode_path(environment_name), + "/repos/{}/{}/environments/{}/secrets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), query_ ), None, @@ -3806,27 +7871,35 @@ impl Actions { /** * Get an environment public key. * - * This function performs a `GET` to the `/repositories/{repository_id}/environments/{environment_name}/secrets/public-key` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key` endpoint. + * + * Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. * - * Get the public key for an environment, which you need to encrypt environment secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * Anyone with read access to the repository can use this endpoint. * - * FROM: + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `repository_id: i64` - * * `environment_name: &str` -- The name of the environment. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. */ pub async fn get_environment_public_key( &self, - repository_id: i64, + owner: &str, + repo: &str, environment_name: &str, ) -> ClientResult> { let url = self.client.url( &format!( - "/repositories/{}/environments/{}/secrets/public-key", - crate::progenitor_support::encode_path(&repository_id.to_string()), - crate::progenitor_support::encode_path(environment_name), + "/repos/{}/{}/environments/{}/secrets/public-key", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), ), None, ); @@ -3843,30 +7916,37 @@ impl Actions { /** * Get an environment secret. * - * This function performs a `GET` to the `/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}` endpoint. + * + * Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. * - * Gets a single environment secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `repository_id: i64` - * * `environment_name: &str` -- The name of the environment. - * * `secret_name: &str` -- secret_name parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `secret_name: &str` -- The name of the secret. */ pub async fn get_environment_secret( &self, - repository_id: i64, + owner: &str, + repo: &str, environment_name: &str, secret_name: &str, ) -> ClientResult> { let url = self.client.url( &format!( - "/repositories/{}/environments/{}/secrets/{}", - crate::progenitor_support::encode_path(&repository_id.to_string()), - crate::progenitor_support::encode_path(environment_name), - crate::progenitor_support::encode_path(secret_name), + "/repos/{}/{}/environments/{}/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), ), None, ); @@ -3883,110 +7963,193 @@ impl Actions { /** * Create or update an environment secret. * - * This function performs a `PUT` to the `/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}` endpoint. * * Creates or updates an environment secret with an encrypted value. Encrypt your secret using - * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access - * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use - * this endpoint. + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." * - * #### Example encrypting a secret using Node.js + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. * - * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * ``` - * const sodium = require('tweetsodium'); + * FROM: * - * const key = "base64-encoded-public-key"; - * const value = "plain-text-secret"; + * **Parameters:** * - * // Convert the message and key to Uint8Array's (Buffer implements that interface) - * const messageBytes = Buffer.from(value); - * const keyBytes = Buffer.from(key, 'base64'); + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_environment_secret( + &self, + owner: &str, + repo: &str, + environment_name: &str, + secret_name: &str, + body: &crate::types::ActionsCreateUpdateRepoSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete an environment secret. * - * // Encrypt using LibSodium. - * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}` endpoint. * - * // Base64 the encrypted secret - * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * Deletes a secret in an environment using the secret name. * - * console.log(encrypted); - * ``` + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * #### Example encrypting a secret using Python + * FROM: * - * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * **Parameters:** * - * ``` - * from base64 import b64encode - * from nacl import encoding, public - * - * def encrypt(public_key: str, secret_value: str) -> str: - * """Encrypt a Unicode string using the public key.""" - * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) - * sealed_box = public.SealedBox(public_key) - * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) - * return b64encode(encrypted).decode("utf-8") - * ``` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_environment_secret( + &self, + owner: &str, + repo: &str, + environment_name: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List environment variables. * - * #### Example encrypting a secret using C# + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/variables` endpoint. * - * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * Lists all environment variables. * - * ``` - * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); - * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * Authenticated users must have collaborator access to a repository to create, update, or read variables. * - * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); - * ``` + * FROM: * - * #### Example encrypting a secret using Ruby + * **Parameters:** * - * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `per_page: i64` -- The number of results per page (max 30). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_environment_variables( + &self, + owner: &str, + repo: &str, + environment_name: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/variables?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create an environment variable. * - * ```ruby - * require "rbnacl" - * require "base64" + * This function performs a `POST` to the `/repos/{owner}/{repo}/environments/{environment_name}/variables` endpoint. * - * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") - * public_key = RbNaCl::PublicKey.new(key) + * Create an environment variable that you can reference in a GitHub Actions workflow. * - * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) - * encrypted_secret = box.encrypt("my_secret") + * Authenticated users must have collaborator access to a repository to create, update, or read variables. * - * # Print the base64 encoded secret - * puts Base64.strict_encode64(encrypted_secret) - * ``` + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `repository_id: i64` - * * `environment_name: &str` -- The name of the environment. - * * `secret_name: &str` -- secret_name parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. */ - pub async fn create_or_update_environment_secret( + pub async fn create_environment_variable( &self, - repository_id: i64, + owner: &str, + repo: &str, environment_name: &str, - secret_name: &str, - body: &crate::types::ActionsCreateUpdateRepoSecretRequest, - ) -> ClientResult> { + body: &crate::types::ActionsCreateRepoVariableRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repositories/{}/environments/{}/secrets/{}", - crate::progenitor_support::encode_path(&repository_id.to_string()), - crate::progenitor_support::encode_path(environment_name), - crate::progenitor_support::encode_path(secret_name), + "/repos/{}/{}/environments/{}/variables", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), ), None, ); self.client - .put( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -3996,32 +8159,86 @@ impl Actions { .await } /** - * Delete an environment secret. + * Get an environment variable. * - * This function performs a `DELETE` to the `/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}` endpoint. * - * Deletes a secret in an environment using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + * Gets a specific variable in an environment. * - * FROM: + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `repository_id: i64` - * * `environment_name: &str` -- The name of the environment. - * * `secret_name: &str` -- secret_name parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `name: &str` -- The name of the variable. */ - pub async fn delete_environment_secret( + pub async fn get_environment_variable( &self, - repository_id: i64, + owner: &str, + repo: &str, + environment_name: &str, + name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/variables/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete an environment variable. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}` endpoint. + * + * Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + */ + pub async fn delete_environment_variable( + &self, + owner: &str, + repo: &str, + name: &str, environment_name: &str, - secret_name: &str, ) -> ClientResult> { let url = self.client.url( &format!( - "/repositories/{}/environments/{}/secrets/{}", - crate::progenitor_support::encode_path(&repository_id.to_string()), - crate::progenitor_support::encode_path(environment_name), - crate::progenitor_support::encode_path(secret_name), + "/repos/{}/{}/environments/{}/variables/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); @@ -4035,4 +8252,52 @@ impl Actions { ) .await } + /** + * Update an environment variable. + * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}` endpoint. + * + * Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `name: &str` -- The name of the variable. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + */ + pub async fn update_environment_variable( + &self, + owner: &str, + repo: &str, + name: &str, + environment_name: &str, + body: &crate::types::ActionsUpdateRepoVariableRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/variables/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } } diff --git a/github/src/activity.rs b/github/src/activity.rs index 6d5e7b3a..3ea11f79 100644 --- a/github/src/activity.rs +++ b/github/src/activity.rs @@ -16,14 +16,15 @@ impl Activity { * * This function performs a `GET` to the `/events` endpoint. * - * We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_public_events( &self, @@ -56,14 +57,15 @@ impl Activity { * * As opposed to `list_public_events`, this function returns all the pages of the request at once. * - * We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * FROM: + * FROM: */ pub async fn list_all_public_events( &self, ) -> ClientResult>> { - let url = self.client.url("/events", None); + let url = self.client.url(&"/events".to_string(), None); self.client .get_all_pages( &url, @@ -79,22 +81,25 @@ impl Activity { * * This function performs a `GET` to the `/feeds` endpoint. * - * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * Lists the feeds available to the authenticated user. The response provides a URL for each feed. You can then get a specific feed by sending a request to one of the feed URLs. * * * **Timeline**: The GitHub global public timeline - * * **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." * * **Current user public**: The public timeline for the authenticated user * * **Current user**: The private timeline for the authenticated user * * **Current user actor**: The private timeline for activity created by the authenticated user * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. * - * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + * By default, timeline resources are returned in JSON. You can specify the `application/atom+xml` type in the `Accept` header to return timeline resources in Atom format. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * > [!NOTE] + * > Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) since current feed URIs use the older, non revocable auth tokens. + * + * FROM: */ pub async fn get_feeds(&self) -> ClientResult> { - let url = self.client.url("/feeds", None); + let url = self.client.url(&"/feeds".to_string(), None); self.client .get( &url, @@ -110,16 +115,17 @@ impl Activity { * * This function performs a `GET` to the `/networks/{owner}/{repo}/events` endpoint. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_public_events_for_repo_network( &self, @@ -139,8 +145,8 @@ impl Activity { let url = self.client.url( &format!( "/networks/{}/{}/events?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -162,9 +168,10 @@ impl Activity { * * As opposed to `list_public_events_for_repo_network`, this function returns all the pages of the request at once. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: */ pub async fn list_all_public_events_for_repo_network( &self, @@ -174,8 +181,8 @@ impl Activity { let url = self.client.url( &format!( "/networks/{}/{}/events", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -196,16 +203,16 @@ impl Activity { * * List all notifications for the current user, sorted by most recently updated. * - * FROM: + * FROM: * * **Parameters:** * * * `all: bool` -- If `true`, show notifications marked as read. * * `participating: bool` -- If `true`, only shows notifications in which the user is directly participating or mentioned. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. * * `before: chrono::DateTime` -- Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 50). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_notifications_for_authenticated_user( &self, @@ -213,8 +220,8 @@ impl Activity { participating: bool, since: Option>, before: Option>, - per_page: i64, page: i64, + per_page: i64, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if all { @@ -256,7 +263,7 @@ impl Activity { * * List all notifications for the current user, sorted by most recently updated. * - * FROM: + * FROM: */ pub async fn list_all_notifications_for_authenticated_user( &self, @@ -295,15 +302,15 @@ impl Activity { * * This function performs a `PUT` to the `/notifications` endpoint. * - * Marks all notifications as "read" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + * Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. * - * FROM: + * FROM: */ pub async fn mark_notifications_as_read( &self, body: &crate::types::ActivityMarkNotificationsAsReadRequest, - ) -> ClientResult> { - let url = self.client.url("/notifications", None); + ) -> ClientResult> { + let url = self.client.url(&"/notifications".to_string(), None); self.client .put( &url, @@ -319,13 +326,13 @@ impl Activity { * * This function performs a `GET` to the `/notifications/threads/{thread_id}` endpoint. * + * Gets information about a notification thread. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `thread_id: i64` -- thread_id parameter. + * * `thread_id: i64` -- The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ pub async fn get_thread( &self, @@ -348,18 +355,49 @@ impl Activity { ) .await } + /** + * Mark a thread as done. + * + * This function performs a `DELETE` to the `/notifications/threads/{thread_id}` endpoint. + * + * Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + * + * FROM: + * + * **Parameters:** + * + * * `thread_id: i64` -- The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). + */ + pub async fn mark_thread_as_done(&self, thread_id: i64) -> ClientResult> { + let url = self.client.url( + &format!( + "/notifications/threads/{}", + crate::progenitor_support::encode_path(&thread_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Mark a thread as read. * * This function performs a `PATCH` to the `/notifications/threads/{thread_id}` endpoint. * + * Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `thread_id: i64` -- thread_id parameter. + * * `thread_id: i64` -- The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ pub async fn mark_thread_as_read(&self, thread_id: i64) -> ClientResult> { let url = self.client.url( @@ -384,15 +422,15 @@ impl Activity { * * This function performs a `GET` to the `/notifications/threads/{thread_id}/subscription` endpoint. * - * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription). + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). * * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. * - * FROM: + * FROM: * * **Parameters:** * - * * `thread_id: i64` -- thread_id parameter. + * * `thread_id: i64` -- The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ pub async fn get_thread_subscription_for_authenticated_user( &self, @@ -424,13 +462,13 @@ impl Activity { * * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. * - * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint. + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `thread_id: i64` -- thread_id parameter. + * * `thread_id: i64` -- The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ pub async fn set_thread_subscription( &self, @@ -459,13 +497,13 @@ impl Activity { * * This function performs a `DELETE` to the `/notifications/threads/{thread_id}/subscription` endpoint. * - * Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`. + * Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. * - * FROM: + * FROM: * * **Parameters:** * - * * `thread_id: i64` -- thread_id parameter. + * * `thread_id: i64` -- The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ pub async fn delete_thread_subscription( &self, @@ -493,15 +531,16 @@ impl Activity { * * This function performs a `GET` to the `/orgs/{org}/events` endpoint. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_public_org_events( &self, @@ -520,7 +559,7 @@ impl Activity { let url = self.client.url( &format!( "/orgs/{}/events?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -542,9 +581,10 @@ impl Activity { * * As opposed to `list_public_org_events`, this function returns all the pages of the request at once. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: */ pub async fn list_all_public_org_events( &self, @@ -553,7 +593,7 @@ impl Activity { let url = self.client.url( &format!( "/orgs/{}/events", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -572,16 +612,17 @@ impl Activity { * * This function performs a `GET` to the `/repos/{owner}/{repo}/events` endpoint. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repo_events( &self, @@ -601,8 +642,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/events?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -624,9 +665,10 @@ impl Activity { * * As opposed to `list_repo_events`, this function returns all the pages of the request at once. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: */ pub async fn list_all_repo_events( &self, @@ -636,8 +678,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/events", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -656,20 +698,20 @@ impl Activity { * * This function performs a `GET` to the `/repos/{owner}/{repo}/notifications` endpoint. * - * List all notifications for the current user. + * Lists all notifications for the current user in the specified repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `all: bool` -- If `true`, show notifications marked as read. * * `participating: bool` -- If `true`, only shows notifications in which the user is directly participating or mentioned. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. * * `before: chrono::DateTime` -- Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repo_notifications_for_authenticated_user( &self, @@ -705,8 +747,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/notifications?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -728,9 +770,9 @@ impl Activity { * * As opposed to `list_repo_notifications_for_authenticated_user`, this function returns all the pages of the request at once. * - * List all notifications for the current user. + * Lists all notifications for the current user in the specified repository. * - * FROM: + * FROM: */ pub async fn list_all_repo_notifications_for_authenticated_user( &self, @@ -758,8 +800,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/notifications?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -779,14 +821,14 @@ impl Activity { * * This function performs a `PUT` to the `/repos/{owner}/{repo}/notifications` endpoint. * - * Marks all notifications in a repository as "read" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + * Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn mark_repo_notifications_as_read( &self, @@ -797,8 +839,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/notifications", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -819,16 +861,18 @@ impl Activity { * * Lists the people that have starred the repository. * - * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_stargazers_for_repo( &self, @@ -848,8 +892,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/stargazers?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -871,14 +915,14 @@ impl Activity { * * Lists the people watching the specified repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_watchers_for_repo( &self, @@ -898,8 +942,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/subscribers?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -923,7 +967,7 @@ impl Activity { * * Lists the people watching the specified repository. * - * FROM: + * FROM: */ pub async fn list_all_watchers_for_repo( &self, @@ -933,8 +977,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/subscribers", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -953,14 +997,14 @@ impl Activity { * * This function performs a `GET` to the `/repos/{owner}/{repo}/subscription` endpoint. * + * Gets information about whether the authenticated user is subscribed to the repository. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_repo_subscription( &self, @@ -970,8 +1014,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/subscription", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -990,14 +1034,14 @@ impl Activity { * * This function performs a `PUT` to the `/repos/{owner}/{repo}/subscription` endpoint. * - * If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely. + * If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn set_repo_subscription( &self, @@ -1008,8 +1052,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/subscription", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1028,14 +1072,14 @@ impl Activity { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/subscription` endpoint. * - * This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription). + * This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn delete_repo_subscription( &self, @@ -1045,8 +1089,8 @@ impl Activity { let url = self.client.url( &format!( "/repos/{}/{}/subscription", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1067,22 +1111,22 @@ impl Activity { * * Lists repositories the authenticated user has starred. * - * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. * - * FROM: + * FROM: * * **Parameters:** * - * * `sort: crate::types::Sort` -- One of `created` (when the repository was starred) or `updated` (when it was last pushed to). - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `sort: crate::types::SortData` -- The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repos_starred_by_authenticated_user( &self, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, per_page: i64, page: i64, @@ -1121,13 +1165,15 @@ impl Activity { * * Lists repositories the authenticated user has starred. * - * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. * - * FROM: + * FROM: */ pub async fn list_all_repos_starred_by_authenticated_user( &self, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); @@ -1154,14 +1200,14 @@ impl Activity { * * This function performs a `GET` to the `/user/starred/{owner}/{repo}` endpoint. * + * Whether the authenticated user has starred the repository. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn check_repo_is_starred_by_authenticated_user( &self, @@ -1171,8 +1217,8 @@ impl Activity { let url = self.client.url( &format!( "/user/starred/{}/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1191,14 +1237,14 @@ impl Activity { * * This function performs a `PUT` to the `/user/starred/{owner}/{repo}` endpoint. * - * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn star_repo_for_authenticated_user( &self, @@ -1208,8 +1254,8 @@ impl Activity { let url = self.client.url( &format!( "/user/starred/{}/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1228,14 +1274,14 @@ impl Activity { * * This function performs a `DELETE` to the `/user/starred/{owner}/{repo}` endpoint. * + * Unstar a repository that the authenticated user has previously starred. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn unstar_repo_for_authenticated_user( &self, @@ -1245,8 +1291,8 @@ impl Activity { let url = self.client.url( &format!( "/user/starred/{}/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1267,12 +1313,12 @@ impl Activity { * * Lists repositories the authenticated user is watching. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_watched_repos_for_authenticated_user( &self, @@ -1309,12 +1355,12 @@ impl Activity { * * Lists repositories the authenticated user is watching. * - * FROM: + * FROM: */ pub async fn list_all_watched_repos_for_authenticated_user( &self, ) -> ClientResult>> { - let url = self.client.url("/user/subscriptions", None); + let url = self.client.url(&"/user/subscriptions".to_string(), None); self.client .get_all_pages( &url, @@ -1330,15 +1376,18 @@ impl Activity { * * This function performs a `GET` to the `/users/{username}/events` endpoint. * - * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. _Optional_: use the fine-grained token with following permission set to view private events: "Events" user permissions (read). * - * FROM: + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + * + * FROM: * * **Parameters:** * - * * `username: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_events_for_authenticated_user( &self, @@ -1357,7 +1406,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/events?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -1379,9 +1428,12 @@ impl Activity { * * As opposed to `list_events_for_authenticated_user`, this function returns all the pages of the request at once. * - * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. _Optional_: use the fine-grained token with following permission set to view private events: "Events" user permissions (read). + * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * FROM: + * FROM: */ pub async fn list_all_events_for_authenticated_user( &self, @@ -1390,7 +1442,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/events", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -1411,14 +1463,17 @@ impl Activity { * * This is the user's organization dashboard. You must be authenticated as the user to view this. * - * FROM: + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + * + * FROM: * * **Parameters:** * - * * `username: &str` - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_org_events_for_authenticated_user( &self, @@ -1438,8 +1493,8 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/events/orgs/{}?{}", - crate::progenitor_support::encode_path(username), - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -1463,7 +1518,10 @@ impl Activity { * * This is the user's organization dashboard. You must be authenticated as the user to view this. * - * FROM: + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + * + * FROM: */ pub async fn list_all_org_events_for_authenticated_user( &self, @@ -1473,8 +1531,8 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/events/orgs/{}", - crate::progenitor_support::encode_path(username), - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1493,15 +1551,16 @@ impl Activity { * * This function performs a `GET` to the `/users/{username}/events/public` endpoint. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_public_events_for_user( &self, @@ -1520,7 +1579,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/events/public?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -1542,9 +1601,10 @@ impl Activity { * * As opposed to `list_public_events_for_user`, this function returns all the pages of the request at once. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: */ pub async fn list_all_public_events_for_user( &self, @@ -1553,7 +1613,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/events/public", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -1572,15 +1632,19 @@ impl Activity { * * This function performs a `GET` to the `/users/{username}/received_events` endpoint. * - * These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + * These are events that you've received by watching repositories and following users. If you are authenticated as the + * given user, you will see private events. Otherwise, you'll only see public events. + * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_received_events_for_user( &self, @@ -1599,7 +1663,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/received_events?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -1621,9 +1685,13 @@ impl Activity { * * As opposed to `list_received_events_for_user`, this function returns all the pages of the request at once. * - * These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + * These are events that you've received by watching repositories and following users. If you are authenticated as the + * given user, you will see private events. Otherwise, you'll only see public events. + * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * FROM: + * FROM: */ pub async fn list_all_received_events_for_user( &self, @@ -1632,7 +1700,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/received_events", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -1651,15 +1719,16 @@ impl Activity { * * This function performs a `GET` to the `/users/{username}/received_events/public` endpoint. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_received_public_events_for_user( &self, @@ -1678,7 +1747,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/received_events/public?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -1700,9 +1769,10 @@ impl Activity { * * As opposed to `list_received_public_events_for_user`, this function returns all the pages of the request at once. * + * > [!NOTE] + * > This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. * - * - * FROM: + * FROM: */ pub async fn list_all_received_public_events_for_user( &self, @@ -1711,7 +1781,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/received_events/public", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -1732,24 +1802,24 @@ impl Activity { * * Lists repositories a user has starred. * - * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `sort: crate::types::Sort` -- One of `created` (when the repository was starred) or `updated` (when it was last pushed to). - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `sort: crate::types::SortData` -- The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repos_starred_by_user( &self, username: &str, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, per_page: i64, page: i64, @@ -1772,7 +1842,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/starred?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -1794,13 +1864,13 @@ impl Activity { * * Lists repositories a user is watching. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repos_watched_by_user( &self, @@ -1819,7 +1889,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/subscriptions?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -1843,7 +1913,7 @@ impl Activity { * * Lists repositories a user is watching. * - * FROM: + * FROM: */ pub async fn list_all_repos_watched_by_user( &self, @@ -1852,7 +1922,7 @@ impl Activity { let url = self.client.url( &format!( "/users/{}/subscriptions", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); diff --git a/github/src/apps.rs b/github/src/apps.rs index 89e2ee47..7d015d45 100644 --- a/github/src/apps.rs +++ b/github/src/apps.rs @@ -16,16 +16,16 @@ impl Apps { * * This function performs a `GET` to the `/app` endpoint. * - * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)" endpoint. + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: */ pub async fn get_authenticated( &self, ) -> ClientResult> { - let url = self.client.url("/app", None); + let url = self.client.url(&"/app".to_string(), None); self.client .get( &url, @@ -43,7 +43,7 @@ impl Apps { * * Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. * - * FROM: + * FROM: * * **Parameters:** * @@ -56,7 +56,7 @@ impl Apps { let url = self.client.url( &format!( "/app-manifests/{}/conversions", - crate::progenitor_support::encode_path(code), + crate::progenitor_support::encode_path(&code.to_string()), ), None, ); @@ -65,7 +65,7 @@ impl Apps { &url, crate::Message { body: None, - content_type: Some("application/json".to_string()), + content_type: None, }, ) .await @@ -79,12 +79,12 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: */ pub async fn get_webhook_config_for_app( &self, ) -> ClientResult> { - let url = self.client.url("/app/hook/config", None); + let url = self.client.url(&"/app/hook/config".to_string(), None); self.client .get( &url, @@ -104,13 +104,13 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: */ pub async fn update_webhook_config_for_app( &self, body: &crate::types::AppsUpdateWebhookConfigAppRequest, ) -> ClientResult> { - let url = self.client.url("/app/hook/config", None); + let url = self.client.url(&"/app/hook/config".to_string(), None); self.client .patch( &url, @@ -130,11 +130,11 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". * * `cursor: &str` -- Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ pub async fn list_webhook_deliveries( @@ -174,7 +174,7 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: */ pub async fn list_all_webhook_deliveries( &self, @@ -207,7 +207,7 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * @@ -243,7 +243,7 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * @@ -252,7 +252,7 @@ impl Apps { pub async fn redeliver_webhook_delivery( &self, delivery_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/app/hook/deliveries/{}/attempts", @@ -270,22 +270,89 @@ impl Apps { ) .await } + /** + * List installation requests for the authenticated app. + * + * This function performs a `GET` to the `/app/installation-requests` endpoint. + * + * Lists all the pending installation requests for the authenticated GitHub App. + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_installation_requests_for_authenticated_app( + &self, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self + .client + .url(&format!("/app/installation-requests?{}", query_), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List installation requests for the authenticated app. + * + * This function performs a `GET` to the `/app/installation-requests` endpoint. + * + * As opposed to `list_installation_requests_for_authenticated_app`, this function returns all the pages of the request at once. + * + * Lists all the pending installation requests for the authenticated GitHub App. + * + * FROM: + */ + pub async fn list_all_installation_requests_for_authenticated_app( + &self, + ) -> ClientResult>> { + let url = self + .client + .url(&"/app/installation-requests".to_string(), None); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * List installations for the authenticated app. * * This function performs a `GET` to the `/app/installations` endpoint. * - * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. - * * The permissions the installation has are included under the `permissions` key. * - * FROM: + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. * * `outdated: &str` */ pub async fn list_installations( @@ -329,11 +396,11 @@ impl Apps { * * As opposed to `list_installations`, this function returns all the pages of the request at once. * - * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. - * * The permissions the installation has are included under the `permissions` key. * - * FROM: + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * FROM: */ pub async fn list_all_installations( &self, @@ -366,15 +433,15 @@ impl Apps { * * This function performs a `GET` to the `/app/installations/{installation_id}` endpoint. * - * Enables an authenticated GitHub App to find an installation's information using the installation id. The installation's account type (`target_type`) will be either an organization or a user account, depending which account the repository belongs to. + * Enables an authenticated GitHub App to find an installation's information using the installation id. * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. + * * `installation_id: i64` -- The unique identifier of the installation. */ pub async fn get_installation( &self, @@ -402,15 +469,15 @@ impl Apps { * * This function performs a `DELETE` to the `/app/installations/{installation_id}` endpoint. * - * Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/reference/apps/#suspend-an-app-installation)" endpoint. + * Uninstalls a GitHub App on a user, organization, or enterprise account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. + * * `installation_id: i64` -- The unique identifier of the installation. */ pub async fn delete_installation( &self, @@ -438,15 +505,19 @@ impl Apps { * * This function performs a `POST` to the `/app/installations/{installation_id}/access_tokens` endpoint. * - * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key. + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. + * * `installation_id: i64` -- The unique identifier of the installation. */ #[async_recursion::async_recursion] pub async fn create_installation_access_token( @@ -478,15 +549,15 @@ impl Apps { * * This function performs a `PUT` to the `/app/installations/{installation_id}/suspended` endpoint. * - * Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * Suspends a GitHub App on a user, organization, or enterprise account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. + * * `installation_id: i64` -- The unique identifier of the installation. */ pub async fn suspend_installation( &self, @@ -518,11 +589,11 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. + * * `installation_id: i64` -- The unique identifier of the installation. */ pub async fn unsuspend_installation( &self, @@ -550,14 +621,14 @@ impl Apps { * * This function performs a `DELETE` to the `/applications/{client_id}/grant` endpoint. * - * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. - * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + * OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). * - * FROM: + * FROM: * * **Parameters:** * - * * `client_id: &str` -- The client ID of your GitHub app. + * * `client_id: &str` -- The client ID of the GitHub app. */ pub async fn delete_authorization( &self, @@ -567,7 +638,7 @@ impl Apps { let url = self.client.url( &format!( "/applications/{}/grant", - crate::progenitor_support::encode_path(client_id), + crate::progenitor_support::encode_path(&client_id.to_string()), ), None, ); @@ -581,59 +652,18 @@ impl Apps { ) .await } - /** - * Revoke a grant for an application. - * - * This function performs a `DELETE` to the `/applications/{client_id}/grants/{access_token}` endpoint. - * - * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). - * - * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid token as `:access_token` and the grant for the token's owner will be deleted. - * - * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the Applications settings page under "Authorized OAuth Apps" on GitHub](https://github.com/settings/applications#authorized). - * - * FROM: - * - * **Parameters:** - * - * * `client_id: &str` -- The client ID of your GitHub app. - * * `access_token: &str` - */ - pub async fn revoke_grant_for_application( - &self, - client_id: &str, - access_token: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/applications/{}/grants/{}", - crate::progenitor_support::encode_path(client_id), - crate::progenitor_support::encode_path(access_token), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } /** * Check a token. * * This function performs a `POST` to the `/applications/{client_id}/token` endpoint. * - * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + * OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. Invalid tokens will return `404 NOT FOUND`. * - * FROM: + * FROM: * * **Parameters:** * - * * `client_id: &str` -- The client ID of your GitHub app. + * * `client_id: &str` -- The client ID of the GitHub app. */ pub async fn check_token( &self, @@ -643,7 +673,7 @@ impl Apps { let url = self.client.url( &format!( "/applications/{}/token", - crate::progenitor_support::encode_path(client_id), + crate::progenitor_support::encode_path(&client_id.to_string()), ), None, ); @@ -662,13 +692,13 @@ impl Apps { * * This function performs a `DELETE` to the `/applications/{client_id}/token` endpoint. * - * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + * OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. * - * FROM: + * FROM: * * **Parameters:** * - * * `client_id: &str` -- The client ID of your GitHub app. + * * `client_id: &str` -- The client ID of the GitHub app. */ pub async fn delete_token( &self, @@ -678,7 +708,7 @@ impl Apps { let url = self.client.url( &format!( "/applications/{}/token", - crate::progenitor_support::encode_path(client_id), + crate::progenitor_support::encode_path(&client_id.to_string()), ), None, ); @@ -697,13 +727,13 @@ impl Apps { * * This function performs a `PATCH` to the `/applications/{client_id}/token` endpoint. * - * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + * OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. Invalid tokens will return `404 NOT FOUND`. * - * FROM: + * FROM: * * **Parameters:** * - * * `client_id: &str` -- The client ID of your GitHub app. + * * `client_id: &str` -- The client ID of the GitHub app. */ pub async fn reset_token( &self, @@ -713,7 +743,7 @@ impl Apps { let url = self.client.url( &format!( "/applications/{}/token", - crate::progenitor_support::encode_path(client_id), + crate::progenitor_support::encode_path(&client_id.to_string()), ), None, ); @@ -732,13 +762,17 @@ impl Apps { * * This function performs a `POST` to the `/applications/{client_id}/token/scoped` endpoint. * - * Use a non-scoped user-to-server OAuth access token to create a repository scoped and/or permission scoped user-to-server OAuth access token. You can specify which repositories the token can access and which permissions are granted to the token. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + * Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. * - * FROM: + * FROM: * * **Parameters:** * - * * `client_id: &str` -- The client ID of your GitHub app. + * * `client_id: &str` -- The client ID of the GitHub app. */ pub async fn scope_token( &self, @@ -748,7 +782,7 @@ impl Apps { let url = self.client.url( &format!( "/applications/{}/token/scoped", - crate::progenitor_support::encode_path(client_id), + crate::progenitor_support::encode_path(&client_id.to_string()), ), None, ); @@ -762,133 +796,15 @@ impl Apps { ) .await } - /** - * Check an authorization. - * - * This function performs a `GET` to the `/applications/{client_id}/tokens/{access_token}` endpoint. - * - * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). - * - * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. - * - * FROM: - * - * **Parameters:** - * - * * `client_id: &str` -- The client ID of your GitHub app. - * * `access_token: &str` - */ - pub async fn check_authorization( - &self, - client_id: &str, - access_token: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/applications/{}/tokens/{}", - crate::progenitor_support::encode_path(client_id), - crate::progenitor_support::encode_path(access_token), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Reset an authorization. - * - * This function performs a `POST` to the `/applications/{client_id}/tokens/{access_token}` endpoint. - * - * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). - * - * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. - * - * FROM: - * - * **Parameters:** - * - * * `client_id: &str` -- The client ID of your GitHub app. - * * `access_token: &str` - */ - pub async fn reset_authorization( - &self, - client_id: &str, - access_token: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/applications/{}/tokens/{}", - crate::progenitor_support::encode_path(client_id), - crate::progenitor_support::encode_path(access_token), - ), - None, - ); - self.client - .post( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Revoke an authorization for an application. - * - * This function performs a `DELETE` to the `/applications/{client_id}/tokens/{access_token}` endpoint. - * - * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). - * - * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. - * - * FROM: - * - * **Parameters:** - * - * * `client_id: &str` -- The client ID of your GitHub app. - * * `access_token: &str` - */ - pub async fn revoke_authorization_for_application( - &self, - client_id: &str, - access_token: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/applications/{}/tokens/{}", - crate::progenitor_support::encode_path(client_id), - crate::progenitor_support::encode_path(access_token), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } /** * Get an app. * * This function performs a `GET` to the `/apps/{app_slug}` endpoint. * - * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + * > [!NOTE] + * > The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). * - * If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. - * - * FROM: + * FROM: * * **Parameters:** * @@ -899,7 +815,10 @@ impl Apps { app_slug: &str, ) -> ClientResult> { let url = self.client.url( - &format!("/apps/{}", crate::progenitor_support::encode_path(app_slug),), + &format!( + "/apps/{}", + crate::progenitor_support::encode_path(&app_slug.to_string()), + ), None, ); self.client @@ -919,14 +838,12 @@ impl Apps { * * List repositories that an app installation can access. * - * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. - * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repos_accessible_to_installation( &self, @@ -961,14 +878,12 @@ impl Apps { * * Revokes the installation token you're using to authenticate as an installation and access this endpoint. * - * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)" endpoint. - * - * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. * - * FROM: + * FROM: */ pub async fn revoke_installation_access_token(&self) -> ClientResult> { - let url = self.client.url("/installation/token", None); + let url = self.client.url(&"/installation/token".to_string(), None); self.client .delete( &url, @@ -986,9 +901,9 @@ impl Apps { * * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * @@ -1022,14 +937,14 @@ impl Apps { * * Lists all plans that are part of your GitHub Marketplace listing. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_plans( &self, @@ -1066,14 +981,16 @@ impl Apps { * * Lists all plans that are part of your GitHub Marketplace listing. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: */ pub async fn list_all_plans( &self, ) -> ClientResult>> { - let url = self.client.url("/marketplace_listing/plans", None); + let url = self + .client + .url(&"/marketplace_listing/plans".to_string(), None); self.client .get_all_pages( &url, @@ -1091,24 +1008,22 @@ impl Apps { * * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `plan_id: i64` -- plan_id parameter. - * * `sort: crate::types::Sort` -- One of `created` (when the repository was starred) or `updated` (when it was last pushed to). - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `plan_id: i64` -- The unique identifier of the plan. + * * `sort: crate::types::SortData` -- The property to sort the results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_accounts_for_plan( &self, plan_id: i64, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, per_page: i64, page: i64, @@ -1154,14 +1069,14 @@ impl Apps { * * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: */ pub async fn list_all_accounts_for_plan( &self, plan_id: i64, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); @@ -1197,9 +1112,9 @@ impl Apps { * * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * @@ -1233,14 +1148,14 @@ impl Apps { * * Lists all plans that are part of your GitHub Marketplace listing. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_plans_stubbed( &self, @@ -1278,14 +1193,16 @@ impl Apps { * * Lists all plans that are part of your GitHub Marketplace listing. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: */ pub async fn list_all_plans_stubbed( &self, ) -> ClientResult>> { - let url = self.client.url("/marketplace_listing/stubbed/plans", None); + let url = self + .client + .url(&"/marketplace_listing/stubbed/plans".to_string(), None); self.client .get_all_pages( &url, @@ -1303,24 +1220,22 @@ impl Apps { * * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `plan_id: i64` -- plan_id parameter. - * * `sort: crate::types::Sort` -- One of `created` (when the repository was starred) or `updated` (when it was last pushed to). - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `plan_id: i64` -- The unique identifier of the plan. + * * `sort: crate::types::SortData` -- The property to sort the results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_accounts_for_plan_stubbed( &self, plan_id: i64, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, per_page: i64, page: i64, @@ -1366,14 +1281,14 @@ impl Apps { * * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. * - * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/authentication/authenticating-to-the-rest-api#using-basic-authentication) with their client ID and client secret to access this endpoint. * - * FROM: + * FROM: */ pub async fn list_all_accounts_for_plan_stubbed( &self, plan_id: i64, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); @@ -1411,11 +1326,11 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn get_org_installation( &self, @@ -1424,7 +1339,7 @@ impl Apps { let url = self.client.url( &format!( "/orgs/{}/installation", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1438,51 +1353,6 @@ impl Apps { ) .await } - /** - * Create a content attachment. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/content_references/{content_reference_id}/attachments` endpoint. - * - * Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` and `repository` `full_name` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment. - * - * The app must create a content attachment within six hours of the content reference URL being posted. See "[Using content attachments](https://docs.github.com/apps/using-content-attachments/)" for details about content attachments. - * - * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. - * - * FROM: - * - * **Parameters:** - * - * * `owner: &str` -- The owner of the repository. Determined from the `repository` `full_name` of the `content_reference` event. - * * `repo: &str` -- The name of the repository. Determined from the `repository` `full_name` of the `content_reference` event. - * * `content_reference_id: i64` -- The `id` of the `content_reference` event. - */ - pub async fn create_content_attachment( - &self, - owner: &str, - repo: &str, - content_reference_id: i64, - body: &crate::types::TeamsUpdateDiscussionInOrgRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/repos/{}/{}/content_references/{}/attachments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&content_reference_id.to_string()), - ), - None, - ); - self.client - .post( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } /** * Get a repository installation for the authenticated app. * @@ -1492,12 +1362,12 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_repo_installation( &self, @@ -1507,8 +1377,8 @@ impl Apps { let url = self.client.url( &format!( "/repos/{}/{}/installation", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1529,18 +1399,16 @@ impl Apps { * * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. * - * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. - * * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. * * You can find the permissions for the installation under the `permissions` key. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_installations_for_authenticated_user( &self, @@ -1577,17 +1445,15 @@ impl Apps { * * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. * - * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. - * * The access the user has to each repository is included in the hash under the `permissions` key. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `installation_id: i64` -- The unique identifier of the installation. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_installation_repos_for_authenticated_user( &self, @@ -1626,18 +1492,18 @@ impl Apps { * * This function performs a `PUT` to the `/user/installations/{installation_id}/repositories/{repository_id}` endpoint. * - * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * Add a single repository to an installation. The authenticated user must have admin access to the repository. * - * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + * This endpoint only works for PATs (classic) with the `repo` scope. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. - * * `repository_id: i64` + * * `installation_id: i64` -- The unique identifier of the installation. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn add_repo_to_installation( + pub async fn add_repo_to_installation_for_authenticated_user( &self, installation_id: i64, repository_id: i64, @@ -1665,18 +1531,18 @@ impl Apps { * * This function performs a `DELETE` to the `/user/installations/{installation_id}/repositories/{repository_id}` endpoint. * - * Remove a single repository from an installation. The authenticated user must have admin access to the repository. + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. * - * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + * This endpoint only works for PATs (classic) with the `repo` scope. * - * FROM: + * FROM: * * **Parameters:** * - * * `installation_id: i64` -- installation_id parameter. - * * `repository_id: i64` + * * `installation_id: i64` -- The unique identifier of the installation. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn remove_repo_from_installation( + pub async fn remove_repo_from_installation_for_authenticated_user( &self, installation_id: i64, repository_id: i64, @@ -1704,14 +1570,14 @@ impl Apps { * * This function performs a `GET` to the `/user/marketplace_purchases` endpoint. * - * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + * Lists the active subscriptions for the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_subscriptions_for_authenticated_user( &self, @@ -1746,14 +1612,16 @@ impl Apps { * * As opposed to `list_subscriptions_for_authenticated_user`, this function returns all the pages of the request at once. * - * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + * Lists the active subscriptions for the authenticated user. * - * FROM: + * FROM: */ pub async fn list_all_subscriptions_for_authenticated_user( &self, ) -> ClientResult>> { - let url = self.client.url("/user/marketplace_purchases", None); + let url = self + .client + .url(&"/user/marketplace_purchases".to_string(), None); self.client .get_all_pages( &url, @@ -1769,14 +1637,14 @@ impl Apps { * * This function performs a `GET` to the `/user/marketplace_purchases/stubbed` endpoint. * - * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + * Lists the active subscriptions for the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_subscriptions_for_authenticated_user_stubbed( &self, @@ -1812,14 +1680,16 @@ impl Apps { * * As opposed to `list_subscriptions_for_authenticated_user_stubbed`, this function returns all the pages of the request at once. * - * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + * Lists the active subscriptions for the authenticated user. * - * FROM: + * FROM: */ pub async fn list_all_subscriptions_for_authenticated_user_stubbed( &self, ) -> ClientResult>> { - let url = self.client.url("/user/marketplace_purchases/stubbed", None); + let url = self + .client + .url(&"/user/marketplace_purchases/stubbed".to_string(), None); self.client .get_all_pages( &url, @@ -1839,11 +1709,11 @@ impl Apps { * * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn get_user_installation( &self, @@ -1852,7 +1722,7 @@ impl Apps { let url = self.client.url( &format!( "/users/{}/installation", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); diff --git a/github/src/billing.rs b/github/src/billing.rs index 8cf5434d..710782e8 100644 --- a/github/src/billing.rs +++ b/github/src/billing.rs @@ -12,30 +12,29 @@ impl Billing { } /** - * Get GitHub Actions billing for an enterprise. + * Get all budgets for an organization. * - * This function performs a `GET` to the `/enterprises/{enterprise}/settings/billing/actions` endpoint. + * This function performs a `GET` to the `/organizations/{org}/settings/billing/budgets` endpoint. * - * Gets the summary of the free and paid GitHub Actions minutes used. + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. * - * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager. * - * The authenticated user must be an enterprise admin. - * - * FROM: + * FROM: * * **Parameters:** * - * * `enterprise: &str` -- The slug version of the enterprise name. You can also substitute this value with the enterprise id. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_github_actions_billing_ghe( + pub async fn get_all_budgets_org( &self, - enterprise: &str, - ) -> ClientResult> { + org: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/enterprises/{}/settings/billing/actions", - crate::progenitor_support::encode_path(enterprise), + "/organizations/{}/settings/billing/budgets", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -50,30 +49,32 @@ impl Billing { .await } /** - * Get GitHub Packages billing for an enterprise. + * Get a budget by ID for an organization. * - * This function performs a `GET` to the `/enterprises/{enterprise}/settings/billing/packages` endpoint. + * This function performs a `GET` to the `/organizations/{org}/settings/billing/budgets/{budget_id}` endpoint. * - * Gets the free and paid storage used for GitHub Packages in gigabytes. + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. * - * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * Gets a budget by ID. The authenticated user must be an organization admin or billing manager. * - * The authenticated user must be an enterprise admin. - * - * FROM: + * FROM: * * **Parameters:** * - * * `enterprise: &str` -- The slug version of the enterprise name. You can also substitute this value with the enterprise id. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `budget_id: &str` -- The ID corresponding to the budget. */ - pub async fn get_github_packages_billing_ghe( + pub async fn get_budget_org( &self, - enterprise: &str, - ) -> ClientResult> { + org: &str, + budget_id: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/enterprises/{}/settings/billing/packages", - crate::progenitor_support::encode_path(enterprise), + "/organizations/{}/settings/billing/budgets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&budget_id.to_string()), ), None, ); @@ -88,35 +89,37 @@ impl Billing { .await } /** - * Get shared storage billing for an enterprise. + * Delete a budget for an organization. * - * This function performs a `GET` to the `/enterprises/{enterprise}/settings/billing/shared-storage` endpoint. + * This function performs a `DELETE` to the `/organizations/{org}/settings/billing/budgets/{budget_id}` endpoint. * - * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. * - * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. * - * The authenticated user must be an enterprise admin. - * - * FROM: + * FROM: * * **Parameters:** * - * * `enterprise: &str` -- The slug version of the enterprise name. You can also substitute this value with the enterprise id. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `budget_id: &str` -- The ID corresponding to the budget. */ - pub async fn get_shared_storage_billing_ghe( + pub async fn delete_budget_org( &self, - enterprise: &str, - ) -> ClientResult> { + org: &str, + budget_id: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/enterprises/{}/settings/billing/shared-storage", - crate::progenitor_support::encode_path(enterprise), + "/organizations/{}/settings/billing/budgets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&budget_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -126,30 +129,102 @@ impl Billing { .await } /** - * Get GitHub Actions billing for an organization. + * Update a budget for an organization. + * + * This function performs a `PATCH` to the `/organizations/{org}/settings/billing/budgets/{budget_id}` endpoint. * - * This function performs a `GET` to the `/orgs/{org}/settings/billing/actions` endpoint. + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Updates an existing budget for an organization. The authenticated user must be an organization admin or billing manager. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `budget_id: &str` -- The ID corresponding to the budget. + */ + pub async fn update_budget_org( + &self, + org: &str, + budget_id: &str, + body: &crate::types::BillingUpdateBudgetOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/organizations/{}/settings/billing/budgets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&budget_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get billing premium request usage report for an organization. * - * Gets the summary of the free and paid GitHub Actions minutes used. + * This function performs a `GET` to the `/organizations/{org}/settings/billing/premium_request/usage` endpoint. * - * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * Gets a report of premium request usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account. * - * Access tokens must have the `repo` or `admin:org` scope. + * **Note:** Only data from the past 24 months is accessible via this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `year: i64` -- If specified, only return results for a single year. The value of `year` is an integer with four digits representing a year. For example, `2025`. Default value is the current year. + * * `month: i64` -- If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. Default value is the current month. If no year is specified the default `year` is used. + * * `day: i64` -- If specified, only return results for a single day. The value of `day` is an integer between `1` and `31`. If no `year` or `month` is specified, the default `year` and `month` are used. + * * `user: &str` -- The user name to query usage for. The name is not case sensitive. + * * `model: &str` -- The model name to query usage for. The name is not case sensitive. + * * `product: &str` -- The product name to query usage for. The name is not case sensitive. */ - pub async fn get_github_actions_billing_org( + pub async fn get_github_billing_premium_request_usage_report_org( &self, org: &str, - ) -> ClientResult> { + year: i64, + month: i64, + day: i64, + user: &str, + model: &str, + product: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if day > 0 { + query_args.push(("day".to_string(), day.to_string())); + } + if !model.is_empty() { + query_args.push(("model".to_string(), model.to_string())); + } + if month > 0 { + query_args.push(("month".to_string(), month.to_string())); + } + if !product.is_empty() { + query_args.push(("product".to_string(), product.to_string())); + } + if !user.is_empty() { + query_args.push(("user".to_string(), user.to_string())); + } + if year > 0 { + query_args.push(("year".to_string(), year.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/settings/billing/actions", - crate::progenitor_support::encode_path(org), + "/organizations/{}/settings/billing/premium_request/usage?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); @@ -164,30 +239,46 @@ impl Billing { .await } /** - * Get GitHub Packages billing for an organization. - * - * This function performs a `GET` to the `/orgs/{org}/settings/billing/packages` endpoint. + * Get billing usage report for an organization. * - * Gets the free and paid storage used for GitHub Packages in gigabytes. + * This function performs a `GET` to the `/organizations/{org}/settings/billing/usage` endpoint. * - * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * Gets a report of the total usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account. * - * Access tokens must have the `repo` or `admin:org` scope. + * **Note:** This endpoint is only available to organizations with access to the enhanced billing platform. For more information, see "[About the enhanced billing platform](https://docs.github.com/billing/using-the-new-billing-platform)." * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `year: i64` -- If specified, only return results for a single year. The value of `year` is an integer with four digits representing a year. For example, `2025`. Default value is the current year. + * * `month: i64` -- If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. If no year is specified the default `year` is used. + * * `day: i64` -- If specified, only return results for a single day. The value of `day` is an integer between `1` and `31`. If no `year` or `month` is specified, the default `year` and `month` are used. */ - pub async fn get_github_packages_billing_org( + pub async fn get_github_billing_usage_report_org( &self, org: &str, - ) -> ClientResult> { + year: i64, + month: i64, + day: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if day > 0 { + query_args.push(("day".to_string(), day.to_string())); + } + if month > 0 { + query_args.push(("month".to_string(), month.to_string())); + } + if year > 0 { + query_args.push(("year".to_string(), year.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/settings/billing/packages", - crate::progenitor_support::encode_path(org), + "/organizations/{}/settings/billing/usage?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); @@ -202,30 +293,64 @@ impl Billing { .await } /** - * Get shared storage billing for an organization. + * Get billing usage summary for an organization. * - * This function performs a `GET` to the `/orgs/{org}/settings/billing/shared-storage` endpoint. + * This function performs a `GET` to the `/organizations/{org}/settings/billing/usage/summary` endpoint. * - * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. * - * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * Gets a summary report of usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account. * - * Access tokens must have the `repo` or `admin:org` scope. + * **Note:** Only data from the past 24 months is accessible via this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `year: i64` -- If specified, only return results for a single year. The value of `year` is an integer with four digits representing a year. For example, `2025`. Default value is the current year. + * * `month: i64` -- If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. Default value is the current month. If no year is specified the default `year` is used. + * * `day: i64` -- If specified, only return results for a single day. The value of `day` is an integer between `1` and `31`. If no `year` or `month` is specified, the default `year` and `month` are used. + * * `repository: &str` -- The repository name to query for usage in the format owner/repository. + * * `product: &str` -- The product name to query usage for. The name is not case sensitive. + * * `sku: &str` -- The SKU to query for usage. */ - pub async fn get_shared_storage_billing_org( + pub async fn get_github_billing_usage_summary_report_org( &self, org: &str, - ) -> ClientResult> { + year: i64, + month: i64, + day: i64, + repository: &str, + product: &str, + sku: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if day > 0 { + query_args.push(("day".to_string(), day.to_string())); + } + if month > 0 { + query_args.push(("month".to_string(), month.to_string())); + } + if !product.is_empty() { + query_args.push(("product".to_string(), product.to_string())); + } + if !repository.is_empty() { + query_args.push(("repository".to_string(), repository.to_string())); + } + if !sku.is_empty() { + query_args.push(("sku".to_string(), sku.to_string())); + } + if year > 0 { + query_args.push(("year".to_string(), year.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/settings/billing/shared-storage", - crate::progenitor_support::encode_path(org), + "/organizations/{}/settings/billing/usage/summary?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); @@ -240,30 +365,56 @@ impl Billing { .await } /** - * Get GitHub Actions billing for a user. + * Get billing premium request usage report for a user. * - * This function performs a `GET` to the `/users/{username}/settings/billing/actions` endpoint. + * This function performs a `GET` to the `/users/{username}/settings/billing/premium_request/usage` endpoint. * - * Gets the summary of the free and paid GitHub Actions minutes used. + * Gets a report of premium request usage for a user. * - * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * **Note:** Only data from the past 24 months is accessible via this endpoint. * - * Access tokens must have the `user` scope. - * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` + * * `username: &str` -- The handle for the GitHub user account. + * * `year: i64` -- If specified, only return results for a single year. The value of `year` is an integer with four digits representing a year. For example, `2025`. Default value is the current year. + * * `month: i64` -- If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. Default value is the current month. If no year is specified the default `year` is used. + * * `day: i64` -- If specified, only return results for a single day. The value of `day` is an integer between `1` and `31`. If no `year` or `month` is specified, the default `year` and `month` are used. + * * `model: &str` -- The model name to query usage for. The name is not case sensitive. + * * `product: &str` -- The product name to query usage for. The name is not case sensitive. */ - pub async fn get_github_actions_billing_user( + pub async fn get_github_billing_premium_request_usage_report_user( &self, username: &str, - ) -> ClientResult> { + year: i64, + month: i64, + day: i64, + model: &str, + product: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if day > 0 { + query_args.push(("day".to_string(), day.to_string())); + } + if !model.is_empty() { + query_args.push(("model".to_string(), model.to_string())); + } + if month > 0 { + query_args.push(("month".to_string(), month.to_string())); + } + if !product.is_empty() { + query_args.push(("product".to_string(), product.to_string())); + } + if year > 0 { + query_args.push(("year".to_string(), year.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/users/{}/settings/billing/actions", - crate::progenitor_support::encode_path(username), + "/users/{}/settings/billing/premium_request/usage?{}", + crate::progenitor_support::encode_path(&username.to_string()), + query_ ), None, ); @@ -278,30 +429,46 @@ impl Billing { .await } /** - * Get GitHub Packages billing for a user. - * - * This function performs a `GET` to the `/users/{username}/settings/billing/packages` endpoint. + * Get billing usage report for a user. * - * Gets the free and paid storage used for GitHub Packages in gigabytes. + * This function performs a `GET` to the `/users/{username}/settings/billing/usage` endpoint. * - * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * Gets a report of the total usage for a user. * - * Access tokens must have the `user` scope. + * **Note:** This endpoint is only available to users with access to the enhanced billing platform. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` + * * `username: &str` -- The handle for the GitHub user account. + * * `year: i64` -- If specified, only return results for a single year. The value of `year` is an integer with four digits representing a year. For example, `2025`. Default value is the current year. + * * `month: i64` -- If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. If no year is specified the default `year` is used. + * * `day: i64` -- If specified, only return results for a single day. The value of `day` is an integer between `1` and `31`. If no `year` or `month` is specified, the default `year` and `month` are used. */ - pub async fn get_github_packages_billing_user( + pub async fn get_github_billing_usage_report_user( &self, username: &str, - ) -> ClientResult> { + year: i64, + month: i64, + day: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if day > 0 { + query_args.push(("day".to_string(), day.to_string())); + } + if month > 0 { + query_args.push(("month".to_string(), month.to_string())); + } + if year > 0 { + query_args.push(("year".to_string(), year.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/users/{}/settings/billing/packages", - crate::progenitor_support::encode_path(username), + "/users/{}/settings/billing/usage?{}", + crate::progenitor_support::encode_path(&username.to_string()), + query_ ), None, ); @@ -316,30 +483,64 @@ impl Billing { .await } /** - * Get shared storage billing for a user. + * Get billing usage summary for a user. * - * This function performs a `GET` to the `/users/{username}/settings/billing/shared-storage` endpoint. + * This function performs a `GET` to the `/users/{username}/settings/billing/usage/summary` endpoint. * - * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. * - * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * Gets a summary report of usage for a user. * - * Access tokens must have the `user` scope. + * **Note:** Only data from the past 24 months is accessible via this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` + * * `username: &str` -- The handle for the GitHub user account. + * * `year: i64` -- If specified, only return results for a single year. The value of `year` is an integer with four digits representing a year. For example, `2025`. Default value is the current year. + * * `month: i64` -- If specified, only return results for a single month. The value of `month` is an integer between `1` and `12`. Default value is the current month. If no year is specified the default `year` is used. + * * `day: i64` -- If specified, only return results for a single day. The value of `day` is an integer between `1` and `31`. If no `year` or `month` is specified, the default `year` and `month` are used. + * * `repository: &str` -- The repository name to query for usage in the format owner/repository. + * * `product: &str` -- The product name to query usage for. The name is not case sensitive. + * * `sku: &str` -- The SKU to query for usage. */ - pub async fn get_shared_storage_billing_user( + pub async fn get_github_billing_usage_summary_report_user( &self, username: &str, - ) -> ClientResult> { + year: i64, + month: i64, + day: i64, + repository: &str, + product: &str, + sku: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if day > 0 { + query_args.push(("day".to_string(), day.to_string())); + } + if month > 0 { + query_args.push(("month".to_string(), month.to_string())); + } + if !product.is_empty() { + query_args.push(("product".to_string(), product.to_string())); + } + if !repository.is_empty() { + query_args.push(("repository".to_string(), repository.to_string())); + } + if !sku.is_empty() { + query_args.push(("sku".to_string(), sku.to_string())); + } + if year > 0 { + query_args.push(("year".to_string(), year.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/users/{}/settings/billing/shared-storage", - crate::progenitor_support::encode_path(username), + "/users/{}/settings/billing/usage/summary?{}", + crate::progenitor_support::encode_path(&username.to_string()), + query_ ), None, ); diff --git a/github/src/campaigns.rs b/github/src/campaigns.rs new file mode 100644 index 00000000..d3d610fa --- /dev/null +++ b/github/src/campaigns.rs @@ -0,0 +1,297 @@ +use crate::Client; +use crate::ClientResult; + +pub struct Campaigns { + pub client: Client, +} + +impl Campaigns { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + Campaigns { client } + } + + /** + * List campaigns for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/campaigns` endpoint. + * + * Lists campaigns in an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `state: crate::types::CampaignState` -- If specified, only campaigns with this state will be returned. + * * `sort: crate::types::CampaignsListOrgSort` -- The property by which to sort the results. + */ + pub async fn list_org_campaigns( + &self, + org: &str, + page: i64, + per_page: i64, + direction: crate::types::Order, + state: crate::types::CampaignState, + sort: crate::types::CampaignsListOrgSort, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/campaigns?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List campaigns for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/campaigns` endpoint. + * + * As opposed to `list_org_campaigns`, this function returns all the pages of the request at once. + * + * Lists campaigns in an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_org_campaigns( + &self, + org: &str, + direction: crate::types::Order, + state: crate::types::CampaignState, + sort: crate::types::CampaignsListOrgSort, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/campaigns?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a campaign for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/campaigns` endpoint. + * + * Create a campaign for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + * + * Fine-grained tokens must have the "Code scanning alerts" repository permissions (read) on all repositories included + * in the campaign. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_campaign( + &self, + org: &str, + body: &crate::types::CampaignsCreateCampaignRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/campaigns", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a campaign for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/campaigns/{campaign_number}` endpoint. + * + * Gets a campaign for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `campaign_number: i64` -- The campaign number. + */ + pub async fn get_campaign_summary( + &self, + org: &str, + campaign_number: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/campaigns/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&campaign_number.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a campaign for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/campaigns/{campaign_number}` endpoint. + * + * Deletes a campaign in an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `campaign_number: i64` -- The campaign number. + */ + pub async fn delete_campaign( + &self, + org: &str, + campaign_number: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/campaigns/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&campaign_number.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a campaign. + * + * This function performs a `PATCH` to the `/orgs/{org}/campaigns/{campaign_number}` endpoint. + * + * Updates a campaign in an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `campaign_number: i64` -- The campaign number. + */ + pub async fn update_campaign( + &self, + org: &str, + campaign_number: i64, + body: &crate::types::CampaignsUpdateCampaignRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/campaigns/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&campaign_number.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } +} diff --git a/github/src/checks.rs b/github/src/checks.rs index 6d73a0ee..2e698e17 100644 --- a/github/src/checks.rs +++ b/github/src/checks.rs @@ -16,18 +16,21 @@ impl Checks { * * This function performs a `POST` to the `/repos/{owner}/{repo}/check-runs` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * Creates a new check run for a specific commit in a repository. * - * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * To create a check run, you must use a GitHub App. OAuth apps and authenticated users are not able to create a check suite. * * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. * - * FROM: + * > [!NOTE] + * > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create( &self, @@ -38,8 +41,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-runs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -58,17 +61,20 @@ impl Checks { * * This function performs a `GET` to the `/repos/{owner}/{repo}/check-runs/{check_run_id}` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * Gets a single check run using its `id`. + * + * > [!NOTE] + * > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. * - * Gets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `check_run_id: i64` -- check_run_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `check_run_id: i64` -- The unique identifier of the check run. */ pub async fn get( &self, @@ -79,8 +85,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-runs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&check_run_id.to_string()), ), None, @@ -100,17 +106,20 @@ impl Checks { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/check-runs/{check_run_id}` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * Updates a check run for a specific commit in a repository. + * + * > [!NOTE] + * > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. * - * Updates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs. + * OAuth apps and personal access tokens (classic) cannot use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `check_run_id: i64` -- check_run_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `check_run_id: i64` -- The unique identifier of the check run. */ pub async fn update( &self, @@ -122,8 +131,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-runs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&check_run_id.to_string()), ), None, @@ -143,17 +152,19 @@ impl Checks { * * This function performs a `GET` to the `/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations` endpoint. * - * Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. + * Lists annotations for a check run using the annotation `id`. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `check_run_id: i64` -- check_run_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `check_run_id: i64` -- The unique identifier of the check run. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_annotations( &self, @@ -174,8 +185,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-runs/{}/annotations?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&check_run_id.to_string()), query_ ), @@ -198,9 +209,11 @@ impl Checks { * * As opposed to `list_annotations`, this function returns all the pages of the request at once. * - * Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. + * Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. * - * FROM: + * FROM: */ pub async fn list_all_annotations( &self, @@ -211,8 +224,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-runs/{}/annotations", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&check_run_id.to_string()), ), None, @@ -227,21 +240,66 @@ impl Checks { ) .await } + /** + * Rerequest a check run. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest` endpoint. + * + * Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, the `status` of the check suite it belongs to is reset to `queued` and the `conclusion` is cleared. The check run itself is not updated. GitHub apps recieving the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) with the `rerequested` action should then decide if the check run should be reset or updated and call the [update `check_run` endpoint](https://docs.github.com/rest/checks/runs#update-a-check-run) to update the check_run if desired. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `check_run_id: i64` -- The unique identifier of the check run. + */ + pub async fn rerequest_run( + &self, + owner: &str, + repo: &str, + check_run_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/check-runs/{}/rerequest", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&check_run_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Create a check suite. * * This function performs a `POST` to the `/repos/{owner}/{repo}/check-suites` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". * - * By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)". Your GitHub App must have the `checks:write` permission to create check suites. + * > [!NOTE] + * > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. * - * FROM: + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_suite( &self, @@ -252,8 +310,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-suites", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -272,14 +330,15 @@ impl Checks { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/check-suites/preferences` endpoint. * - * Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites. + * Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn set_suites_preferences( &self, @@ -290,8 +349,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-suites/preferences", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -310,17 +369,20 @@ impl Checks { * * This function performs a `GET` to the `/repos/{owner}/{repo}/check-suites/{check_suite_id}` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * Gets a single check suite using its `id`. + * + * > [!NOTE] + * > The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. * - * Gets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `check_suite_id: i64` -- check_suite_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `check_suite_id: i64` -- The unique identifier of the check suite. */ pub async fn get_suite( &self, @@ -331,8 +393,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-suites/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&check_suite_id.to_string()), ), None, @@ -352,24 +414,25 @@ impl Checks { * * This function performs a `GET` to the `/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * Lists check runs for a check suite using its `id`. * - * Lists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + * > [!NOTE] + * > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `check_suite_id: i64` -- check_suite_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `check_suite_id: i64` -- The unique identifier of the check suite. * * `check_name: &str` -- Returns check runs with the specified `name`. - * * `status: crate::types::JobStatus` -- Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. - * * `filter: crate::types::ActionsListJobsWorkflowRunFilter` -- Filters jobs by their `completed_at` timestamp. Can be one of: - * \\* `latest`: Returns jobs from the most recent execution of the workflow run. - * \\* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `status: crate::types::JobStepsStatus` -- The phase of the lifecycle that the job is currently in. + * * `filter: crate::types::ActionsListJobsWorkflowRunFilter` -- Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_suite( &self, @@ -377,7 +440,7 @@ impl Checks { repo: &str, check_suite_id: i64, check_name: &str, - status: crate::types::JobStatus, + status: crate::types::JobStepsStatus, filter: crate::types::ActionsListJobsWorkflowRunFilter, per_page: i64, page: i64, @@ -402,8 +465,8 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/check-suites/{}/check-runs?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&check_suite_id.to_string()), query_ ), @@ -426,27 +489,25 @@ impl Checks { * * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. * - * To rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `check_suite_id: i64` -- check_suite_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `check_suite_id: i64` -- The unique identifier of the check suite. */ pub async fn rerequest_suite( &self, owner: &str, repo: &str, check_suite_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/check-suites/{}/rerequest", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&check_suite_id.to_string()), ), None, @@ -466,24 +527,27 @@ impl Checks { * * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/check-runs` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * > [!NOTE] + * > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. * - * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. * * `check_name: &str` -- Returns check runs with the specified `name`. - * * `status: crate::types::JobStatus` -- Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. - * * `filter: crate::types::ActionsListJobsWorkflowRunFilter` -- Filters jobs by their `completed_at` timestamp. Can be one of: - * \\* `latest`: Returns jobs from the most recent execution of the workflow run. - * \\* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `status: crate::types::JobStepsStatus` -- The phase of the lifecycle that the job is currently in. + * * `filter: crate::types::ActionsListJobsWorkflowRunFilter` -- Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". * * `app_id: i64` */ pub async fn list_for_ref( @@ -492,7 +556,7 @@ impl Checks { repo: &str, ref_: &str, check_name: &str, - status: crate::types::JobStatus, + status: crate::types::JobStepsStatus, filter: crate::types::ActionsListJobsWorkflowRunFilter, per_page: i64, page: i64, @@ -521,9 +585,9 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/commits/{}/check-runs?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), query_ ), None, @@ -543,21 +607,24 @@ impl Checks { * * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/check-suites` endpoint. * - * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * > [!NOTE] + * > The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. * - * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. * * `app_id: i64` -- Filters check suites by GitHub App `id`. * * `check_name: &str` -- Returns check runs with the specified `name`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_suites_for_ref( &self, @@ -586,9 +653,9 @@ impl Checks { let url = self.client.url( &format!( "/repos/{}/{}/commits/{}/check-suites?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), query_ ), None, diff --git a/github/src/classroom.rs b/github/src/classroom.rs new file mode 100644 index 00000000..addfaf88 --- /dev/null +++ b/github/src/classroom.rs @@ -0,0 +1,369 @@ +use crate::Client; +use crate::ClientResult; + +pub struct Classroom { + pub client: Client, +} + +impl Classroom { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + Classroom { client } + } + + /** + * Get an assignment. + * + * This function performs a `GET` to the `/assignments/{assignment_id}` endpoint. + * + * Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + * + * FROM: + * + * **Parameters:** + * + * * `assignment_id: i64` -- The unique identifier of the classroom assignment. + */ + pub async fn get_an_assignment( + &self, + assignment_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/assignments/{}", + crate::progenitor_support::encode_path(&assignment_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List accepted assignments for an assignment. + * + * This function performs a `GET` to the `/assignments/{assignment_id}/accepted_assignments` endpoint. + * + * Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + * + * FROM: + * + * **Parameters:** + * + * * `assignment_id: i64` -- The unique identifier of the classroom assignment. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_accepted_assignments_for_an_assignment( + &self, + assignment_id: i64, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/assignments/{}/accepted_assignments?{}", + crate::progenitor_support::encode_path(&assignment_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List accepted assignments for an assignment. + * + * This function performs a `GET` to the `/assignments/{assignment_id}/accepted_assignments` endpoint. + * + * As opposed to `list_accepted_assignments_for_an_assignment`, this function returns all the pages of the request at once. + * + * Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + * + * FROM: + */ + pub async fn list_all_accepted_assignments_for_an_assignment( + &self, + assignment_id: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/assignments/{}/accepted_assignments", + crate::progenitor_support::encode_path(&assignment_id.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get assignment grades. + * + * This function performs a `GET` to the `/assignments/{assignment_id}/grades` endpoint. + * + * Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + * + * FROM: + * + * **Parameters:** + * + * * `assignment_id: i64` -- The unique identifier of the classroom assignment. + */ + pub async fn get_assignment_grades( + &self, + assignment_id: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/assignments/{}/grades", + crate::progenitor_support::encode_path(&assignment_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get assignment grades. + * + * This function performs a `GET` to the `/assignments/{assignment_id}/grades` endpoint. + * + * As opposed to `get_assignment_grades`, this function returns all the pages of the request at once. + * + * Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + * + * FROM: + */ + pub async fn get_all_assignment_grades( + &self, + assignment_id: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/assignments/{}/grades", + crate::progenitor_support::encode_path(&assignment_id.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List classrooms. + * + * This function performs a `GET` to the `/classrooms` endpoint. + * + * Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + * + * FROM: + * + * **Parameters:** + * + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_classrooms( + &self, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url(&format!("/classrooms?{}", query_), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List classrooms. + * + * This function performs a `GET` to the `/classrooms` endpoint. + * + * As opposed to `list_classrooms`, this function returns all the pages of the request at once. + * + * Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + * + * FROM: + */ + pub async fn list_all_classrooms( + &self, + ) -> ClientResult>> { + let url = self.client.url(&"/classrooms".to_string(), None); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a classroom. + * + * This function performs a `GET` to the `/classrooms/{classroom_id}` endpoint. + * + * Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom. + * + * FROM: + * + * **Parameters:** + * + * * `classroom_id: i64` -- The unique identifier of the classroom. + */ + pub async fn get_a_classroom( + &self, + classroom_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/classrooms/{}", + crate::progenitor_support::encode_path(&classroom_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List assignments for a classroom. + * + * This function performs a `GET` to the `/classrooms/{classroom_id}/assignments` endpoint. + * + * Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + * + * FROM: + * + * **Parameters:** + * + * * `classroom_id: i64` -- The unique identifier of the classroom. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_assignments_for_a_classroom( + &self, + classroom_id: i64, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/classrooms/{}/assignments?{}", + crate::progenitor_support::encode_path(&classroom_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List assignments for a classroom. + * + * This function performs a `GET` to the `/classrooms/{classroom_id}/assignments` endpoint. + * + * As opposed to `list_assignments_for_a_classroom`, this function returns all the pages of the request at once. + * + * Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + * + * FROM: + */ + pub async fn list_all_assignments_for_a_classroom( + &self, + classroom_id: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/classrooms/{}/assignments", + crate::progenitor_support::encode_path(&classroom_id.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/code_scanning.rs b/github/src/code_scanning.rs index 0c399a42..9e746380 100644 --- a/github/src/code_scanning.rs +++ b/github/src/code_scanning.rs @@ -11,33 +11,213 @@ impl CodeScanning { CodeScanning { client } } + /** + * List code scanning alerts for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/code-scanning/alerts` endpoint. + * + * Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `tool_name: &str` -- The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. + * * `tool_guid: &str` -- The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `state: crate::types::CodeScanningAlertStateQuery` -- If specified, only code scanning alerts with this state will be returned. + * * `sort: crate::types::SortData` -- The property by which to sort the results. + * * `severity: crate::types::CodeScanningAlertSeverity` -- If specified, only code scanning alerts with this severity will be returned. + * * `assignees: &str` -- Filter alerts by assignees. Provide a comma-separated list of user handles (e.g., `octocat` or `octocat,hubot`). + * Use `*` to list alerts with at least one assignee or `none` to list alerts with no assignees. + * . + */ + pub async fn list_alerts_for_org( + &self, + org: &str, + tool_name: &str, + tool_guid: &str, + before: &str, + after: &str, + page: i64, + per_page: i64, + direction: crate::types::Order, + state: crate::types::CodeScanningAlertStateQuery, + sort: crate::types::SortData, + severity: crate::types::CodeScanningAlertSeverity, + assignees: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignees.is_empty() { + query_args.push(("assignees".to_string(), assignees.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !severity.to_string().is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + if !tool_guid.is_empty() { + query_args.push(("tool_guid".to_string(), tool_guid.to_string())); + } + if !tool_name.is_empty() { + query_args.push(("tool_name".to_string(), tool_name.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/code-scanning/alerts?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List code scanning alerts for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/code-scanning/alerts` endpoint. + * + * As opposed to `list_alerts_for_org`, this function returns all the pages of the request at once. + * + * Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + */ + pub async fn list_all_alerts_for_org( + &self, + org: &str, + tool_name: &str, + tool_guid: &str, + before: &str, + after: &str, + direction: crate::types::Order, + state: crate::types::CodeScanningAlertStateQuery, + sort: crate::types::SortData, + severity: crate::types::CodeScanningAlertSeverity, + assignees: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignees.is_empty() { + query_args.push(("assignees".to_string(), assignees.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !severity.to_string().is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + if !tool_guid.is_empty() { + query_args.push(("tool_guid".to_string(), tool_guid.to_string())); + } + if !tool_name.is_empty() { + query_args.push(("tool_name".to_string(), tool_name.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/code-scanning/alerts?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * List code scanning alerts for a repository. * * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/alerts` endpoint. * - * Lists all open code scanning alerts for the default branch (usually `main` - * or `master`). You must use an access token with the `security_events` scope to use - * this endpoint. GitHub Apps must have the `security_events` read permission to use - * this endpoint. + * Lists code scanning alerts. * * The response includes a `most_recent_instance` object. * This provides details of the most recent instance of this alert - * for the default branch or for the specified Git reference - * (if you used `ref` in the request). + * for the default branch (or for the specified Git reference if you used `ref` in the request). + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `tool_name: &str` -- The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. * * `tool_guid: &str` -- The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". * * `ref_: &str` -- The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. - * * `state: crate::types::CodeScanningAlertState` -- Set to `open`, `fixed`, or `dismissed` to list code scanning alerts in a specific state. + * * `pr: i64` -- The number of the pull request for the results you want to list. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `sort: crate::types::SortData` -- The property by which to sort the results. + * * `state: crate::types::CodeScanningAlertStateQuery` -- If specified, only code scanning alerts with this state will be returned. + * * `severity: crate::types::CodeScanningAlertSeverity` -- If specified, only code scanning alerts with this severity will be returned. + * * `assignees: &str` -- Filter alerts by assignees. Provide a comma-separated list of user handles (e.g., `octocat` or `octocat,hubot`). + * Use `*` to list alerts with at least one assignee or `none` to list alerts with no assignees. + * . */ pub async fn list_alerts_for_repo( &self, @@ -48,18 +228,46 @@ impl CodeScanning { page: i64, per_page: i64, ref_: &str, - state: crate::types::CodeScanningAlertState, + pr: i64, + direction: crate::types::Order, + before: &str, + after: &str, + sort: crate::types::SortData, + state: crate::types::CodeScanningAlertStateQuery, + severity: crate::types::CodeScanningAlertSeverity, + assignees: &str, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignees.is_empty() { + query_args.push(("assignees".to_string(), assignees.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if pr > 0 { + query_args.push(("pr".to_string(), pr.to_string())); + } if !ref_.is_empty() { query_args.push(("ref".to_string(), ref_.to_string())); } + if !severity.to_string().is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } @@ -73,8 +281,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/alerts?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -96,17 +304,15 @@ impl CodeScanning { * * As opposed to `list_alerts_for_repo`, this function returns all the pages of the request at once. * - * Lists all open code scanning alerts for the default branch (usually `main` - * or `master`). You must use an access token with the `security_events` scope to use - * this endpoint. GitHub Apps must have the `security_events` read permission to use - * this endpoint. + * Lists code scanning alerts. * * The response includes a `most_recent_instance` object. * This provides details of the most recent instance of this alert - * for the default branch or for the specified Git reference - * (if you used `ref` in the request). + * for the default branch (or for the specified Git reference if you used `ref` in the request). * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: */ pub async fn list_all_alerts_for_repo( &self, @@ -115,12 +321,40 @@ impl CodeScanning { tool_name: &str, tool_guid: &str, ref_: &str, - state: crate::types::CodeScanningAlertState, + pr: i64, + direction: crate::types::Order, + before: &str, + after: &str, + sort: crate::types::SortData, + state: crate::types::CodeScanningAlertStateQuery, + severity: crate::types::CodeScanningAlertSeverity, + assignees: &str, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignees.is_empty() { + query_args.push(("assignees".to_string(), assignees.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if pr > 0 { + query_args.push(("pr".to_string(), pr.to_string())); + } if !ref_.is_empty() { query_args.push(("ref".to_string(), ref_.to_string())); } + if !severity.to_string().is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } @@ -134,8 +368,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/alerts?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -155,17 +389,16 @@ impl CodeScanning { * * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}` endpoint. * - * Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + * Gets a single code scanning alert. * - * **Deprecation notice**: - * The instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by `instances_url`. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ pub async fn get_alert( @@ -177,8 +410,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/alerts/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&alert_number.to_string()), ), None, @@ -198,14 +431,15 @@ impl CodeScanning { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}` endpoint. * - * Updates the status of a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint. + * Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ pub async fn update_alert( @@ -218,8 +452,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/alerts/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&alert_number.to_string()), ), None, @@ -234,23 +468,159 @@ impl CodeScanning { ) .await } + /** + * Get the status of an autofix for a code scanning alert. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix` endpoint. + * + * Gets the status and description of an autofix for a code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. + */ + pub async fn get_autofix( + &self, + owner: &str, + repo: &str, + alert_number: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/alerts/{}/autofix", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&alert_number.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create an autofix for a code scanning alert. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix` endpoint. + * + * Creates an autofix for a code scanning alert. + * + * If a new autofix is to be created as a result of this request or is currently being generated, then this endpoint will return a 202 Accepted response. + * + * If an autofix already exists for a given alert, then this endpoint will return a 200 OK response. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. + */ + pub async fn create_autofix( + &self, + owner: &str, + repo: &str, + alert_number: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/alerts/{}/autofix", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&alert_number.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Commit an autofix for a code scanning alert. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits` endpoint. + * + * Commits an autofix for a code scanning alert. + * + * If an autofix is committed as a result of this request, then this endpoint will return a 201 Created response. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. + */ + pub async fn commit_autofix( + &self, + owner: &str, + repo: &str, + alert_number: i64, + body: &crate::types::CodeScanningAutofixCommits, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/alerts/{}/autofix/commits", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&alert_number.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } /** * List instances of a code scanning alert. * * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances` endpoint. * - * Lists all instances of the specified code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + * Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". * * `ref_: &str` -- The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. + * * `pr: i64` -- The number of the pull request for the results you want to list. */ pub async fn list_alert_instances( &self, @@ -260,7 +630,8 @@ impl CodeScanning { page: i64, per_page: i64, ref_: &str, - ) -> ClientResult>> { + pr: i64, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -268,6 +639,9 @@ impl CodeScanning { if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if pr > 0 { + query_args.push(("pr".to_string(), pr.to_string())); + } if !ref_.is_empty() { query_args.push(("ref".to_string(), ref_.to_string())); } @@ -275,8 +649,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/alerts/{}/instances?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&alert_number.to_string()), query_ ), @@ -299,9 +673,11 @@ impl CodeScanning { * * As opposed to `list_alert_instances`, this function returns all the pages of the request at once. * - * Lists all instances of the specified code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + * Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: */ pub async fn list_all_alert_instances( &self, @@ -309,8 +685,12 @@ impl CodeScanning { repo: &str, alert_number: i64, ref_: &str, - ) -> ClientResult>> { + pr: i64, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if pr > 0 { + query_args.push(("pr".to_string(), pr.to_string())); + } if !ref_.is_empty() { query_args.push(("ref".to_string(), ref_.to_string())); } @@ -318,8 +698,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/alerts/{}/instances?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&alert_number.to_string()), query_ ), @@ -351,24 +731,26 @@ impl CodeScanning { * For very old analyses this data is not available, * and `0` is returned in this field. * - * You must use an access token with the `security_events` scope to use this endpoint. - * GitHub Apps must have the `security_events` read permission to use this endpoint. + * > [!WARNING] + * > **Closing down notice:** The `tool_name` field is closing down and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. * - * **Deprecation notice**: - * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `tool_name: &str` -- The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. * * `tool_guid: &str` -- The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `pr: i64` -- The number of the pull request for the results you want to list. * * `ref_: &str` -- The Git reference for the analyses you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. * * `sarif_id: &str` -- Filter analyses belonging to the same SARIF upload. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `sort: crate::types::CodeScanningListRecentAnalysesSort` -- The property by which to sort the results. */ pub async fn list_recent_analyses( &self, @@ -378,22 +760,34 @@ impl CodeScanning { tool_guid: &str, page: i64, per_page: i64, + pr: i64, ref_: &str, sarif_id: &str, + direction: crate::types::Order, + sort: crate::types::CodeScanningListRecentAnalysesSort, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if pr > 0 { + query_args.push(("pr".to_string(), pr.to_string())); + } if !ref_.is_empty() { query_args.push(("ref".to_string(), ref_.to_string())); } if !sarif_id.is_empty() { query_args.push(("sarif_id".to_string(), sarif_id.to_string())); } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } if !tool_guid.is_empty() { query_args.push(("tool_guid".to_string(), tool_guid.to_string())); } @@ -404,8 +798,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/analyses?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -438,13 +832,12 @@ impl CodeScanning { * For very old analyses this data is not available, * and `0` is returned in this field. * - * You must use an access token with the `security_events` scope to use this endpoint. - * GitHub Apps must have the `security_events` read permission to use this endpoint. + * > [!WARNING] + * > **Closing down notice:** The `tool_name` field is closing down and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. * - * **Deprecation notice**: - * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: */ pub async fn list_all_recent_analyses( &self, @@ -452,16 +845,28 @@ impl CodeScanning { repo: &str, tool_name: &str, tool_guid: &str, + pr: i64, ref_: &str, sarif_id: &str, + direction: crate::types::Order, + sort: crate::types::CodeScanningListRecentAnalysesSort, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if pr > 0 { + query_args.push(("pr".to_string(), pr.to_string())); + } if !ref_.is_empty() { query_args.push(("ref".to_string(), ref_.to_string())); } if !sarif_id.is_empty() { query_args.push(("sarif_id".to_string(), sarif_id.to_string())); } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } if !tool_guid.is_empty() { query_args.push(("tool_guid".to_string(), tool_guid.to_string())); } @@ -472,8 +877,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/analyses?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -494,8 +899,6 @@ impl CodeScanning { * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}` endpoint. * * Gets a specified code scanning analysis for a repository. - * You must use an access token with the `security_events` scope to use this endpoint. - * GitHub Apps must have the `security_events` read permission to use this endpoint. * * The default JSON response contains fields that describe the analysis. * This includes the Git reference and commit SHA to which the analysis relates, @@ -507,20 +910,18 @@ impl CodeScanning { * For very old analyses this data is not available, * and `0` is returned in this field. * - * If you use the Accept header `application/sarif+json`, - * the response contains the analysis data that was uploaded. - * This is formatted as - * [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. * - * **Deprecation notice**: - * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `analysis_id: i64` -- The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ pub async fn get_analysis( @@ -532,8 +933,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/analyses/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&analysis_id.to_string()), ), None, @@ -553,10 +954,7 @@ impl CodeScanning { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}` endpoint. * - * Deletes a specified code scanning analysis from a repository. For - * private repositories, you must use an access token with the `repo` scope. For public repositories, - * you must use an access token with `public_repo` and `repo:security_events` scopes. - * GitHub Apps must have the `security_events` write permission to use this endpoint. + * Deletes a specified code scanning analysis from a repository. * * You can delete one analysis at a time. * To delete a series of analyses, start with the most recent analysis and work backwards. @@ -576,8 +974,7 @@ impl CodeScanning { * * * `ref` * * `tool` - * * `analysis_key` - * * `environment` + * * `category` * * If you attempt to delete an analysis that is not the most recent in a set, * you'll get a 400 response with the message: @@ -587,13 +984,13 @@ impl CodeScanning { * ``` * * The response from a successful `DELETE` operation provides you with - * two alternative URLs for deleting the next analysis in the set - * (see the example default response below). + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis - * in the set. This is a useful option if you want to preserve at least one analysis + * in a set. This is a useful option if you want to preserve at least one analysis * for the specified tool in your repository. * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. - * When you delete the last analysis in a set the value of `next_analysis_url` and `confirm_delete_url` + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` * in the 200 response is `null`. * * As an example of the deletion process, @@ -603,9 +1000,11 @@ impl CodeScanning { * You therefore have two separate sets of analyses for this tool. * You've now decided that you want to remove all of the analyses for the tool. * To do this you must make 15 separate deletion requests. - * To start, you must find the deletable analysis for one of the sets, - * step through deleting the analyses in that set, - * and then repeat the process for the second set. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. * The procedure therefore consists of a nested loop: * * **Outer loop**: @@ -618,12 +1017,14 @@ impl CodeScanning { * * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `analysis_id: i64` -- The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. * * `confirm_delete: &str` -- Allow deletion if the specified analysis is the last in a set. If you attempt to delete the final analysis in a set without setting this parameter to `true`, you'll get a 400 response with the message: `Analysis is last of its type and deletion may result in the loss of historical alert data. Please specify confirm_delete.`. */ @@ -642,8 +1043,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/analyses/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&analysis_id.to_string()), query_ ), @@ -659,12 +1060,391 @@ impl CodeScanning { ) .await } + /** + * List CodeQL databases for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/codeql/databases` endpoint. + * + * Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn list_codeql_databases( + &self, + owner: &str, + repo: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/codeql/databases", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List CodeQL databases for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/codeql/databases` endpoint. + * + * As opposed to `list_codeql_databases`, this function returns all the pages of the request at once. + * + * Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + */ + pub async fn list_all_codeql_databases( + &self, + owner: &str, + repo: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/codeql/databases", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a CodeQL database for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}` endpoint. + * + * Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `language: &str` -- The language of the CodeQL database. + */ + pub async fn get_codeql_database( + &self, + owner: &str, + repo: &str, + language: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/codeql/databases/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&language.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a CodeQL database. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}` endpoint. + * + * Deletes a CodeQL database for a language in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `language: &str` -- The language of the CodeQL database. + */ + pub async fn delete_codeql_database( + &self, + owner: &str, + repo: &str, + language: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/codeql/databases/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&language.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a CodeQL variant analysis. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses` endpoint. + * + * Creates a new CodeQL variant analysis, which will run a CodeQL query against one or more repositories. + * + * Get started by learning more about [running CodeQL queries at scale with Multi-Repository Variant Analysis](https://docs.github.com/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis). + * + * Use the `owner` and `repo` parameters in the URL to specify the controller repository that + * will be used for running GitHub Actions workflows and storing the results of the CodeQL variant analysis. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_variant_analysis( + &self, + owner: &str, + repo: &str, + body: &crate::types::CodeScanningCreateVariantAnalysisRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/codeql/variant-analyses", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get the summary of a CodeQL variant analysis. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}` endpoint. + * + * Gets the summary of a CodeQL variant analysis. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `codeql_variant_analysis_id: i64` -- The unique identifier of the variant analysis. + */ + pub async fn get_variant_analysis( + &self, + owner: &str, + repo: &str, + codeql_variant_analysis_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/codeql/variant-analyses/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&codeql_variant_analysis_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get the analysis status of a repository in a CodeQL variant analysis. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}` endpoint. + * + * Gets the analysis status of a repository in a CodeQL variant analysis. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the controller repository. + * * `codeql_variant_analysis_id: i64` -- The ID of the variant analysis. + * * `repo_owner: &str` -- The account owner of the variant analysis repository. The name is not case sensitive. + * * `repo_name: &str` -- The name of the variant analysis repository. + */ + pub async fn get_variant_analysis_repo_task( + &self, + owner: &str, + repo: &str, + codeql_variant_analysis_id: i64, + repo_owner: &str, + repo_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/codeql/variant-analyses/{}/repos/{}/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&codeql_variant_analysis_id.to_string()), + crate::progenitor_support::encode_path(&repo_owner.to_string()), + crate::progenitor_support::encode_path(&repo_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a code scanning default setup configuration. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/default-setup` endpoint. + * + * Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_default_setup( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/default-setup", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a code scanning default setup configuration. + * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/code-scanning/default-setup` endpoint. + * + * Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn update_default_setup( + &self, + owner: &str, + repo: &str, + body: &crate::types::CodeScanningDefaultSetupUpdate, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-scanning/default-setup", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } /** * Upload an analysis as SARIF data. * * This function performs a `POST` to the `/repos/{owner}/{repo}/code-scanning/sarifs` endpoint. * - * Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint. + * Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." * * There are two places where you can upload code scanning results. * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." @@ -676,18 +1456,35 @@ impl CodeScanning { * gzip -c analysis-data.sarif | base64 -w0 * ``` * - * SARIF upload supports a maximum of 5000 results per analysis run. Any results over this limit are ignored and any SARIF uploads with more than 25,000 results are rejected. Typically, but not necessarily, a SARIF file contains a single run of a single tool. If a code scanning tool generates too many results, you should update the analysis configuration to run only the most important rules or queries. + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * The `202 Accepted`, response includes an `id` value. - * You can use this ID to check the status of the upload by using this for the `/sarifs/{sarif_id}` endpoint. - * For more information, see "[Get information about a SARIF upload](/rest/reference/code-scanning#get-information-about-a-sarif-upload)." + * This endpoint is limited to 1,000 requests per hour for each user or app installation calling it. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn upload_sarif( &self, @@ -698,8 +1495,8 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/sarifs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -718,14 +1515,15 @@ impl CodeScanning { * * This function performs a `GET` to the `/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}` endpoint. * - * Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository)." You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + * Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `sarif_id: &str` -- The SARIF ID obtained after uploading. */ pub async fn get_sarif( @@ -737,9 +1535,9 @@ impl CodeScanning { let url = self.client.url( &format!( "/repos/{}/{}/code-scanning/sarifs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(sarif_id), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&sarif_id.to_string()), ), None, ); diff --git a/github/src/code_security.rs b/github/src/code_security.rs new file mode 100644 index 00000000..a79a02f6 --- /dev/null +++ b/github/src/code_security.rs @@ -0,0 +1,1208 @@ +use crate::Client; +use crate::ClientResult; + +pub struct CodeSecurity { + pub client: Client, +} + +impl CodeSecurity { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + CodeSecurity { client } + } + + /** + * Get code security configurations for an enterprise. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/code-security/configurations` endpoint. + * + * Lists all code security configurations available in an enterprise. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn get_configurations_for_enterprise( + &self, + enterprise: &str, + per_page: i64, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get code security configurations for an enterprise. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/code-security/configurations` endpoint. + * + * As opposed to `get_configurations_for_enterprise`, this function returns all the pages of the request at once. + * + * Lists all code security configurations available in an enterprise. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + * + * FROM: + */ + pub async fn get_all_configurations_for_enterprise( + &self, + enterprise: &str, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a code security configuration for an enterprise. + * + * This function performs a `POST` to the `/enterprises/{enterprise}/code-security/configurations` endpoint. + * + * Creates a code security configuration in an enterprise. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + */ + pub async fn create_configuration_for_enterprise( + &self, + enterprise: &str, + body: &crate::types::CodeSecurityCreateConfigurationEnterpriseRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations", + crate::progenitor_support::encode_path(&enterprise.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get default code security configurations for an enterprise. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/code-security/configurations/defaults` endpoint. + * + * Lists the default code security configurations for an enterprise. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + */ + pub async fn get_default_configurations_for_enterprise( + &self, + enterprise: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/defaults", + crate::progenitor_support::encode_path(&enterprise.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get default code security configurations for an enterprise. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/code-security/configurations/defaults` endpoint. + * + * As opposed to `get_default_configurations_for_enterprise`, this function returns all the pages of the request at once. + * + * Lists the default code security configurations for an enterprise. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + * + * FROM: + */ + pub async fn get_all_default_configurations_for_enterprise( + &self, + enterprise: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/defaults", + crate::progenitor_support::encode_path(&enterprise.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Retrieve a code security configuration of an enterprise. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/code-security/configurations/{configuration_id}` endpoint. + * + * Gets a code security configuration available in an enterprise. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn get_single_configuration_for_enterprise( + &self, + enterprise: &str, + configuration_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a code security configuration for an enterprise. + * + * This function performs a `DELETE` to the `/enterprises/{enterprise}/code-security/configurations/{configuration_id}` endpoint. + * + * Deletes a code security configuration from an enterprise. + * Repositories attached to the configuration will retain their settings but will no longer be associated with + * the configuration. + * + * The authenticated user must be an administrator for the enterprise to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn delete_configuration_for_enterprise( + &self, + enterprise: &str, + configuration_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a custom code security configuration for an enterprise. + * + * This function performs a `PATCH` to the `/enterprises/{enterprise}/code-security/configurations/{configuration_id}` endpoint. + * + * Updates a code security configuration in an enterprise. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn update_enterprise_configuration( + &self, + enterprise: &str, + configuration_id: i64, + body: &crate::types::CodeSecurityUpdateEnterpriseConfigurationRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Attach an enterprise configuration to repositories. + * + * This function performs a `POST` to the `/enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach` endpoint. + * + * Attaches an enterprise code security configuration to repositories. If the repositories specified are already attached to a configuration, they will be re-attached to the provided configuration. + * + * If insufficient GHAS licenses are available to attach the configuration to a repository, only free features will be enabled. + * + * The authenticated user must be an administrator for the enterprise to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn attach_enterprise_configuration( + &self, + enterprise: &str, + configuration_id: i64, + body: &crate::types::CodeSecurityAttachEnterpriseConfigurationRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/{}/attach", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Set a code security configuration as a default for an enterprise. + * + * This function performs a `PUT` to the `/enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults` endpoint. + * + * Sets a code security configuration as a default to be applied to new repositories in your enterprise. + * + * This configuration will be applied by default to the matching repository type when created, but only for organizations within the enterprise that do not already have a default code security configuration set. + * + * The authenticated user must be an administrator for the enterprise to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn set_configuration_as_default_for_enterprise( + &self, + enterprise: &str, + configuration_id: i64, + body: &crate::types::CodeSecuritySetConfigurationAsDefaultRequest, + ) -> ClientResult> + { + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/{}/defaults", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get repositories associated with an enterprise code security configuration. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories` endpoint. + * + * Lists the repositories associated with an enterprise code security configuration in an organization. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `status: &str` -- A comma-separated list of statuses. If specified, only repositories with these attachment statuses will be returned. + * + * Can be: `all`, `attached`, `attaching`, `removed`, `enforced`, `failed`, `updating`, `removed_by_enterprise`. + */ + pub async fn get_repositories_for_enterprise_configuration( + &self, + enterprise: &str, + configuration_id: i64, + per_page: i64, + before: &str, + after: &str, + status: &str, + ) -> ClientResult>> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !status.is_empty() { + query_args.push(("status".to_string(), status.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/{}/repositories?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get repositories associated with an enterprise code security configuration. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories` endpoint. + * + * As opposed to `get_repositories_for_enterprise_configuration`, this function returns all the pages of the request at once. + * + * Lists the repositories associated with an enterprise code security configuration in an organization. + * + * The authenticated user must be an administrator of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:enterprise` scope to use this endpoint. + * + * FROM: + */ + pub async fn get_all_repositories_for_enterprise_configuration( + &self, + enterprise: &str, + configuration_id: i64, + before: &str, + after: &str, + status: &str, + ) -> ClientResult>> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !status.is_empty() { + query_args.push(("status".to_string(), status.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/code-security/configurations/{}/repositories?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get code security configurations for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/code-security/configurations` endpoint. + * + * Lists all code security configurations available in an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `target_type: crate::types::CodeSecurityGetConfigurationsOrgTargetType` -- The target type of the code security configuration. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn get_configurations_for_org( + &self, + org: &str, + target_type: crate::types::CodeSecurityGetConfigurationsOrgTargetType, + per_page: i64, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !target_type.to_string().is_empty() { + query_args.push(("target_type".to_string(), target_type.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get code security configurations for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/code-security/configurations` endpoint. + * + * As opposed to `get_configurations_for_org`, this function returns all the pages of the request at once. + * + * Lists all code security configurations available in an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + */ + pub async fn get_all_configurations_for_org( + &self, + org: &str, + target_type: crate::types::CodeSecurityGetConfigurationsOrgTargetType, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !target_type.to_string().is_empty() { + query_args.push(("target_type".to_string(), target_type.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a code security configuration. + * + * This function performs a `POST` to the `/orgs/{org}/code-security/configurations` endpoint. + * + * Creates a code security configuration in an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_configuration( + &self, + org: &str, + body: &crate::types::CodeSecurityCreateConfigurationRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get default code security configurations. + * + * This function performs a `GET` to the `/orgs/{org}/code-security/configurations/defaults` endpoint. + * + * Lists the default code security configurations for an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_default_configurations( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/defaults", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get default code security configurations. + * + * This function performs a `GET` to the `/orgs/{org}/code-security/configurations/defaults` endpoint. + * + * As opposed to `get_default_configurations`, this function returns all the pages of the request at once. + * + * Lists the default code security configurations for an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + */ + pub async fn get_all_default_configurations( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/defaults", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Detach configurations from repositories. + * + * This function performs a `DELETE` to the `/orgs/{org}/code-security/configurations/detach` endpoint. + * + * Detach code security configuration(s) from a set of repositories. + * Repositories will retain their settings but will no longer be associated with the configuration. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn detach_configuration( + &self, + org: &str, + body: &crate::types::CodeSecurityDetachConfigurationRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/detach", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a code security configuration. + * + * This function performs a `GET` to the `/orgs/{org}/code-security/configurations/{configuration_id}` endpoint. + * + * Gets a code security configuration available in an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn get_configuration( + &self, + org: &str, + configuration_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a code security configuration. + * + * This function performs a `DELETE` to the `/orgs/{org}/code-security/configurations/{configuration_id}` endpoint. + * + * Deletes the desired code security configuration from an organization. + * Repositories attached to the configuration will retain their settings but will no longer be associated with + * the configuration. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn delete_configuration( + &self, + org: &str, + configuration_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a code security configuration. + * + * This function performs a `PATCH` to the `/orgs/{org}/code-security/configurations/{configuration_id}` endpoint. + * + * Updates a code security configuration in an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn update_configuration( + &self, + org: &str, + configuration_id: i64, + body: &crate::types::CodeSecurityUpdateConfigurationRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Attach a configuration to repositories. + * + * This function performs a `POST` to the `/orgs/{org}/code-security/configurations/{configuration_id}/attach` endpoint. + * + * Attach a code security configuration to a set of repositories. If the repositories specified are already attached to a configuration, they will be re-attached to the provided configuration. + * + * If insufficient GHAS licenses are available to attach the configuration to a repository, only free features will be enabled. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn attach_configuration( + &self, + org: &str, + configuration_id: i64, + body: &crate::types::CodeSecurityAttachConfigurationRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/{}/attach", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Set a code security configuration as a default for an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/code-security/configurations/{configuration_id}/defaults` endpoint. + * + * Sets a code security configuration as a default to be applied to new repositories in your organization. + * + * This configuration will be applied to the matching repository type (all, none, public, private and internal) by default when they are created. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + */ + pub async fn set_configuration_as_default( + &self, + org: &str, + configuration_id: i64, + body: &crate::types::CodeSecuritySetConfigurationAsDefaultRequest, + ) -> ClientResult> + { + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/{}/defaults", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get repositories associated with a code security configuration. + * + * This function performs a `GET` to the `/orgs/{org}/code-security/configurations/{configuration_id}/repositories` endpoint. + * + * Lists the repositories associated with a code security configuration in an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `configuration_id: i64` -- The unique identifier of the code security configuration. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `status: &str` -- A comma-separated list of statuses. If specified, only repositories with these attachment statuses will be returned. + * + * Can be: `all`, `attached`, `attaching`, `detached`, `removed`, `enforced`, `failed`, `updating`, `removed_by_enterprise`. + */ + pub async fn get_repositories_for_configuration( + &self, + org: &str, + configuration_id: i64, + per_page: i64, + before: &str, + after: &str, + status: &str, + ) -> ClientResult>> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !status.is_empty() { + query_args.push(("status".to_string(), status.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get repositories associated with a code security configuration. + * + * This function performs a `GET` to the `/orgs/{org}/code-security/configurations/{configuration_id}/repositories` endpoint. + * + * As opposed to `get_repositories_for_configuration`, this function returns all the pages of the request at once. + * + * Lists the repositories associated with a code security configuration in an organization. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + */ + pub async fn get_all_repositories_for_configuration( + &self, + org: &str, + configuration_id: i64, + before: &str, + after: &str, + status: &str, + ) -> ClientResult>> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !status.is_empty() { + query_args.push(("status".to_string(), status.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/code-security/configurations/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&configuration_id.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get the code security configuration associated with a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/code-security-configuration` endpoint. + * + * Get the code security configuration that manages a repository's code security settings. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_configuration_for_repository( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/code-security-configuration", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/codes_of_conduct.rs b/github/src/codes_of_conduct.rs index 9a290b03..c4a092cd 100644 --- a/github/src/codes_of_conduct.rs +++ b/github/src/codes_of_conduct.rs @@ -16,14 +16,14 @@ impl CodesOfConduct { * * This function performs a `GET` to the `/codes_of_conduct` endpoint. * + * Returns array of all GitHub's codes of conduct. * - * - * FROM: + * FROM: */ pub async fn get_all_codes_of_conduct( &self, ) -> ClientResult>> { - let url = self.client.url("/codes_of_conduct", None); + let url = self.client.url(&"/codes_of_conduct".to_string(), None); self.client .get( &url, @@ -41,14 +41,14 @@ impl CodesOfConduct { * * As opposed to `get_all_codes_of_conduct`, this function returns all the pages of the request at once. * + * Returns array of all GitHub's codes of conduct. * - * - * FROM: + * FROM: */ pub async fn get_all_all_codes_of_conduct( &self, ) -> ClientResult>> { - let url = self.client.url("/codes_of_conduct", None); + let url = self.client.url(&"/codes_of_conduct".to_string(), None); self.client .get_all_pages( &url, @@ -64,9 +64,9 @@ impl CodesOfConduct { * * This function performs a `GET` to the `/codes_of_conduct/{key}` endpoint. * + * Returns information about the specified GitHub code of conduct. * - * - * FROM: + * FROM: * * **Parameters:** * @@ -79,46 +79,7 @@ impl CodesOfConduct { let url = self.client.url( &format!( "/codes_of_conduct/{}", - crate::progenitor_support::encode_path(key), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Get the code of conduct for a repository. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/community/code_of_conduct` endpoint. - * - * Returns the contents of the repository's code of conduct file, if one is detected. - * - * A code of conduct is detected if there is a file named `CODE_OF_CONDUCT` in the root directory of the repository. GitHub detects which code of conduct it is using fuzzy matching. - * - * FROM: - * - * **Parameters:** - * - * * `owner: &str` - * * `repo: &str` - */ - pub async fn get_for_repo( - &self, - owner: &str, - repo: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/repos/{}/{}/community/code_of_conduct", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&key.to_string()), ), None, ); diff --git a/github/src/codespaces.rs b/github/src/codespaces.rs new file mode 100644 index 00000000..f542b883 --- /dev/null +++ b/github/src/codespaces.rs @@ -0,0 +1,2034 @@ +use crate::Client; +use crate::ClientResult; + +pub struct Codespaces { + pub client: Client, +} + +impl Codespaces { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + Codespaces { client } + } + + /** + * List codespaces for the organization. + * + * This function performs a `GET` to the `/orgs/{org}/codespaces` endpoint. + * + * Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn list_in_organization( + &self, + per_page: i64, + page: i64, + org: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/codespaces?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Manage access control for organization codespaces. + * + * This function performs a `PUT` to the `/orgs/{org}/codespaces/access` endpoint. + * + * Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn set_codespaces_access( + &self, + org: &str, + body: &crate::types::CodespacesSetAccessRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/access", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add users to Codespaces access for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/codespaces/access/selected_users` endpoint. + * + * Codespaces for the specified users will be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn set_codespaces_access_users( + &self, + org: &str, + body: &crate::types::CopilotAddSeatsUsersRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/access/selected_users", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Remove users from Codespaces access for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/codespaces/access/selected_users` endpoint. + * + * Codespaces for the specified users will no longer be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn delete_codespaces_access_users( + &self, + org: &str, + body: &crate::types::CopilotAddSeatsUsersRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/access/selected_users", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List organization secrets. + * + * This function performs a `GET` to the `/orgs/{org}/codespaces/secrets` endpoint. + * + * Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_org_secrets( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an organization public key. + * + * This function performs a `GET` to the `/orgs/{org}/codespaces/secrets/public-key` endpoint. + * + * Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_org_public_key( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/public-key", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an organization secret. + * + * This function performs a `GET` to the `/orgs/{org}/codespaces/secrets/{secret_name}` endpoint. + * + * Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn get_org_secret( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/codespaces/secrets/{secret_name}` endpoint. + * + * Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_org_secret( + &self, + org: &str, + secret_name: &str, + body: &crate::types::CodespacesCreateUpdateOrgSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete an organization secret. + * + * This function performs a `DELETE` to the `/orgs/{org}/codespaces/secrets/{secret_name}` endpoint. + * + * Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_org_secret( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List selected repositories for an organization secret. + * + * This function performs a `GET` to the `/orgs/{org}/codespaces/secrets/{secret_name}/repositories` endpoint. + * + * Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_selected_repos_for_org_secret( + &self, + org: &str, + secret_name: &str, + page: i64, + per_page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set selected repositories for an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/codespaces/secrets/{secret_name}/repositories` endpoint. + * + * Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn set_selected_repos_for_org_secret( + &self, + org: &str, + secret_name: &str, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/{}/repositories", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add selected repository to an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn add_selected_repo_to_org_secret( + &self, + org: &str, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove selected repository from an organization secret. + * + * This function performs a `DELETE` to the `/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn remove_selected_repo_from_org_secret( + &self, + org: &str, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/codespaces/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List codespaces for a user in organization. + * + * This function performs a `GET` to the `/orgs/{org}/members/{username}/codespaces` endpoint. + * + * Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn get_codespaces_for_user_in_org( + &self, + per_page: i64, + page: i64, + org: &str, + username: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/members/{}/codespaces?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a codespace from the organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/members/{username}/codespaces/{codespace_name}` endpoint. + * + * Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn delete_from_organization( + &self, + org: &str, + username: &str, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/members/{}/codespaces/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Stop a codespace for an organization user. + * + * This function performs a `POST` to the `/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop` endpoint. + * + * Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn stop_in_organization( + &self, + org: &str, + username: &str, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/members/{}/codespaces/{}/stop", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List codespaces in a repository for the authenticated user. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces` endpoint. + * + * Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn list_in_repository_for_authenticated_user( + &self, + per_page: i64, + page: i64, + owner: &str, + repo: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a codespace in a repository. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/codespaces` endpoint. + * + * Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_with_repo_for_authenticated_user( + &self, + owner: &str, + repo: &str, + body: &crate::types::CodespacesCreateWithRepoRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List devcontainer configurations in a repository for the authenticated user. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces/devcontainers` endpoint. + * + * Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn list_devcontainers_in_repository_for_authenticated_user( + &self, + per_page: i64, + page: i64, + owner: &str, + repo: &str, + ) -> ClientResult> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/devcontainers?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List available machine types for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces/machines` endpoint. + * + * List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `location: &str` -- The location to check for available machines. Assigned by IP if not provided. + * * `client_ip: &str` -- IP for location auto-detection when proxying a request. + * * `ref_: &str` -- The branch or commit to check for prebuild availability and devcontainer restrictions. + */ + pub async fn repo_machines_for_authenticated_user( + &self, + owner: &str, + repo: &str, + location: &str, + client_ip: &str, + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !client_ip.is_empty() { + query_args.push(("client_ip".to_string(), client_ip.to_string())); + } + if !location.is_empty() { + query_args.push(("location".to_string(), location.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/machines?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get default attributes for a codespace. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces/new` endpoint. + * + * Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The branch or commit to check for a default devcontainer path. If not specified, the default branch will be checked. + * * `client_ip: &str` -- An alternative IP for default location auto-detection, such as when proxying a request. + */ + pub async fn pre_flight_with_repo_for_authenticated_user( + &self, + owner: &str, + repo: &str, + ref_: &str, + client_ip: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !client_ip.is_empty() { + query_args.push(("client_ip".to_string(), client_ip.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/new?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Check if permissions defined by a devcontainer have been accepted by the authenticated user. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces/permissions_check` endpoint. + * + * Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The git reference that points to the location of the devcontainer configuration to use for the permission check. The value of `ref` will typically be a branch name (`heads/BRANCH_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + * * `devcontainer_path: &str` -- Path to the devcontainer.json configuration to use for the permission check. + */ + pub async fn check_permissions_for_devcontainer( + &self, + owner: &str, + repo: &str, + ref_: &str, + devcontainer_path: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !devcontainer_path.is_empty() { + query_args.push(( + "devcontainer_path".to_string(), + devcontainer_path.to_string(), + )); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/permissions_check?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository secrets. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces/secrets` endpoint. + * + * Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_repo_secrets( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/secrets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a repository public key. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces/secrets/public-key` endpoint. + * + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_repo_public_key( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/secrets/public-key", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a repository secret. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/codespaces/secrets/{secret_name}` endpoint. + * + * Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn get_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update a repository secret. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/codespaces/secrets/{secret_name}` endpoint. + * + * Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The associated user must be a repository admin. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + body: &crate::types::CodespacesCreateUpdateRepoSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete a repository secret. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/codespaces/secrets/{secret_name}` endpoint. + * + * Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The associated user must be a repository admin. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a codespace from a pull request. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/pulls/{pull_number}/codespaces` endpoint. + * + * Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + */ + pub async fn create_with_pr_for_authenticated_user( + &self, + owner: &str, + repo: &str, + pull_number: i64, + body: &crate::types::CodespacesCreateWithPrRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/pulls/{}/codespaces", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&pull_number.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List codespaces for the authenticated user. + * + * This function performs a `GET` to the `/user/codespaces` endpoint. + * + * Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `repository_id: i64` -- ID of the Repository to filter on. + */ + pub async fn list_for_authenticated_user( + &self, + per_page: i64, + page: i64, + repository_id: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if repository_id > 0 { + query_args.push(("repository_id".to_string(), repository_id.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self + .client + .url(&format!("/user/codespaces?{}", query_), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a codespace for the authenticated user. + * + * This function performs a `POST` to the `/user/codespaces` endpoint. + * + * Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + */ + pub async fn create_for_authenticated_user( + &self, + body: &crate::types::CodespacesCreateRequestOneOf, + ) -> ClientResult> { + let url = self.client.url(&"/user/codespaces".to_string(), None); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List secrets for the authenticated user. + * + * This function performs a `GET` to the `/user/codespaces/secrets` endpoint. + * + * Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_secrets_for_authenticated_user( + &self, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self + .client + .url(&format!("/user/codespaces/secrets?{}", query_), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get public key for the authenticated user. + * + * This function performs a `GET` to the `/user/codespaces/secrets/public-key` endpoint. + * + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + */ + pub async fn get_public_key_for_authenticated_user( + &self, + ) -> ClientResult> { + let url = self + .client + .url(&"/user/codespaces/secrets/public-key".to_string(), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a secret for the authenticated user. + * + * This function performs a `GET` to the `/user/codespaces/secrets/{secret_name}` endpoint. + * + * Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn get_secret_for_authenticated_user( + &self, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update a secret for the authenticated user. + * + * This function performs a `PUT` to the `/user/codespaces/secrets/{secret_name}` endpoint. + * + * Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_secret_for_authenticated_user( + &self, + secret_name: &str, + body: &crate::types::CodespacesCreateUpdateSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete a secret for the authenticated user. + * + * This function performs a `DELETE` to the `/user/codespaces/secrets/{secret_name}` endpoint. + * + * Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_secret_for_authenticated_user( + &self, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/secrets/{}", + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List selected repositories for a user secret. + * + * This function performs a `GET` to the `/user/codespaces/secrets/{secret_name}/repositories` endpoint. + * + * List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn list_repositories_for_secret_for_authenticated_user( + &self, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/secrets/{}/repositories", + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set selected repositories for a user secret. + * + * This function performs a `PUT` to the `/user/codespaces/secrets/{secret_name}/repositories` endpoint. + * + * Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn set_repositories_for_secret_for_authenticated_user( + &self, + secret_name: &str, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/secrets/{}/repositories", + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add a selected repository to a user secret. + * + * This function performs a `PUT` to the `/user/codespaces/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn add_repository_for_secret_for_authenticated_user( + &self, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove a selected repository from a user secret. + * + * This function performs a `DELETE` to the `/user/codespaces/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn remove_repository_for_secret_for_authenticated_user( + &self, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a codespace for the authenticated user. + * + * This function performs a `GET` to the `/user/codespaces/{codespace_name}` endpoint. + * + * Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn get_for_authenticated_user( + &self, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a codespace for the authenticated user. + * + * This function performs a `DELETE` to the `/user/codespaces/{codespace_name}` endpoint. + * + * Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn delete_for_authenticated_user( + &self, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a codespace for the authenticated user. + * + * This function performs a `PATCH` to the `/user/codespaces/{codespace_name}` endpoint. + * + * Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn update_for_authenticated_user( + &self, + codespace_name: &str, + body: &crate::types::CodespacesUpdateRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Export a codespace for the authenticated user. + * + * This function performs a `POST` to the `/user/codespaces/{codespace_name}/exports` endpoint. + * + * Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn export_for_authenticated_user( + &self, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}/exports", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get details about a codespace export. + * + * This function performs a `GET` to the `/user/codespaces/{codespace_name}/exports/{export_id}` endpoint. + * + * Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + * * `export_id: &str` -- The ID of the export operation, or `latest`. Currently only `latest` is currently supported. + */ + pub async fn get_export_details_for_authenticated_user( + &self, + codespace_name: &str, + export_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}/exports/{}", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + crate::progenitor_support::encode_path(&export_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List machine types for a codespace. + * + * This function performs a `GET` to the `/user/codespaces/{codespace_name}/machines` endpoint. + * + * List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn codespace_machines_for_authenticated_user( + &self, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}/machines", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a repository from an unpublished codespace. + * + * This function performs a `POST` to the `/user/codespaces/{codespace_name}/publish` endpoint. + * + * Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn publish_for_authenticated_user( + &self, + codespace_name: &str, + body: &crate::types::CodespacesPublishRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}/publish", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Start a codespace for the authenticated user. + * + * This function performs a `POST` to the `/user/codespaces/{codespace_name}/start` endpoint. + * + * Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn start_for_authenticated_user( + &self, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}/start", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Stop a codespace for the authenticated user. + * + * This function performs a `POST` to the `/user/codespaces/{codespace_name}/stop` endpoint. + * + * Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `codespace_name: &str` -- The name of the codespace. + */ + pub async fn stop_for_authenticated_user( + &self, + codespace_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/user/codespaces/{}/stop", + crate::progenitor_support::encode_path(&codespace_name.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/copilot.rs b/github/src/copilot.rs new file mode 100644 index 00000000..71c34d27 --- /dev/null +++ b/github/src/copilot.rs @@ -0,0 +1,599 @@ +use crate::Client; +use crate::ClientResult; + +pub struct Copilot { + pub client: Client, +} + +impl Copilot { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + Copilot { client } + } + + /** + * Get Copilot seat information and settings for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/copilot/billing` endpoint. + * + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and feature policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)." + * + * Only organization owners can view details about the organization's Copilot Business or Copilot Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_copilot_organization_details( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/copilot/billing", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List all Copilot seat assignments for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/copilot/billing/seats` endpoint. + * + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Lists all Copilot seats for which an organization with a Copilot Business or Copilot Enterprise subscription is currently being billed. + * Only organization owners can view assigned seats. + * + * Each seat object contains information about the assigned user's most recent Copilot activity. Users must have telemetry enabled in their IDE for Copilot in the IDE activity to be reflected in `last_activity_at`. + * For more information about activity data, see [Metrics data properties for GitHub Copilot](https://docs.github.com/copilot/reference/metrics-data). + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_copilot_seats( + &self, + org: &str, + page: i64, + per_page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/copilot/billing/seats?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Add teams to the Copilot subscription for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/copilot/billing/selected_teams` endpoint. + * + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed for each seat based on the organization's Copilot plan. For more information about Copilot pricing, see "[About billing for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/about-billing-for-github-copilot-in-your-organization)." + * + * Only organization owners can purchase Copilot seats for their organization members. The organization must have a Copilot Business or Copilot Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Subscribing to Copilot for your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/subscribing-to-copilot-for-your-organization)." + * For more information about setting a suggestion matching policy, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/setting-policies-for-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#policies-for-suggestion-matching)." + * + * The response contains the total number of new seats that were created and existing seats that were refreshed. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn add_copilot_seats_for_teams( + &self, + org: &str, + body: &crate::types::CopilotAddSeatsTeamsRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/copilot/billing/selected_teams", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Remove teams from the Copilot subscription for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/copilot/billing/selected_teams` endpoint. + * + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Sets seats for all members of each team specified to "pending cancellation". + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle unless they retain access through another team. + * For more information about disabling access to Copilot, see "[Revoking access to Copilot for members of your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/revoking-access-to-copilot-for-members-of-your-organization)." + * + * Only organization owners can cancel Copilot seats for their organization members. + * + * The response contains the total number of seats set to "pending cancellation". + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn cancel_copilot_seat_assignment_for_teams( + &self, + org: &str, + body: &crate::types::CopilotAddSeatsTeamsRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/copilot/billing/selected_teams", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add users to the Copilot subscription for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/copilot/billing/selected_users` endpoint. + * + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed for each seat based on the organization's Copilot plan. For more information about Copilot pricing, see "[About billing for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/about-billing-for-github-copilot-in-your-organization)." + * + * Only organization owners can purchase Copilot seats for their organization members. The organization must have a Copilot Business or Copilot Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Subscribing to Copilot for your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-the-copilot-subscription-for-your-organization/subscribing-to-copilot-for-your-organization)." + * For more information about setting a suggestion matching policy, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/setting-policies-for-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#policies-for-suggestion-matching)." + * + * The response contains the total number of new seats that were created and existing seats that were refreshed. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn add_copilot_seats_for_users( + &self, + org: &str, + body: &crate::types::CopilotAddSeatsUsersRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/copilot/billing/selected_users", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Remove users from the Copilot subscription for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/copilot/billing/selected_users` endpoint. + * + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Sets seats for all users specified to "pending cancellation". + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle unless they retain access through team membership. + * For more information about disabling access to Copilot, see "[Revoking access to Copilot for members of your organization](https://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/revoking-access-to-copilot-for-members-of-your-organization)." + * + * Only organization owners can cancel Copilot seats for their organization members. + * + * The response contains the total number of seats set to "pending cancellation". + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:org` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn cancel_copilot_seat_assignment_for_users( + &self, + org: &str, + body: &crate::types::CopilotAddSeatsUsersRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/copilot/billing/selected_users", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get Copilot metrics for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/copilot/metrics` endpoint. + * + * Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions. + * + * > [!NOTE] + * > This endpoint will only return results for a given day if the organization contained **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day. + * + * The response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * To access this endpoint, the Copilot Metrics API access policy must be enabled for the organization. + * Only organization owners and owners and billing managers of the parent enterprise can view Copilot metrics. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `since: &str` -- Show usage metrics since this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). Maximum value is 100 days ago. + * * `until: &str` -- Show usage metrics until this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) and should not preceed the `since` date if it is passed. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of days of metrics to display per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn copilot_metrics_for_organization( + &self, + org: &str, + since: &str, + until: &str, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !since.is_empty() { + query_args.push(("since".to_string(), since.to_string())); + } + if !until.is_empty() { + query_args.push(("until".to_string(), until.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/copilot/metrics?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get Copilot metrics for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/copilot/metrics` endpoint. + * + * As opposed to `copilot_metrics_for_organization`, this function returns all the pages of the request at once. + * + * Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions. + * + * > [!NOTE] + * > This endpoint will only return results for a given day if the organization contained **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day. + * + * The response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * To access this endpoint, the Copilot Metrics API access policy must be enabled for the organization. + * Only organization owners and owners and billing managers of the parent enterprise can view Copilot metrics. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + * + * FROM: + */ + pub async fn get_all_copilot_metrics_for_organization( + &self, + org: &str, + since: &str, + until: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !since.is_empty() { + query_args.push(("since".to_string(), since.to_string())); + } + if !until.is_empty() { + query_args.push(("until".to_string(), until.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/copilot/metrics?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get Copilot seat assignment details for a user. + * + * This function performs a `GET` to the `/orgs/{org}/members/{username}/copilot` endpoint. + * + * > [!NOTE] + * > This endpoint is in public preview and is subject to change. + * + * Gets the GitHub Copilot seat details for a member of an organization who currently has access to GitHub Copilot. + * + * The seat object contains information about the user's most recent Copilot activity. Users must have telemetry enabled in their IDE for Copilot in the IDE activity to be reflected in `last_activity_at`. + * For more information about activity data, see [Metrics data properties for GitHub Copilot](https://docs.github.com/copilot/reference/metrics-data). + * + * Only organization owners can view Copilot seat assignment details for members of their organization. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:org` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn get_copilot_seat_details_for_user( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/members/{}/copilot", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get Copilot metrics for a team. + * + * This function performs a `GET` to the `/orgs/{org}/team/{team_slug}/copilot/metrics` endpoint. + * + * Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions. + * + * > [!NOTE] + * > This endpoint will only return results for a given day if the team had **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day. + * + * The response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * To access this endpoint, the Copilot Metrics API access policy must be enabled for the organization containing the team within GitHub settings. + * Only organization owners for the organization that contains this team and owners and billing managers of the parent enterprise can view Copilot metrics for a team. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `since: &str` -- Show usage metrics since this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). Maximum value is 100 days ago. + * * `until: &str` -- Show usage metrics until this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) and should not preceed the `since` date if it is passed. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of days of metrics to display per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn copilot_metrics_for_team( + &self, + org: &str, + team_slug: &str, + since: &str, + until: &str, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !since.is_empty() { + query_args.push(("since".to_string(), since.to_string())); + } + if !until.is_empty() { + query_args.push(("until".to_string(), until.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/team/{}/copilot/metrics?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get Copilot metrics for a team. + * + * This function performs a `GET` to the `/orgs/{org}/team/{team_slug}/copilot/metrics` endpoint. + * + * As opposed to `copilot_metrics_for_team`, this function returns all the pages of the request at once. + * + * Use this endpoint to see a breakdown of aggregated metrics for various GitHub Copilot features. See the response schema tab for detailed metrics definitions. + * + * > [!NOTE] + * > This endpoint will only return results for a given day if the team had **five or more members with active Copilot licenses** on that day, as evaluated at the end of that day. + * + * The response contains metrics for up to 100 days prior. Metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * To access this endpoint, the Copilot Metrics API access policy must be enabled for the organization containing the team within GitHub settings. + * Only organization owners for the organization that contains this team and owners and billing managers of the parent enterprise can view Copilot metrics for a team. + * + * OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + * + * FROM: + */ + pub async fn get_all_copilot_metrics_for_team( + &self, + org: &str, + team_slug: &str, + since: &str, + until: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !since.is_empty() { + query_args.push(("since".to_string(), since.to_string())); + } + if !until.is_empty() { + query_args.push(("until".to_string(), until.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/team/{}/copilot/metrics?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/credentials.rs b/github/src/credentials.rs new file mode 100644 index 00000000..4f838e81 --- /dev/null +++ b/github/src/credentials.rs @@ -0,0 +1,50 @@ +use crate::Client; +use crate::ClientResult; + +pub struct Credentials { + pub client: Client, +} + +impl Credentials { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + Credentials { client } + } + + /** + * Revoke a list of credentials. + * + * This function performs a `POST` to the `/credentials/revoke` endpoint. + * + * Submit a list of credentials to be revoked. This endpoint is intended to revoke credentials the caller does not own and may have found exposed on GitHub.com or elsewhere. It can also be used for credentials associated with an old user account that you no longer have access to. Credential owners will be notified of the revocation. + * + * This endpoint currently accepts the following credential types: + * - Personal access tokens (classic) + * - Fine-grained personal access tokens + * + * Revoked credentials may impact users on GitHub Free, Pro, & Team and GitHub Enterprise Cloud, and GitHub Enterprise Cloud with Enterprise Managed Users. + * GitHub cannot reactivate any credentials that have been revoked; new credentials will need to be generated. + * + * To prevent abuse, this API is limited to only 60 unauthenticated requests per hour and a max of 1000 tokens per API request. + * + * > [!NOTE] + * > Any authenticated requests will return a 403. + * + * FROM: + */ + pub async fn revoke( + &self, + body: &crate::types::CredentialsRevokeRequest, + ) -> ClientResult> { + let url = self.client.url(&"/credentials/revoke".to_string(), None); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } +} diff --git a/github/src/dependabot.rs b/github/src/dependabot.rs new file mode 100644 index 00000000..7bfd8b92 --- /dev/null +++ b/github/src/dependabot.rs @@ -0,0 +1,1502 @@ +use crate::Client; +use crate::ClientResult; + +pub struct Dependabot { + pub client: Client, +} + +impl Dependabot { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + Dependabot { client } + } + + /** + * List Dependabot alerts for an enterprise. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/dependabot/alerts` endpoint. + * + * Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `state: &str` -- A comma-separated list of states. If specified, only alerts with these states will be returned. + * + * Can be: `auto_dismissed`, `dismissed`, `fixed`, `open`. + * * `severity: &str` -- A comma-separated list of severities. If specified, only alerts with these severities will be returned. + * + * Can be: `low`, `medium`, `high`, `critical`. + * * `ecosystem: &str` -- A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned. + * + * Can be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust`. + * * `package: &str` -- A comma-separated list of package names. If specified, only alerts for these packages will be returned. + * * `epss_percentage: &str` -- CVE Exploit Prediction Scoring System (EPSS) percentage. Can be specified as: + * - An exact number (`n`) + * - Comparators such as `>n`, `=n`, `<=n` + * - A range like `n..n`, where `n` is a number from 0.0 to 1.0 + * + * Filters the list of alerts based on EPSS percentages. If specified, only alerts with the provided EPSS percentages will be returned. + * * `has: &str` -- Filters the list of alerts based on whether the alert has the given value. If specified, only alerts meeting this criterion will be returned. + * Multiple `has` filters can be passed to filter for alerts that have all of the values. Currently, only `patch` is supported. + * * `scope: crate::types::Scope` -- The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned. + * * `sort: crate::types::Sort` -- The property by which to sort the results. + * `created` means when the alert was created. + * `updated` means when the alert's state last changed. + * `epss_percentage` sorts alerts by the Exploit Prediction Scoring System (EPSS) percentage. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_alerts_for_enterprise( + &self, + enterprise: &str, + state: &str, + severity: &str, + ecosystem: &str, + package: &str, + epss_percentage: &str, + has: &str, + scope: crate::types::Scope, + sort: crate::types::Sort, + direction: crate::types::Order, + before: &str, + after: &str, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !has.is_empty() { + query_args.push(("has".to_string(), has.to_string())); + } + if !package.is_empty() { + query_args.push(("package".to_string(), package.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !scope.to_string().is_empty() { + query_args.push(("scope".to_string(), scope.to_string())); + } + if !severity.is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/dependabot/alerts?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List Dependabot alerts for an enterprise. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/dependabot/alerts` endpoint. + * + * As opposed to `list_alerts_for_enterprise`, this function returns all the pages of the request at once. + * + * Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_alerts_for_enterprise( + &self, + enterprise: &str, + state: &str, + severity: &str, + ecosystem: &str, + package: &str, + epss_percentage: &str, + has: &str, + scope: crate::types::Scope, + sort: crate::types::Sort, + direction: crate::types::Order, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !has.is_empty() { + query_args.push(("has".to_string(), has.to_string())); + } + if !package.is_empty() { + query_args.push(("package".to_string(), package.to_string())); + } + if !scope.to_string().is_empty() { + query_args.push(("scope".to_string(), scope.to_string())); + } + if !severity.is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/dependabot/alerts?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Lists the repositories Dependabot can access in an organization. + * + * This function performs a `GET` to the `/organizations/{org}/dependabot/repository-access` endpoint. + * + * Lists repositories that organization admins have allowed Dependabot to access when updating dependencies. + * > [!NOTE] + * > This operation supports both server-to-server and user-to-server access. + * Unauthorized users will not see the existence of this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `page: i64` -- The page number of results to fetch. + * * `per_page: i64` -- Number of results per page. + */ + pub async fn repository_access_for_org( + &self, + org: &str, + page: i64, + per_page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/organizations/{}/dependabot/repository-access?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Updates Dependabot's repository access list for an organization. + * + * This function performs a `PATCH` to the `/organizations/{org}/dependabot/repository-access` endpoint. + * + * Updates repositories according to the list of repositories that organization admins have given Dependabot access to when they've updated dependencies. + * + * > [!NOTE] + * > This operation supports both server-to-server and user-to-server access. + * Unauthorized users will not see the existence of this endpoint. + * + * **Example request body:** + * ```json + * { + * "repository_ids_to_add": [123, 456], + * "repository_ids_to_remove": [789] + * } + * ``` + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn update_repository_access_for_org( + &self, + org: &str, + body: &crate::types::DependabotUpdateRepositoryAccessOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/organizations/{}/dependabot/repository-access", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Set the default repository access level for Dependabot. + * + * This function performs a `PUT` to the `/organizations/{org}/dependabot/repository-access/default-level` endpoint. + * + * Sets the default level of repository access Dependabot will have while performing an update. Available values are: + * - 'public' - Dependabot will only have access to public repositories, unless access is explicitly granted to non-public repositories. + * - 'internal' - Dependabot will only have access to public and internal repositories, unless access is explicitly granted to private repositories. + * + * Unauthorized users will not see the existence of this endpoint. + * + * This operation supports both server-to-server and user-to-server access. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn set_repository_access_default_level( + &self, + org: &str, + body: &crate::types::DependabotSetRepositoryAccessDefaultLevelRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/organizations/{}/dependabot/repository-access/default-level", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List Dependabot alerts for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/dependabot/alerts` endpoint. + * + * Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `state: &str` -- A comma-separated list of states. If specified, only alerts with these states will be returned. + * + * Can be: `auto_dismissed`, `dismissed`, `fixed`, `open`. + * * `severity: &str` -- A comma-separated list of severities. If specified, only alerts with these severities will be returned. + * + * Can be: `low`, `medium`, `high`, `critical`. + * * `ecosystem: &str` -- A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned. + * + * Can be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust`. + * * `package: &str` -- A comma-separated list of package names. If specified, only alerts for these packages will be returned. + * * `epss_percentage: &str` -- CVE Exploit Prediction Scoring System (EPSS) percentage. Can be specified as: + * - An exact number (`n`) + * - Comparators such as `>n`, `=n`, `<=n` + * - A range like `n..n`, where `n` is a number from 0.0 to 1.0 + * + * Filters the list of alerts based on EPSS percentages. If specified, only alerts with the provided EPSS percentages will be returned. + * * `artifact_registry_url: &str` -- A comma-separated list of artifact registry URLs. If specified, only alerts for repositories with storage records matching these URLs will be returned. + * * `artifact_registry: &str` -- A comma-separated list of Artifact Registry name strings. If specified, only alerts for repositories with storage records matching these registries will be returned. + * + * Can be: `jfrog-artifactory`. + * * `has: &str` -- Filters the list of alerts based on whether the alert has the given value. If specified, only alerts meeting this criterion will be returned. + * Multiple `has` filters can be passed to filter for alerts that have all of the values. + * * `runtime_risk: &str` -- A comma-separated list of runtime risk strings. If specified, only alerts for repositories with deployment records matching these risks will be returned. + * + * Can be: `critical-resource`, `internet-exposed`, `sensitive-data`, `lateral-movement`. + * * `scope: crate::types::Scope` -- The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned. + * * `sort: crate::types::Sort` -- The property by which to sort the results. + * `created` means when the alert was created. + * `updated` means when the alert's state last changed. + * `epss_percentage` sorts alerts by the Exploit Prediction Scoring System (EPSS) percentage. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_alerts_for_org( + &self, + org: &str, + state: &str, + severity: &str, + ecosystem: &str, + package: &str, + epss_percentage: &str, + artifact_registry_url: &str, + artifact_registry: &str, + has: &str, + runtime_risk: &str, + scope: crate::types::Scope, + sort: crate::types::Sort, + direction: crate::types::Order, + before: &str, + after: &str, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !artifact_registry.is_empty() { + query_args.push(( + "artifact_registry".to_string(), + artifact_registry.to_string(), + )); + } + if !artifact_registry_url.is_empty() { + query_args.push(( + "artifact_registry_url".to_string(), + artifact_registry_url.to_string(), + )); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !has.is_empty() { + query_args.push(("has".to_string(), has.to_string())); + } + if !package.is_empty() { + query_args.push(("package".to_string(), package.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !runtime_risk.is_empty() { + query_args.push(("runtime_risk".to_string(), runtime_risk.to_string())); + } + if !scope.to_string().is_empty() { + query_args.push(("scope".to_string(), scope.to_string())); + } + if !severity.is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/alerts?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List Dependabot alerts for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/dependabot/alerts` endpoint. + * + * As opposed to `list_alerts_for_org`, this function returns all the pages of the request at once. + * + * Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + */ + pub async fn list_all_alerts_for_org( + &self, + org: &str, + state: &str, + severity: &str, + ecosystem: &str, + package: &str, + epss_percentage: &str, + artifact_registry_url: &str, + artifact_registry: &str, + has: &str, + runtime_risk: &str, + scope: crate::types::Scope, + sort: crate::types::Sort, + direction: crate::types::Order, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !artifact_registry.is_empty() { + query_args.push(( + "artifact_registry".to_string(), + artifact_registry.to_string(), + )); + } + if !artifact_registry_url.is_empty() { + query_args.push(( + "artifact_registry_url".to_string(), + artifact_registry_url.to_string(), + )); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !has.is_empty() { + query_args.push(("has".to_string(), has.to_string())); + } + if !package.is_empty() { + query_args.push(("package".to_string(), package.to_string())); + } + if !runtime_risk.is_empty() { + query_args.push(("runtime_risk".to_string(), runtime_risk.to_string())); + } + if !scope.to_string().is_empty() { + query_args.push(("scope".to_string(), scope.to_string())); + } + if !severity.is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/alerts?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization secrets. + * + * This function performs a `GET` to the `/orgs/{org}/dependabot/secrets` endpoint. + * + * Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_org_secrets( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an organization public key. + * + * This function performs a `GET` to the `/orgs/{org}/dependabot/secrets/public-key` endpoint. + * + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_org_public_key( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/public-key", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an organization secret. + * + * This function performs a `GET` to the `/orgs/{org}/dependabot/secrets/{secret_name}` endpoint. + * + * Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn get_org_secret( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/dependabot/secrets/{secret_name}` endpoint. + * + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_org_secret( + &self, + org: &str, + secret_name: &str, + body: &crate::types::DependabotCreateUpdateOrgSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete an organization secret. + * + * This function performs a `DELETE` to the `/orgs/{org}/dependabot/secrets/{secret_name}` endpoint. + * + * Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_org_secret( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List selected repositories for an organization secret. + * + * This function performs a `GET` to the `/orgs/{org}/dependabot/secrets/{secret_name}/repositories` endpoint. + * + * Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_selected_repos_for_org_secret( + &self, + org: &str, + secret_name: &str, + page: i64, + per_page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set selected repositories for an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/dependabot/secrets/{secret_name}/repositories` endpoint. + * + * Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn set_selected_repos_for_org_secret( + &self, + org: &str, + secret_name: &str, + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/{}/repositories", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add selected repository to an organization secret. + * + * This function performs a `PUT` to the `/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn add_selected_repo_to_org_secret( + &self, + org: &str, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove selected repository from an organization secret. + * + * This function performs a `DELETE` to the `/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}` endpoint. + * + * Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + * * `repository_id: i64` + */ + pub async fn remove_selected_repo_from_org_secret( + &self, + org: &str, + secret_name: &str, + repository_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/dependabot/secrets/{}/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List Dependabot alerts for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependabot/alerts` endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `state: &str` -- A comma-separated list of states. If specified, only alerts with these states will be returned. + * + * Can be: `auto_dismissed`, `dismissed`, `fixed`, `open`. + * * `severity: &str` -- A comma-separated list of severities. If specified, only alerts with these severities will be returned. + * + * Can be: `low`, `medium`, `high`, `critical`. + * * `ecosystem: &str` -- A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned. + * + * Can be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust`. + * * `package: &str` -- A comma-separated list of package names. If specified, only alerts for these packages will be returned. + * * `manifest: &str` -- A comma-separated list of full manifest paths. If specified, only alerts for these manifests will be returned. + * * `epss_percentage: &str` -- CVE Exploit Prediction Scoring System (EPSS) percentage. Can be specified as: + * - An exact number (`n`) + * - Comparators such as `>n`, `=n`, `<=n` + * - A range like `n..n`, where `n` is a number from 0.0 to 1.0 + * + * Filters the list of alerts based on EPSS percentages. If specified, only alerts with the provided EPSS percentages will be returned. + * * `has: &str` -- Filters the list of alerts based on whether the alert has the given value. If specified, only alerts meeting this criterion will be returned. + * Multiple `has` filters can be passed to filter for alerts that have all of the values. Currently, only `patch` is supported. + * * `scope: crate::types::Scope` -- The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned. + * * `sort: crate::types::Sort` -- The property by which to sort the results. + * `created` means when the alert was created. + * `updated` means when the alert's state last changed. + * `epss_percentage` sorts alerts by the Exploit Prediction Scoring System (EPSS) percentage. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_alerts_for_repo( + &self, + owner: &str, + repo: &str, + state: &str, + severity: &str, + ecosystem: &str, + package: &str, + manifest: &str, + epss_percentage: &str, + has: &str, + scope: crate::types::Scope, + sort: crate::types::Sort, + direction: crate::types::Order, + per_page: i64, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !has.is_empty() { + query_args.push(("has".to_string(), has.to_string())); + } + if !manifest.is_empty() { + query_args.push(("manifest".to_string(), manifest.to_string())); + } + if !package.is_empty() { + query_args.push(("package".to_string(), package.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !scope.to_string().is_empty() { + query_args.push(("scope".to_string(), scope.to_string())); + } + if !severity.is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/alerts?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List Dependabot alerts for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependabot/alerts` endpoint. + * + * As opposed to `list_alerts_for_repo`, this function returns all the pages of the request at once. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + */ + pub async fn list_all_alerts_for_repo( + &self, + owner: &str, + repo: &str, + state: &str, + severity: &str, + ecosystem: &str, + package: &str, + manifest: &str, + epss_percentage: &str, + has: &str, + scope: crate::types::Scope, + sort: crate::types::Sort, + direction: crate::types::Order, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !has.is_empty() { + query_args.push(("has".to_string(), has.to_string())); + } + if !manifest.is_empty() { + query_args.push(("manifest".to_string(), manifest.to_string())); + } + if !package.is_empty() { + query_args.push(("package".to_string(), package.to_string())); + } + if !scope.to_string().is_empty() { + query_args.push(("scope".to_string(), scope.to_string())); + } + if !severity.is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/alerts?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a Dependabot alert. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependabot/alerts/{alert_number}` endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `alert_number: i64` -- The number that identifies a Dependabot alert in its repository. + * You can find this at the end of the URL for a Dependabot alert within GitHub, + * or in `number` fields in the response from the + * `GET /repos/{owner}/{repo}/dependabot/alerts` operation. + */ + pub async fn get_alert( + &self, + owner: &str, + repo: &str, + alert_number: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/alerts/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&alert_number.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a Dependabot alert. + * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/dependabot/alerts/{alert_number}` endpoint. + * + * The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `alert_number: i64` -- The number that identifies a Dependabot alert in its repository. + * You can find this at the end of the URL for a Dependabot alert within GitHub, + * or in `number` fields in the response from the + * `GET /repos/{owner}/{repo}/dependabot/alerts` operation. + */ + pub async fn update_alert( + &self, + owner: &str, + repo: &str, + alert_number: i64, + body: &crate::types::DependabotUpdateAlertRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/alerts/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&alert_number.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List repository secrets. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependabot/secrets` endpoint. + * + * Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_repo_secrets( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/secrets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a repository public key. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependabot/secrets/public-key` endpoint. + * + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_repo_public_key( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/secrets/public-key", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a repository secret. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependabot/secrets/{secret_name}` endpoint. + * + * Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn get_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update a repository secret. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/dependabot/secrets/{secret_name}` endpoint. + * + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn create_or_update_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + body: &crate::types::CodespacesCreateUpdateRepoSecretRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete a repository secret. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/dependabot/secrets/{secret_name}` endpoint. + * + * Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_repo_secret( + &self, + owner: &str, + repo: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependabot/secrets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/dependency_graph.rs b/github/src/dependency_graph.rs new file mode 100644 index 00000000..30d05e10 --- /dev/null +++ b/github/src/dependency_graph.rs @@ -0,0 +1,185 @@ +use crate::Client; +use crate::ClientResult; + +pub struct DependencyGraph { + pub client: Client, +} + +impl DependencyGraph { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + DependencyGraph { client } + } + + /** + * Get a diff of the dependencies between commits. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependency-graph/compare/{basehead}` endpoint. + * + * Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `basehead: &str` -- The base and head Git revisions to compare. The Git revisions will be resolved to commit SHAs. Named revisions will be resolved to their corresponding HEAD commits, and an appropriate merge base will be determined. This parameter expects the format `{base}...{head}`. + * * `name: &str` -- The full path, relative to the repository root, of the dependency manifest file. + */ + pub async fn diff_range( + &self, + owner: &str, + repo: &str, + basehead: &str, + name: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !name.is_empty() { + query_args.push(("name".to_string(), name.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/dependency-graph/compare/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&basehead.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a diff of the dependencies between commits. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependency-graph/compare/{basehead}` endpoint. + * + * As opposed to `diff_range`, this function returns all the pages of the request at once. + * + * Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + * + * FROM: + */ + pub async fn get_all_diff_range( + &self, + owner: &str, + repo: &str, + basehead: &str, + name: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !name.is_empty() { + query_args.push(("name".to_string(), name.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/dependency-graph/compare/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&basehead.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Export a software bill of materials (SBOM) for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/dependency-graph/sbom` endpoint. + * + * Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn export_sbom( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependency-graph/sbom", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a snapshot of dependencies for a repository. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/dependency-graph/snapshots` endpoint. + * + * Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_repository_snapshot( + &self, + owner: &str, + repo: &str, + body: &crate::types::Snapshot, + ) -> ClientResult> + { + let url = self.client.url( + &format!( + "/repos/{}/{}/dependency-graph/snapshots", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } +} diff --git a/github/src/emojis.rs b/github/src/emojis.rs index bb4098fb..85d67c54 100644 --- a/github/src/emojis.rs +++ b/github/src/emojis.rs @@ -18,10 +18,10 @@ impl Emojis { * * Lists all the emojis available to use on GitHub. * - * FROM: + * FROM: */ pub async fn get(&self) -> ClientResult> { - let url = self.client.url("/emojis", None); + let url = self.client.url(&"/emojis".to_string(), None); self.client .get( &url, diff --git a/github/src/enterprise_team_memberships.rs b/github/src/enterprise_team_memberships.rs new file mode 100644 index 00000000..5e469b81 --- /dev/null +++ b/github/src/enterprise_team_memberships.rs @@ -0,0 +1,294 @@ +use crate::Client; +use crate::ClientResult; + +pub struct EnterpriseTeamMemberships { + pub client: Client, +} + +impl EnterpriseTeamMemberships { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + EnterpriseTeamMemberships { client } + } + + /** + * List members in an enterprise team. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams/{enterprise-team}/memberships` endpoint. + * + * Lists all team members in an enterprise team. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list( + &self, + enterprise: &str, + enterprise_team: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/memberships?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List members in an enterprise team. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams/{enterprise-team}/memberships` endpoint. + * + * As opposed to `list`, this function returns all the pages of the request at once. + * + * Lists all team members in an enterprise team. + * + * FROM: + */ + pub async fn list_all( + &self, + enterprise: &str, + enterprise_team: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/memberships", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Bulk add team members. + * + * This function performs a `POST` to the `/enterprises/{enterprise}/teams/{enterprise-team}/memberships/add` endpoint. + * + * Add multiple team members to an enterprise team. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + */ + pub async fn bulk_add( + &self, + enterprise: &str, + enterprise_team: &str, + body: &crate::types::EnterpriseTeamMembershipsBulkAddRequest, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/memberships/add", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Bulk remove team members. + * + * This function performs a `POST` to the `/enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove` endpoint. + * + * Remove multiple team members from an enterprise team. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + */ + pub async fn bulk_remove( + &self, + enterprise: &str, + enterprise_team: &str, + body: &crate::types::EnterpriseTeamMembershipsBulkAddRequest, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/memberships/remove", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get enterprise team membership. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}` endpoint. + * + * Returns whether the user is a member of the enterprise team. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn get( + &self, + enterprise: &str, + enterprise_team: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/memberships/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Add team member. + * + * This function performs a `PUT` to the `/enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}` endpoint. + * + * Add a team member to an enterprise team. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn add( + &self, + enterprise: &str, + enterprise_team: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/memberships/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove team membership. + * + * This function performs a `DELETE` to the `/enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}` endpoint. + * + * Remove membership of a specific user from a particular team in an enterprise. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn remove( + &self, + enterprise: &str, + enterprise_team: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/memberships/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/enterprise_team_organizations.rs b/github/src/enterprise_team_organizations.rs new file mode 100644 index 00000000..10cf6a47 --- /dev/null +++ b/github/src/enterprise_team_organizations.rs @@ -0,0 +1,294 @@ +use crate::Client; +use crate::ClientResult; + +pub struct EnterpriseTeamOrganizations { + pub client: Client, +} + +impl EnterpriseTeamOrganizations { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + EnterpriseTeamOrganizations { client } + } + + /** + * Get organization assignments. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams/{enterprise-team}/organizations` endpoint. + * + * Get all organizations assigned to an enterprise team + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn get_assignments( + &self, + enterprise: &str, + enterprise_team: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/organizations?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get organization assignments. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams/{enterprise-team}/organizations` endpoint. + * + * As opposed to `get_assignments`, this function returns all the pages of the request at once. + * + * Get all organizations assigned to an enterprise team + * + * FROM: + */ + pub async fn get_all_assignments( + &self, + enterprise: &str, + enterprise_team: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/organizations", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Add organization assignments. + * + * This function performs a `POST` to the `/enterprises/{enterprise}/teams/{enterprise-team}/organizations/add` endpoint. + * + * Assign an enterprise team to multiple organizations. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + */ + pub async fn bulk_add( + &self, + enterprise: &str, + enterprise_team: &str, + body: &crate::types::EnterpriseTeamOrganizationsBulkAddRequest, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/organizations/add", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Remove organization assignments. + * + * This function performs a `POST` to the `/enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove` endpoint. + * + * Unassign an enterprise team from multiple organizations. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + */ + pub async fn bulk_remove( + &self, + enterprise: &str, + enterprise_team: &str, + body: &crate::types::EnterpriseTeamOrganizationsBulkAddRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/organizations/remove", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get organization assignment. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}` endpoint. + * + * Check if an enterprise team is assigned to an organization + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_assignment( + &self, + enterprise: &str, + enterprise_team: &str, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/organizations/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Add an organization assignment. + * + * This function performs a `PUT` to the `/enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}` endpoint. + * + * Assign an enterprise team to an organization. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn add( + &self, + enterprise: &str, + enterprise_team: &str, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/organizations/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete an organization assignment. + * + * This function performs a `DELETE` to the `/enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}` endpoint. + * + * Unassign an enterprise team from an organization. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `enterprise_team: &str` -- The slug version of the enterprise team name. You can also substitute this value with the enterprise team id. + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn delete( + &self, + enterprise: &str, + enterprise_team: &str, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}/organizations/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&enterprise_team.to_string()), + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/enterprise_teams.rs b/github/src/enterprise_teams.rs new file mode 100644 index 00000000..97787b33 --- /dev/null +++ b/github/src/enterprise_teams.rs @@ -0,0 +1,242 @@ +use crate::Client; +use crate::ClientResult; + +pub struct EnterpriseTeams { + pub client: Client, +} + +impl EnterpriseTeams { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + EnterpriseTeams { client } + } + + /** + * List enterprise teams. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams` endpoint. + * + * List all teams in the enterprise for the authenticated user + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list( + &self, + enterprise: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/enterprises/{}/teams?{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List enterprise teams. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams` endpoint. + * + * As opposed to `list`, this function returns all the pages of the request at once. + * + * List all teams in the enterprise for the authenticated user + * + * FROM: + */ + pub async fn list_all( + &self, + enterprise: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams", + crate::progenitor_support::encode_path(&enterprise.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create an enterprise team. + * + * This function performs a `POST` to the `/enterprises/{enterprise}/teams` endpoint. + * + * To create an enterprise team, the authenticated user must be an owner of the enterprise. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + */ + pub async fn create( + &self, + enterprise: &str, + body: &crate::types::EnterpriseTeamsCreateRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams", + crate::progenitor_support::encode_path(&enterprise.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get an enterprise team. + * + * This function performs a `GET` to the `/enterprises/{enterprise}/teams/{team_slug}` endpoint. + * + * Gets a team using the team's slug. To create the slug, GitHub replaces special characters in the name string, changes all words to lowercase, and replaces spaces with a `-` separator and adds the "ent:" prefix. For example, "My TEam Näme" would become `ent:my-team-name`. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `team_slug: &str` -- The slug of the team name. + */ + pub async fn get( + &self, + enterprise: &str, + team_slug: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete an enterprise team. + * + * This function performs a `DELETE` to the `/enterprises/{enterprise}/teams/{team_slug}` endpoint. + * + * To delete an enterprise team, the authenticated user must be an enterprise owner. + * + * If you are an enterprise owner, deleting an enterprise team will delete all of its IdP mappings as well. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `team_slug: &str` -- The slug of the team name. + */ + pub async fn delete( + &self, + enterprise: &str, + team_slug: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update an enterprise team. + * + * This function performs a `PATCH` to the `/enterprises/{enterprise}/teams/{team_slug}` endpoint. + * + * To edit a team, the authenticated user must be an enterprise owner. + * + * FROM: + * + * **Parameters:** + * + * * `enterprise: &str` -- The slug version of the enterprise name. + * * `team_slug: &str` -- The slug of the team name. + */ + pub async fn update( + &self, + enterprise: &str, + team_slug: &str, + body: &crate::types::EnterpriseTeamsUpdateRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/enterprises/{}/teams/{}", + crate::progenitor_support::encode_path(&enterprise.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } +} diff --git a/github/src/gists.rs b/github/src/gists.rs index 13e885aa..f320f15d 100644 --- a/github/src/gists.rs +++ b/github/src/gists.rs @@ -18,13 +18,13 @@ impl Gists { * * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: * - * FROM: + * FROM: * * **Parameters:** * - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list( &self, @@ -63,7 +63,7 @@ impl Gists { * * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: * - * FROM: + * FROM: */ pub async fn list_all( &self, @@ -92,15 +92,16 @@ impl Gists { * * Allows you to add a new gist with one or more files. * - * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + * > [!NOTE] + * > Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. * - * FROM: + * FROM: */ pub async fn create( &self, body: &crate::types::GistsCreateRequest, ) -> ClientResult> { - let url = self.client.url("/gists", None); + let url = self.client.url(&"/gists".to_string(), None); self.client .post( &url, @@ -118,15 +119,15 @@ impl Gists { * * List public gists sorted by most recently updated to least recently updated. * - * Note: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. * - * FROM: + * FROM: * * **Parameters:** * - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_public( &self, @@ -165,9 +166,9 @@ impl Gists { * * List public gists sorted by most recently updated to least recently updated. * - * Note: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. * - * FROM: + * FROM: */ pub async fn list_all_public( &self, @@ -196,13 +197,13 @@ impl Gists { * * List the authenticated user's starred gists: * - * FROM: + * FROM: * * **Parameters:** * - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_starred( &self, @@ -241,7 +242,7 @@ impl Gists { * * List the authenticated user's starred gists: * - * FROM: + * FROM: */ pub async fn list_all_starred( &self, @@ -268,20 +269,28 @@ impl Gists { * * This function performs a `GET` to the `/gists/{gist_id}` endpoint. * + * Gets a specified gist. * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + * + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn get( &self, gist_id: &str, ) -> ClientResult> { let url = self.client.url( - &format!("/gists/{}", crate::progenitor_support::encode_path(gist_id),), + &format!( + "/gists/{}", + crate::progenitor_support::encode_path(&gist_id.to_string()), + ), None, ); self.client @@ -301,15 +310,18 @@ impl Gists { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn delete(&self, gist_id: &str) -> ClientResult> { let url = self.client.url( - &format!("/gists/{}", crate::progenitor_support::encode_path(gist_id),), + &format!( + "/gists/{}", + crate::progenitor_support::encode_path(&gist_id.to_string()), + ), None, ); self.client @@ -327,13 +339,22 @@ impl Gists { * * This function performs a `PATCH` to the `/gists/{gist_id}` endpoint. * - * Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + * Allows you to update a gist's description and to update, delete, or rename gist files. Files + * from the previous version of the gist that aren't explicitly changed during an edit + * are unchanged. * - * FROM: + * At least one of `description` or `files` is required. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + * + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn update( &self, @@ -341,7 +362,10 @@ impl Gists { body: &crate::types::GistsUpdateRequest, ) -> ClientResult> { let url = self.client.url( - &format!("/gists/{}", crate::progenitor_support::encode_path(gist_id),), + &format!( + "/gists/{}", + crate::progenitor_support::encode_path(&gist_id.to_string()), + ), None, ); self.client @@ -359,15 +383,20 @@ impl Gists { * * This function performs a `GET` to the `/gists/{gist_id}/comments` endpoint. * + * Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `gist_id: &str` -- The unique identifier of the gist. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_comments( &self, @@ -386,7 +415,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/comments?{}", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), query_ ), None, @@ -408,9 +437,14 @@ impl Gists { * * As opposed to `list_comments`, this function returns all the pages of the request at once. * + * Lists the comments on a gist. * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + * + * FROM: */ pub async fn list_all_comments( &self, @@ -419,7 +453,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/comments", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -438,13 +472,18 @@ impl Gists { * * This function performs a `POST` to the `/gists/{gist_id}/comments` endpoint. * + * Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn create_comment( &self, @@ -454,7 +493,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/comments", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -473,14 +512,19 @@ impl Gists { * * This function performs a `GET` to the `/gists/{gist_id}/comments/{comment_id}` endpoint. * + * Gets a comment on a gist. * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + * + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. - * * `comment_id: i64` -- comment_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn get_comment( &self, @@ -490,7 +534,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/comments/{}", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -512,12 +556,12 @@ impl Gists { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. - * * `comment_id: i64` -- comment_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn delete_comment( &self, @@ -527,7 +571,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/comments/{}", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -547,14 +591,19 @@ impl Gists { * * This function performs a `PATCH` to the `/gists/{gist_id}/comments/{comment_id}` endpoint. * + * Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. - * * `comment_id: i64` -- comment_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn update_comment( &self, @@ -565,7 +614,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/comments/{}", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -587,13 +636,13 @@ impl Gists { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `gist_id: &str` -- The unique identifier of the gist. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_commits( &self, @@ -612,7 +661,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/commits?{}", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), query_ ), None, @@ -636,7 +685,7 @@ impl Gists { * * * - * FROM: + * FROM: */ pub async fn list_all_commits( &self, @@ -645,7 +694,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/commits", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -666,13 +715,13 @@ impl Gists { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `gist_id: &str` -- The unique identifier of the gist. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_forks( &self, @@ -691,7 +740,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/forks?{}", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), query_ ), None, @@ -715,7 +764,7 @@ impl Gists { * * * - * FROM: + * FROM: */ pub async fn list_all_forks( &self, @@ -724,7 +773,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/forks", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -743,13 +792,13 @@ impl Gists { * * This function performs a `POST` to the `/gists/{gist_id}/forks` endpoint. * - * **Note**: This was previously `/gists/:gist_id/fork`. * - * FROM: + * + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn fork( &self, @@ -758,7 +807,7 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/forks", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -779,17 +828,17 @@ impl Gists { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn check_is_starred(&self, gist_id: &str) -> ClientResult> { let url = self.client.url( &format!( "/gists/{}/star", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -808,19 +857,19 @@ impl Gists { * * This function performs a `PUT` to the `/gists/{gist_id}/star` endpoint. * - * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn star(&self, gist_id: &str) -> ClientResult> { let url = self.client.url( &format!( "/gists/{}/star", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -841,17 +890,17 @@ impl Gists { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. */ pub async fn unstar(&self, gist_id: &str) -> ClientResult> { let url = self.client.url( &format!( "/gists/{}/star", - crate::progenitor_support::encode_path(gist_id), + crate::progenitor_support::encode_path(&gist_id.to_string()), ), None, ); @@ -870,13 +919,18 @@ impl Gists { * * This function performs a `GET` to the `/gists/{gist_id}/{sha}` endpoint. * + * Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. * - * FROM: + * FROM: * * **Parameters:** * - * * `gist_id: &str` -- gist_id parameter. + * * `gist_id: &str` -- The unique identifier of the gist. * * `sha: &str` */ pub async fn get_revision( @@ -887,8 +941,8 @@ impl Gists { let url = self.client.url( &format!( "/gists/{}/{}", - crate::progenitor_support::encode_path(gist_id), - crate::progenitor_support::encode_path(sha), + crate::progenitor_support::encode_path(&gist_id.to_string()), + crate::progenitor_support::encode_path(&sha.to_string()), ), None, ); @@ -909,14 +963,14 @@ impl Gists { * * Lists public gists for the specified user: * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_user( &self, @@ -939,7 +993,7 @@ impl Gists { let url = self.client.url( &format!( "/users/{}/gists?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -963,7 +1017,7 @@ impl Gists { * * Lists public gists for the specified user: * - * FROM: + * FROM: */ pub async fn list_all_for_user( &self, @@ -978,7 +1032,7 @@ impl Gists { let url = self.client.url( &format!( "/users/{}/gists?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, diff --git a/github/src/git.rs b/github/src/git.rs index c5651fa6..7cb95fb3 100644 --- a/github/src/git.rs +++ b/github/src/git.rs @@ -18,12 +18,12 @@ impl Git { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_blob( &self, @@ -34,8 +34,8 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/blobs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -56,14 +56,19 @@ impl Git { * * The `content` in the response will always be Base64 encoded. * - * _Note_: This API supports blobs up to 100 megabytes in size. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `file_sha: &str` */ pub async fn get_blob( @@ -75,9 +80,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/blobs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(file_sha), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&file_sha.to_string()), ), None, ); @@ -96,7 +101,7 @@ impl Git { * * This function performs a `POST` to the `/repos/{owner}/{repo}/git/commits` endpoint. * - * Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). * * **Signature verification object** * @@ -105,9 +110,10 @@ impl Git { * | Name | Type | Description | * | ---- | ---- | ----------- | * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | - * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | * | `signature` | `string` | The signature that was extracted from the commit. | * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | * * These are the possible values for `reason` in the `verification` object: * @@ -120,19 +126,19 @@ impl Git { * | `unsigned` | The object does not include a signature. | * | `unknown_signature_type` | A non-PGP signature was found in the commit. | * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | * | `unknown_key` | The key that made the signature has not been registered with any user's account. | * | `malformed_signature` | There was an error parsing the signature. | * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | * | `valid` | None of the above errors applied, so the signature is considered to be verified. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_commit( &self, @@ -143,8 +149,8 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/commits", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -159,11 +165,13 @@ impl Git { .await } /** - * Get a commit. + * Get a commit object. * * This function performs a `GET` to the `/repos/{owner}/{repo}/git/commits/{commit_sha}` endpoint. * - * Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." * * **Signature verification object** * @@ -172,9 +180,10 @@ impl Git { * | Name | Type | Description | * | ---- | ---- | ----------- | * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | - * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | * | `signature` | `string` | The signature that was extracted from the commit. | * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | * * These are the possible values for `reason` in the `verification` object: * @@ -187,20 +196,20 @@ impl Git { * | `unsigned` | The object does not include a signature. | * | `unknown_signature_type` | A non-PGP signature was found in the commit. | * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | * | `unknown_key` | The key that made the signature has not been registered with any user's account. | * | `malformed_signature` | There was an error parsing the signature. | * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | * | `valid` | None of the above errors applied, so the signature is considered to be verified. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `commit_sha: &str` -- commit_sha parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `commit_sha: &str` -- The SHA of the commit. */ pub async fn get_commit( &self, @@ -211,9 +220,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/commits/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), ), None, ); @@ -236,43 +245,31 @@ impl Git { * * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. * - * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * > [!NOTE] + * > You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". * * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The Git reference. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ pub async fn list_matching_refs( &self, owner: &str, repo: &str, ref_: &str, - per_page: i64, - page: i64, ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/git/matching-refs/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), - query_ + "/repos/{}/{}/git/matching-refs/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), ), None, ); @@ -297,11 +294,12 @@ impl Git { * * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. * - * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * > [!NOTE] + * > You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". * * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. * - * FROM: + * FROM: */ pub async fn list_all_matching_refs( &self, @@ -312,9 +310,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/matching-refs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), ), None, ); @@ -335,15 +333,16 @@ impl Git { * * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. * - * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * > [!NOTE] + * > You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The Git reference. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ pub async fn get_ref( &self, @@ -354,9 +353,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/ref/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), ), None, ); @@ -377,12 +376,12 @@ impl Git { * * Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_ref( &self, @@ -393,8 +392,8 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/refs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -413,15 +412,15 @@ impl Git { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/git/refs/{ref}` endpoint. * + * Deletes the provided reference. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The Git reference. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ pub async fn delete_ref( &self, @@ -432,9 +431,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/refs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), ), None, ); @@ -453,15 +452,15 @@ impl Git { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/git/refs/{ref}` endpoint. * + * Updates the provided reference to point to a new SHA. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The Git reference. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ pub async fn update_ref( &self, @@ -473,9 +472,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/refs/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), ), None, ); @@ -494,7 +493,7 @@ impl Git { * * This function performs a `POST` to the `/repos/{owner}/{repo}/git/tags` endpoint. * - * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary. + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. * * **Signature verification object** * @@ -506,6 +505,7 @@ impl Git { * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | * | `signature` | `string` | The signature that was extracted from the commit. | * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | * * These are the possible values for `reason` in the `verification` object: * @@ -518,19 +518,19 @@ impl Git { * | `unsigned` | The object does not include a signature. | * | `unknown_signature_type` | A non-PGP signature was found in the commit. | * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | * | `unknown_key` | The key that made the signature has not been registered with any user's account. | * | `malformed_signature` | There was an error parsing the signature. | * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | * | `valid` | None of the above errors applied, so the signature is considered to be verified. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_tag( &self, @@ -541,8 +541,8 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/tags", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -571,6 +571,7 @@ impl Git { * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | * | `signature` | `string` | The signature that was extracted from the commit. | * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | * * These are the possible values for `reason` in the `verification` object: * @@ -583,19 +584,19 @@ impl Git { * | `unsigned` | The object does not include a signature. | * | `unknown_signature_type` | A non-PGP signature was found in the commit. | * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | * | `unknown_key` | The key that made the signature has not been registered with any user's account. | * | `malformed_signature` | There was an error parsing the signature. | * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | * | `valid` | None of the above errors applied, so the signature is considered to be verified. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `tag_sha: &str` */ pub async fn get_tag( @@ -607,9 +608,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/tags/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(tag_sha), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&tag_sha.to_string()), ), None, ); @@ -630,14 +631,16 @@ impl Git { * * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. * - * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference)." + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_tree( &self, @@ -648,8 +651,8 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/trees", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -668,17 +671,20 @@ impl Git { * * This function performs a `GET` to the `/repos/{owner}/{repo}/git/trees/{tree_sha}` endpoint. * - * Returns a single tree using the SHA1 value for that tree. + * Returns a single tree using the SHA1 value or ref name for that tree. * * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. * - * FROM: + * > [!NOTE] + * > The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `tree_sha: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `tree_sha: &str` -- The SHA1 value or ref (branch or tag) name of the tree. * * `recursive: &str` -- Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `"true"`, and `"false"`. Omit this parameter to prevent recursively returning objects or subtrees. */ pub async fn get_tree( @@ -696,9 +702,9 @@ impl Git { let url = self.client.url( &format!( "/repos/{}/{}/git/trees/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(tree_sha), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&tree_sha.to_string()), query_ ), None, diff --git a/github/src/gitignore.rs b/github/src/gitignore.rs index 77d335b4..ae4d5332 100644 --- a/github/src/gitignore.rs +++ b/github/src/gitignore.rs @@ -16,12 +16,12 @@ impl Gitignore { * * This function performs a `GET` to the `/gitignore/templates` endpoint. * - * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user). + * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). * - * FROM: + * FROM: */ pub async fn get_all_templates(&self) -> ClientResult>> { - let url = self.client.url("/gitignore/templates", None); + let url = self.client.url(&"/gitignore/templates".to_string(), None); self.client .get( &url, @@ -39,12 +39,12 @@ impl Gitignore { * * As opposed to `get_all_templates`, this function returns all the pages of the request at once. * - * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user). + * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). * - * FROM: + * FROM: */ pub async fn get_all_all_templates(&self) -> ClientResult>> { - let url = self.client.url("/gitignore/templates", None); + let url = self.client.url(&"/gitignore/templates".to_string(), None); self.client .get_all_pages( &url, @@ -60,10 +60,13 @@ impl Gitignore { * * This function performs a `GET` to the `/gitignore/templates/{name}` endpoint. * - * The API also allows fetching the source of a single template. - * Use the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents. + * Get the content of a gitignore template. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + * + * FROM: * * **Parameters:** * @@ -76,7 +79,7 @@ impl Gitignore { let url = self.client.url( &format!( "/gitignore/templates/{}", - crate::progenitor_support::encode_path(name), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); diff --git a/github/src/hosted_compute.rs b/github/src/hosted_compute.rs new file mode 100644 index 00000000..44449d9c --- /dev/null +++ b/github/src/hosted_compute.rs @@ -0,0 +1,259 @@ +use crate::Client; +use crate::ClientResult; + +pub struct HostedCompute { + pub client: Client, +} + +impl HostedCompute { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + HostedCompute { client } + } + + /** + * List hosted compute network configurations for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/settings/network-configurations` endpoint. + * + * Lists all hosted compute network configurations configured in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_network_configurations_for_org( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult< + crate::Response, + > { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/settings/network-configurations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a hosted compute network configuration for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/settings/network-configurations` endpoint. + * + * Creates a hosted compute network configuration for an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_network_configuration_for_org( + &self, + org: &str, + body: &crate::types::HostedComputeCreateNetworkConfigurationOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/settings/network-configurations", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a hosted compute network configuration for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/settings/network-configurations/{network_configuration_id}` endpoint. + * + * Gets a hosted compute network configuration configured in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `network_configuration_id: &str` -- Unique identifier of the hosted compute network configuration. + */ + pub async fn get_network_configuration_for_org( + &self, + org: &str, + network_configuration_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/settings/network-configurations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&network_configuration_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a hosted compute network configuration from an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/settings/network-configurations/{network_configuration_id}` endpoint. + * + * Deletes a hosted compute network configuration from an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `network_configuration_id: &str` -- Unique identifier of the hosted compute network configuration. + */ + pub async fn delete_network_configuration_from_org( + &self, + org: &str, + network_configuration_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/settings/network-configurations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&network_configuration_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a hosted compute network configuration for an organization. + * + * This function performs a `PATCH` to the `/orgs/{org}/settings/network-configurations/{network_configuration_id}` endpoint. + * + * Updates a hosted compute network configuration for an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `write:network_configurations` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `network_configuration_id: &str` -- Unique identifier of the hosted compute network configuration. + */ + pub async fn update_network_configuration_for_org( + &self, + org: &str, + network_configuration_id: &str, + body: &crate::types::HostedComputeUpdateNetworkConfigurationOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/settings/network-configurations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&network_configuration_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a hosted compute network settings resource for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/settings/network-settings/{network_settings_id}` endpoint. + * + * Gets a hosted compute network settings resource configured for an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:network_configurations` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `network_settings_id: &str` -- Unique identifier of the hosted compute network settings. + */ + pub async fn get_network_settings_for_org( + &self, + org: &str, + network_settings_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/settings/network-settings/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&network_settings_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/interactions.rs b/github/src/interactions.rs index 19c739a0..2acd29b7 100644 --- a/github/src/interactions.rs +++ b/github/src/interactions.rs @@ -18,11 +18,11 @@ impl Interactions { * * Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn get_restrictions_for_org( &self, @@ -31,7 +31,7 @@ impl Interactions { let url = self.client.url( &format!( "/orgs/{}/interaction-limits", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -52,11 +52,11 @@ impl Interactions { * * Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn set_restrictions_for_org( &self, @@ -66,7 +66,7 @@ impl Interactions { let url = self.client.url( &format!( "/orgs/{}/interaction-limits", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -87,11 +87,11 @@ impl Interactions { * * Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn remove_restrictions_for_org( &self, @@ -100,7 +100,7 @@ impl Interactions { let url = self.client.url( &format!( "/orgs/{}/interaction-limits", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -121,12 +121,12 @@ impl Interactions { * * Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_restrictions_for_repo( &self, @@ -136,8 +136,8 @@ impl Interactions { let url = self.client.url( &format!( "/repos/{}/{}/interaction-limits", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -158,12 +158,12 @@ impl Interactions { * * Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn set_restrictions_for_repo( &self, @@ -174,8 +174,8 @@ impl Interactions { let url = self.client.url( &format!( "/repos/{}/{}/interaction-limits", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -196,12 +196,12 @@ impl Interactions { * * Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn remove_restrictions_for_repo( &self, @@ -211,8 +211,8 @@ impl Interactions { let url = self.client.url( &format!( "/repos/{}/{}/interaction-limits", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -233,12 +233,14 @@ impl Interactions { * * Shows which type of GitHub user can interact with your public repositories and when the restriction expires. * - * FROM: + * FROM: */ pub async fn get_restrictions_for_authenticated_user( &self, ) -> ClientResult> { - let url = self.client.url("/user/interaction-limits", None); + let url = self + .client + .url(&"/user/interaction-limits".to_string(), None); self.client .get( &url, @@ -256,13 +258,15 @@ impl Interactions { * * Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. * - * FROM: + * FROM: */ pub async fn set_restrictions_for_authenticated_user( &self, body: &crate::types::InteractionLimit, ) -> ClientResult> { - let url = self.client.url("/user/interaction-limits", None); + let url = self + .client + .url(&"/user/interaction-limits".to_string(), None); self.client .put( &url, @@ -280,12 +284,14 @@ impl Interactions { * * Removes any interaction restrictions from your public repositories. * - * FROM: + * FROM: */ pub async fn remove_restrictions_for_authenticated_user( &self, ) -> ClientResult> { - let url = self.client.url("/user/interaction-limits", None); + let url = self + .client + .url(&"/user/interaction-limits".to_string(), None); self.client .delete( &url, diff --git a/github/src/issues.rs b/github/src/issues.rs index 72669aa2..57c1b46c 100644 --- a/github/src/issues.rs +++ b/github/src/issues.rs @@ -20,35 +20,32 @@ impl Issues { * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not * necessarily assigned to you. * + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `filter: crate::types::Filter` -- Indicates which sorts of issues to return. Can be one of: - * \\* `assigned`: Issues assigned to you - * \\* `created`: Issues created by you - * \\* `mentioned`: Issues mentioning you - * \\* `subscribed`: Issues you're subscribed to updates for - * \\* `all` or `repos`: All issues the authenticated user can see, regardless of participation or creation. - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + * * `filter: crate::types::Filter` -- Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. + * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. * * `labels: &str` -- A list of comma separated label names. Example: `bug,ui,@high`. - * * `sort: crate::types::IssuesListSort` -- What to sort results by. Can be either `created`, `updated`, `comments`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `sort: crate::types::IssuesListSort` -- What to sort results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. * * `collab: bool` * * `orgs: bool` * * `owned: bool` * * `pulls: bool` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list( &self, @@ -125,13 +122,17 @@ impl Issues { * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not * necessarily assigned to you. * + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all( &self, @@ -196,31 +197,30 @@ impl Issues { * * List issues in an organization assigned to the authenticated user. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `filter: crate::types::Filter` -- Indicates which sorts of issues to return. Can be one of: - * \\* `assigned`: Issues assigned to you - * \\* `created`: Issues created by you - * \\* `mentioned`: Issues mentioning you - * \\* `subscribed`: Issues you're subscribed to updates for - * \\* `all` or `repos`: All issues the authenticated user can see, regardless of participation or creation. - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `filter: crate::types::Filter` -- Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. + * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. * * `labels: &str` -- A list of comma separated label names. Example: `bug,ui,@high`. - * * `sort: crate::types::IssuesListSort` -- What to sort results by. Can be either `created`, `updated`, `comments`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `type_: &str` -- Can be the name of an issue type. + * * `sort: crate::types::IssuesListSort` -- What to sort results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_org( &self, @@ -228,6 +228,7 @@ impl Issues { filter: crate::types::Filter, state: crate::types::IssuesListState, labels: &str, + type_: &str, sort: crate::types::IssuesListSort, direction: crate::types::Order, since: Option>, @@ -259,11 +260,14 @@ impl Issues { if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } + if !type_.is_empty() { + query_args.push(("type".to_string(), type_.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( "/orgs/{}/issues?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -287,12 +291,17 @@ impl Issues { * * List issues in an organization assigned to the authenticated user. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: */ pub async fn list_all_for_org( &self, @@ -300,6 +309,7 @@ impl Issues { filter: crate::types::Filter, state: crate::types::IssuesListState, labels: &str, + type_: &str, sort: crate::types::IssuesListSort, direction: crate::types::Order, since: Option>, @@ -323,11 +333,14 @@ impl Issues { if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } + if !type_.is_empty() { + query_args.push(("type".to_string(), type_.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( "/orgs/{}/issues?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -347,16 +360,16 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/assignees` endpoint. * - * Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + * Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_assignees( &self, @@ -376,8 +389,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/assignees?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -399,9 +412,9 @@ impl Issues { * * As opposed to `list_assignees`, this function returns all the pages of the request at once. * - * Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + * Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. * - * FROM: + * FROM: */ pub async fn list_all_assignees( &self, @@ -411,8 +424,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/assignees", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -437,12 +450,12 @@ impl Issues { * * Otherwise a `404` status code is returned. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `assignee: &str` */ pub async fn check_user_can_be_assigned( @@ -454,9 +467,9 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/assignees/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(assignee), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&assignee.to_string()), ), None, ); @@ -475,32 +488,36 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues` endpoint. * - * List issues in a repository. + * List issues in a repository. Only open issues will be listed. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `milestone: &str` -- If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. * * `assignee: &str` -- Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. + * * `type_: &str` -- Can be the name of an issue type. If the string `*` is passed, issues with any type are accepted. If the string `none` is passed, issues without type are returned. * * `creator: &str` -- The user that created the issue. * * `mentioned: &str` -- A user that's mentioned in the issue. * * `labels: &str` -- A list of comma separated label names. Example: `bug,ui,@high`. - * * `sort: crate::types::IssuesListSort` -- What to sort results by. Can be either `created`, `updated`, `comments`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `sort: crate::types::IssuesListSort` -- What to sort results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_repo( &self, @@ -509,6 +526,7 @@ impl Issues { milestone: &str, state: crate::types::IssuesListState, assignee: &str, + type_: &str, creator: &str, mentioned: &str, labels: &str, @@ -517,7 +535,7 @@ impl Issues { since: Option>, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if !assignee.is_empty() { query_args.push(("assignee".to_string(), assignee.to_string())); @@ -552,12 +570,15 @@ impl Issues { if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } + if !type_.is_empty() { + query_args.push(("type".to_string(), type_.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( "/repos/{}/{}/issues?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -579,14 +600,19 @@ impl Issues { * * As opposed to `list_for_repo`, this function returns all the pages of the request at once. * - * List issues in a repository. + * List issues in a repository. Only open issues will be listed. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: */ pub async fn list_all_for_repo( &self, @@ -595,13 +621,14 @@ impl Issues { milestone: &str, state: crate::types::IssuesListState, assignee: &str, + type_: &str, creator: &str, mentioned: &str, labels: &str, sort: crate::types::IssuesListSort, direction: crate::types::Order, since: Option>, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if !assignee.is_empty() { query_args.push(("assignee".to_string(), assignee.to_string())); @@ -630,12 +657,15 @@ impl Issues { if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } + if !type_.is_empty() { + query_args.push(("type".to_string(), type_.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( "/repos/{}/{}/issues?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -655,16 +685,24 @@ impl Issues { * * This function performs a `POST` to the `/repos/{owner}/{repo}/issues` endpoint. * - * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://help.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create( &self, @@ -675,8 +713,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -695,27 +733,34 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/comments` endpoint. * - * By default, Issue Comments are ordered by ascending ID. + * You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `sort: crate::types::Sort` -- One of `created` (when the repository was starred) or `updated` (when it was last pushed to). - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `sort: crate::types::SortData` -- The property to sort the results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_comments_for_repo( &self, owner: &str, repo: &str, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, since: Option>, per_page: i64, @@ -741,8 +786,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -764,15 +809,24 @@ impl Issues { * * As opposed to `list_comments_for_repo`, this function returns all the pages of the request at once. * - * By default, Issue Comments are ordered by ascending ID. + * You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all_comments_for_repo( &self, owner: &str, repo: &str, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, since: Option>, ) -> ClientResult>> { @@ -790,8 +844,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -811,15 +865,22 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}` endpoint. * + * You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn get_comment( &self, @@ -830,8 +891,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -851,15 +912,15 @@ impl Issues { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}` endpoint. * + * You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn delete_comment( &self, @@ -870,8 +931,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -891,15 +952,22 @@ impl Issues { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}` endpoint. * + * You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn update_comment( &self, @@ -911,8 +979,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -927,21 +995,108 @@ impl Issues { ) .await } + /** + * Pin an issue comment. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}/pin` endpoint. + * + * You can use the REST API to pin comments on issues. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + */ + pub async fn pin_comment( + &self, + owner: &str, + repo: &str, + comment_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/comments/{}/pin", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&comment_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Unpin an issue comment. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}/pin` endpoint. + * + * You can use the REST API to unpin comments on issues. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + */ + pub async fn unpin_comment( + &self, + owner: &str, + repo: &str, + comment_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/comments/{}/pin", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&comment_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * List issue events for a repository. * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/events` endpoint. * + * Lists events for a repository. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_events_for_repo( &self, @@ -961,8 +1116,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/events?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -984,9 +1139,9 @@ impl Issues { * * As opposed to `list_events_for_repo`, this function returns all the pages of the request at once. * + * Lists events for a repository. * - * - * FROM: + * FROM: */ pub async fn list_all_events_for_repo( &self, @@ -996,8 +1151,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/events", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1016,14 +1171,14 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/events/{event_id}` endpoint. * + * Gets a single event by the event id. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `event_id: i64` */ pub async fn get_event( @@ -1035,8 +1190,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/events/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&event_id.to_string()), ), None, @@ -1056,25 +1211,30 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}` endpoint. * - * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was - * [transferred](https://help.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn get( &self, @@ -1085,8 +1245,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1106,15 +1266,22 @@ impl Issues { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/issues/{issue_number}` endpoint. * - * Issue owners and users with push access can edit an issue. + * Issue owners and users with push access or Triage role can edit an issue. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn update( &self, @@ -1126,8 +1293,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1149,13 +1316,13 @@ impl Issues { * * Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn add_assignees( &self, @@ -1163,12 +1330,12 @@ impl Issues { repo: &str, issue_number: i64, body: &crate::types::IssuesAddAssigneesRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/assignees", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1190,13 +1357,13 @@ impl Issues { * * Removes one or more assignees from an issue. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn remove_assignees( &self, @@ -1204,12 +1371,12 @@ impl Issues { repo: &str, issue_number: i64, body: &crate::types::IssuesAddAssigneesRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/assignees", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1224,23 +1391,79 @@ impl Issues { ) .await } + /** + * Check if a user can be assigned to a issue. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}` endpoint. + * + * Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `assignee: &str` + */ + pub async fn check_user_can_be_assigned_to_issue( + &self, + owner: &str, + repo: &str, + issue_number: i64, + assignee: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/assignees/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + crate::progenitor_support::encode_path(&assignee.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * List issue comments. * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/comments` endpoint. * - * Issue Comments are ordered by ascending ID. + * You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_comments( &self, @@ -1265,8 +1488,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), query_ ), @@ -1289,9 +1512,18 @@ impl Issues { * * As opposed to `list_comments`, this function returns all the pages of the request at once. * - * Issue Comments are ordered by ascending ID. + * You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all_comments( &self, @@ -1308,8 +1540,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), query_ ), @@ -1330,15 +1562,27 @@ impl Issues { * * This function performs a `POST` to the `/repos/{owner}/{repo}/issues/{issue_number}/comments` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. * - * FROM: + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn create_comment( &self, @@ -1350,8 +1594,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/comments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1367,30 +1611,37 @@ impl Issues { .await } /** - * List issue events. + * List dependencies an issue is blocked by. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/events` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by` endpoint. + * + * You can use the REST API to list the dependencies an issue is blocked by. * + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). * + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_events( + pub async fn list_dependencies_blocked_by( &self, owner: &str, repo: &str, issue_number: i64, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -1401,9 +1652,9 @@ impl Issues { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/issues/{}/events?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/issues/{}/dependencies/blocked_by?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), query_ ), @@ -1420,27 +1671,34 @@ impl Issues { .await } /** - * List issue events. + * List dependencies an issue is blocked by. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/events` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by` endpoint. * - * As opposed to `list_events`, this function returns all the pages of the request at once. + * As opposed to `list_dependencies_blocked_by`, this function returns all the pages of the request at once. + * + * You can use the REST API to list the dependencies an issue is blocked by. * + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). * + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ - pub async fn list_all_events( + pub async fn list_all_dependencies_blocked_by( &self, owner: &str, repo: &str, issue_number: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/issues/{}/events", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/issues/{}/dependencies/blocked_by", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1456,86 +1714,102 @@ impl Issues { .await } /** - * List labels for an issue. + * Add a dependency an issue is blocked by. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by` endpoint. * + * You can use the REST API to add a 'blocked by' relationship to an issue. * + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see [Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits) + * and [Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api). * - * FROM: + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + * + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ - pub async fn list_labels_on_issue( + pub async fn add_blocked_by_dependency( &self, owner: &str, repo: &str, issue_number: i64, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + body: &crate::types::IssuesAddBlockedByDependencyRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/issues/{}/labels?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/issues/{}/dependencies/blocked_by", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), - query_ ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List labels for an issue. + * Remove dependency an issue is blocked by. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}` endpoint. * - * As opposed to `list_labels_on_issue`, this function returns all the pages of the request at once. + * You can use the REST API to remove a dependency that an issue is blocked by. + * + * Removing content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see [Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits) + * and [Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api). + * + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass a specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * + * FROM: * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `issue_id: i64` -- The id of the blocking issue to remove as a dependency. */ - pub async fn list_all_labels_on_issue( + pub async fn remove_dependency_blocked_by( &self, owner: &str, repo: &str, issue_number: i64, - ) -> ClientResult>> { + issue_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/issues/{}/labels", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/issues/{}/dependencies/blocked_by/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), + crate::progenitor_support::encode_path(&issue_id.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -1545,119 +1819,153 @@ impl Issues { .await } /** - * Set labels for an issue. + * List dependencies an issue is blocking. * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking` endpoint. * - * Removes any previous labels and sets the new labels for an issue. + * You can use the REST API to list the dependencies an issue is blocking. + * + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + * + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn set_labels( + pub async fn list_dependencies_blocking( &self, owner: &str, repo: &str, issue_number: i64, - body: &crate::types::IssuesSetLabelsRequestAnyOf, - ) -> ClientResult>> { + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/issues/{}/labels", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/issues/{}/dependencies/blocking?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), + query_ ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Add labels to an issue. + * List dependencies an issue is blocking. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking` endpoint. * + * As opposed to `list_dependencies_blocking`, this function returns all the pages of the request at once. * + * You can use the REST API to list the dependencies an issue is blocking. * - * FROM: + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). * - * **Parameters:** + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * FROM: */ - pub async fn add_labels( + pub async fn list_all_dependencies_blocking( &self, owner: &str, repo: &str, issue_number: i64, - body: &crate::types::IssuesAddLabelsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/issues/{}/labels", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/issues/{}/dependencies/blocking", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, ); self.client - .post( + .get_all_pages( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove all labels from an issue. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * List issue events. * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/events` endpoint. * + * Lists all events for an issue. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn remove_all_labels( + pub async fn list_events( &self, owner: &str, repo: &str, issue_number: i64, - ) -> ClientResult> { + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/issues/{}/labels", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/issues/{}/events?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -1667,19 +1975,266 @@ impl Issues { .await } /** - * Remove a label from an issue. + * List issue events. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/events` endpoint. + * + * As opposed to `list_events`, this function returns all the pages of the request at once. + * + * Lists all events for an issue. + * + * FROM: + */ + pub async fn list_all_events( + &self, + owner: &str, + repo: &str, + issue_number: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/events", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List labels for an issue. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * + * Lists all labels for an issue. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_labels_on_issue( + &self, + owner: &str, + repo: &str, + issue_number: i64, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/labels?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List labels for an issue. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * + * As opposed to `list_labels_on_issue`, this function returns all the pages of the request at once. + * + * Lists all labels for an issue. + * + * FROM: + */ + pub async fn list_all_labels_on_issue( + &self, + owner: &str, + repo: &str, + issue_number: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set labels for an issue. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * + * Removes any previous labels and sets the new labels for an issue. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + */ + pub async fn set_labels( + &self, + owner: &str, + repo: &str, + issue_number: i64, + body: &crate::types::IssuesAddLabelsRequestOneOf, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Add labels to an issue. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * + * Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + */ + pub async fn add_labels( + &self, + owner: &str, + repo: &str, + issue_number: i64, + body: &crate::types::IssuesAddLabelsRequestOneOf, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Remove all labels from an issue. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels` endpoint. + * + * Removes all labels from an issue. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + */ + pub async fn remove_all_labels( + &self, + owner: &str, + repo: &str, + issue_number: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/labels", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove a label from an issue. * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}` endpoint. * * Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. * * `name: &str` */ pub async fn remove_label( @@ -1692,10 +2247,10 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/labels/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), - crate::progenitor_support::encode_path(name), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); @@ -1716,15 +2271,15 @@ impl Issues { * * Users with push access can lock an issue or pull request's conversation. * - * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn lock( &self, @@ -1736,8 +2291,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/lock", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1759,13 +2314,13 @@ impl Issues { * * Users with push access can unlock an issue's conversation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn unlock( &self, @@ -1776,8 +2331,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/lock", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1792,22 +2347,314 @@ impl Issues { ) .await } + /** + * Get parent issue. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/parent` endpoint. + * + * You can use the REST API to get the parent issue of a sub-issue. + * + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + */ + pub async fn get_parent( + &self, + owner: &str, + repo: &str, + issue_number: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/parent", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove sub-issue. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/{issue_number}/sub_issue` endpoint. + * + * You can use the REST API to remove a sub-issue from an issue. + * Removing content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass a specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + */ + pub async fn remove_sub_issue( + &self, + owner: &str, + repo: &str, + issue_number: i64, + body: &crate::types::IssuesRemoveSubIssueRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/sub_issue", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List sub-issues. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/sub_issues` endpoint. + * + * You can use the REST API to list the sub-issues on an issue. + * + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + * + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_sub_issues( + &self, + owner: &str, + repo: &str, + issue_number: i64, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/sub_issues?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List sub-issues. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/sub_issues` endpoint. + * + * As opposed to `list_sub_issues`, this function returns all the pages of the request at once. + * + * You can use the REST API to list the sub-issues on an issue. + * + * This endpoint supports the following custom media types. For more information, see [Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + * + * - **`application/vnd.github.raw+json`**: Returns the raw Markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the Markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's Markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: + */ + pub async fn list_all_sub_issues( + &self, + owner: &str, + repo: &str, + issue_number: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/sub_issues", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Add sub-issue. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/issues/{issue_number}/sub_issues` endpoint. + * + * You can use the REST API to add sub-issues to issues. + * + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + */ + pub async fn add_sub_issue( + &self, + owner: &str, + repo: &str, + issue_number: i64, + body: &crate::types::IssuesAddSubIssueRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/sub_issues", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Reprioritize sub-issue. + * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority` endpoint. + * + * You can use the REST API to reprioritize a sub-issue to a different position in the parent list. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + */ + pub async fn reprioritize_sub_issue( + &self, + owner: &str, + repo: &str, + issue_number: i64, + body: &crate::types::IssuesReprioritizeSubIssueRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/issues/{}/sub_issues/priority", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&issue_number.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } /** * List timeline events for an issue. * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/timeline` endpoint. * + * List all timeline events for an issue. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_events_for_timeline( &self, @@ -1816,7 +2663,7 @@ impl Issues { issue_number: i64, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -1828,8 +2675,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/timeline?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), query_ ), @@ -1852,21 +2699,21 @@ impl Issues { * * As opposed to `list_events_for_timeline`, this function returns all the pages of the request at once. * + * List all timeline events for an issue. * - * - * FROM: + * FROM: */ pub async fn list_all_events_for_timeline( &self, owner: &str, repo: &str, issue_number: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/timeline", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -1886,16 +2733,16 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/labels` endpoint. * + * Lists all labels for a repository. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_labels_for_repo( &self, @@ -1915,8 +2762,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/labels?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -1938,9 +2785,9 @@ impl Issues { * * As opposed to `list_labels_for_repo`, this function returns all the pages of the request at once. * + * Lists all labels for a repository. * - * - * FROM: + * FROM: */ pub async fn list_all_labels_for_repo( &self, @@ -1950,8 +2797,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/labels", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -1970,14 +2817,14 @@ impl Issues { * * This function performs a `POST` to the `/repos/{owner}/{repo}/labels` endpoint. * + * Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_label( &self, @@ -1988,8 +2835,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/labels", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -2008,14 +2855,14 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/labels/{name}` endpoint. * + * Gets a label using the given name. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `name: &str` */ pub async fn get_label( @@ -2027,9 +2874,9 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/labels/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(name), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); @@ -2048,14 +2895,14 @@ impl Issues { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/labels/{name}` endpoint. * + * Deletes a label using the given label name. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `name: &str` */ pub async fn delete_label( @@ -2067,9 +2914,9 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/labels/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(name), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); @@ -2088,14 +2935,14 @@ impl Issues { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/labels/{name}` endpoint. * + * Updates a label using the given label name. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `name: &str` */ pub async fn update_label( @@ -2108,9 +2955,9 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/labels/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(name), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&name.to_string()), ), None, ); @@ -2129,21 +2976,19 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/milestones` endpoint. * + * Lists milestones for a repository. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `state: crate::types::IssuesListState` -- The state of the milestone. Either `open`, `closed`, or `all`. * * `sort: crate::types::IssuesListMilestonesSort` -- What to sort results by. Either `due_on` or `completeness`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_milestones( &self, @@ -2175,8 +3020,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/milestones?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -2198,9 +3043,9 @@ impl Issues { * * As opposed to `list_milestones`, this function returns all the pages of the request at once. * + * Lists milestones for a repository. * - * - * FROM: + * FROM: */ pub async fn list_all_milestones( &self, @@ -2224,8 +3069,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/milestones?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -2245,14 +3090,14 @@ impl Issues { * * This function performs a `POST` to the `/repos/{owner}/{repo}/milestones` endpoint. * + * Creates a milestone. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_milestone( &self, @@ -2263,8 +3108,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/milestones", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -2283,15 +3128,15 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/milestones/{milestone_number}` endpoint. * + * Gets a milestone using the given milestone number. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `milestone_number: i64` -- milestone_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `milestone_number: i64` -- The number that identifies the milestone. */ pub async fn get_milestone( &self, @@ -2302,8 +3147,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/milestones/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&milestone_number.to_string()), ), None, @@ -2323,15 +3168,15 @@ impl Issues { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/milestones/{milestone_number}` endpoint. * + * Deletes a milestone using the given milestone number. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `milestone_number: i64` -- milestone_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `milestone_number: i64` -- The number that identifies the milestone. */ pub async fn delete_milestone( &self, @@ -2342,8 +3187,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/milestones/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&milestone_number.to_string()), ), None, @@ -2365,26 +3210,26 @@ impl Issues { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `milestone_number: i64` -- milestone_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `milestone_number: i64` -- The number that identifies the milestone. */ pub async fn update_milestone( &self, owner: &str, repo: &str, milestone_number: i64, - body: &crate::types::IssuesCreateMilestoneRequest, + body: &crate::types::IssuesUpdateMilestoneRequest, ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/milestones/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&milestone_number.to_string()), ), None, @@ -2404,17 +3249,17 @@ impl Issues { * * This function performs a `GET` to the `/repos/{owner}/{repo}/milestones/{milestone_number}/labels` endpoint. * + * Lists labels for issues in a milestone. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `milestone_number: i64` -- milestone_number parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `milestone_number: i64` -- The number that identifies the milestone. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_labels_for_milestone( &self, @@ -2435,8 +3280,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/milestones/{}/labels?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&milestone_number.to_string()), query_ ), @@ -2459,9 +3304,9 @@ impl Issues { * * As opposed to `list_labels_for_milestone`, this function returns all the pages of the request at once. * + * Lists labels for issues in a milestone. * - * - * FROM: + * FROM: */ pub async fn list_all_labels_for_milestone( &self, @@ -2472,8 +3317,8 @@ impl Issues { let url = self.client.url( &format!( "/repos/{}/{}/milestones/{}/labels", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&milestone_number.to_string()), ), None, @@ -2495,30 +3340,28 @@ impl Issues { * * List issues across owned and member repositories assigned to the authenticated user. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `filter: crate::types::Filter` -- Indicates which sorts of issues to return. Can be one of: - * \\* `assigned`: Issues assigned to you - * \\* `created`: Issues created by you - * \\* `mentioned`: Issues mentioning you - * \\* `subscribed`: Issues you're subscribed to updates for - * \\* `all` or `repos`: All issues the authenticated user can see, regardless of participation or creation. - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + * * `filter: crate::types::Filter` -- Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. + * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. * * `labels: &str` -- A list of comma separated label names. Example: `bug,ui,@high`. - * * `sort: crate::types::IssuesListSort` -- What to sort results by. Can be either `created`, `updated`, `comments`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `sort: crate::types::IssuesListSort` -- What to sort results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_authenticated_user( &self, @@ -2577,12 +3420,17 @@ impl Issues { * * List issues across owned and member repositories assigned to the authenticated user. * - * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this - * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by - * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull - * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + * > [!NOTE] + * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all_for_authenticated_user( &self, diff --git a/github/src/lib.rs b/github/src/lib.rs index 4915e18a..d81706d1 100644 --- a/github/src/lib.rs +++ b/github/src/lib.rs @@ -14,7 +14,7 @@ //! //! | name | url | //! |----|----| -//! | Support | | +//! | Support | | //! //! ### License //! @@ -183,22 +183,44 @@ pub mod apps; pub mod auth; /// Monitor charges and usage from Actions and Packages. pub mod billing; +/// Endpoints to manage campaigns via the REST API. +pub mod campaigns; /// Rich interactions with checks run by your integrations. pub mod checks; +/// Interact with GitHub Classroom. +pub mod classroom; /// Retrieve code scanning alerts from a repository. pub mod code_scanning; +/// Endpoints to manage Code security using the REST API. +pub mod code_security; /// Insight into codes of conduct for your communities. pub mod codes_of_conduct; +/// Endpoints to manage Codespaces using the REST API. +pub mod codespaces; +/// Endpoints to manage Copilot using the REST API. +pub mod copilot; +/// Revoke compromised or leaked GitHub credentials. +pub mod credentials; +/// Endpoints to manage Dependabot. +pub mod dependabot; +/// Endpoints to access Dependency Graph features. +pub mod dependency_graph; /// List emojis available to use on GitHub. pub mod emojis; -/// Administer a GitHub enterprise. -pub mod enterprise_admin; +/// Endpoints to manage GitHub Enterprise Team memberships. +pub mod enterprise_team_memberships; +/// Endpoints to manage GitHub Enterprise Team organization assignments. +pub mod enterprise_team_organizations; +/// Endpoints to manage GitHub Enterprise Teams. +pub mod enterprise_teams; /// View, modify your gists. pub mod gists; /// Raw Git functionality. pub mod git; /// View gitignore templates. pub mod gitignore; +/// Manage hosted compute networking resources. +pub mod hosted_compute; #[cfg(feature = "httpcache")] #[cfg_attr(docsrs, doc(cfg(feature = "httpcache")))] pub mod http_cache; @@ -208,19 +230,21 @@ pub mod interactions; pub mod issues; /// View various OSS licenses. pub mod licenses; -/// Render Github flavored markdown. +/// Render GitHub flavored Markdown. pub mod markdown; /// Endpoints that give information about the API. pub mod meta; /// Move projects to or from GitHub. pub mod migrations; -/// Manage access of OAuth applications. -pub mod oauth_authorizations; -/// Interact with GitHub Orgs. +/// Endpoints to manage GitHub OIDC configuration using the REST API. +pub mod oidc; +/// Interact with organizations. pub mod orgs; /// Manage packages for authenticated users and organizations. pub mod packages; -/// Interact with GitHub Projects. +/// Manage private registry configurations. +pub mod private_registries; +/// Endpoints to manage Projects using the REST API. pub mod projects; /// Interact with GitHub Pull Requests. pub mod pulls; @@ -230,12 +254,12 @@ pub mod rate_limit; pub mod reactions; /// Interact with GitHub Repos. pub mod repos; -/// Provisioning of GitHub organization membership for SCIM-enabled providers. -pub mod scim; -/// Look for stuff on GitHub. +/// Search for specific items on GitHub. pub mod search; /// Retrieve secret scanning alerts from a repository. pub mod secret_scanning; +/// Manage security advisories. +pub mod security_advisories; /// Interact with GitHub Teams. pub mod teams; pub mod types; @@ -479,7 +503,7 @@ impl Client { self.credentials = credentials.into(); } - fn credentials( + fn get_credentials( &self, authentication: crate::auth::AuthenticationConstraint, ) -> Option<&crate::auth::Credentials> { @@ -491,7 +515,7 @@ impl Client { ) => creds, ( crate::auth::AuthenticationConstraint::JWT, - Some(crate::auth::Credentials::InstallationToken(apptoken)), + Some(&crate::auth::Credentials::InstallationToken(ref apptoken)), ) => Some(apptoken.jwt()), (crate::auth::AuthenticationConstraint::JWT, _) => { log::info!( @@ -509,23 +533,23 @@ impl Client { ) -> ClientResult<(reqwest::Url, Option)> { let mut parsed_url = uri.parse::()?; - match self.credentials(authentication) { - Some(crate::auth::Credentials::Client(id, secret)) => { + match self.get_credentials(authentication) { + Some(&crate::auth::Credentials::Client(ref id, ref secret)) => { parsed_url .query_pairs_mut() .append_pair("client_id", id) .append_pair("client_secret", secret); Ok((parsed_url, None)) } - Some(crate::auth::Credentials::Token(token)) => { + Some(&crate::auth::Credentials::Token(ref token)) => { let auth = format!("token {}", token); Ok((parsed_url, Some(auth))) } - Some(crate::auth::Credentials::JWT(jwt)) => { + Some(&crate::auth::Credentials::JWT(ref jwt)) => { let auth = format!("Bearer {}", jwt.token()); Ok((parsed_url, Some(auth))) } - Some(crate::auth::Credentials::InstallationToken(apptoken)) => { + Some(&crate::auth::Credentials::InstallationToken(ref apptoken)) => { let token = if let Some(token) = apptoken.token().await { token } else { @@ -539,7 +563,7 @@ impl Client { let token = self .apps() .create_installation_access_token( - apptoken.installation_id, + apptoken.installation_id as i64, &types::AppsCreateInstallationAccessTokenRequest { permissions: Default::default(), repositories: Default::default(), @@ -804,7 +828,7 @@ impl Client { { self.request_entity( http::Method::GET, - uri, + &uri, message, media, crate::auth::AuthenticationConstraint::Unconstrained, @@ -832,7 +856,7 @@ impl Client { { self.request( http::Method::GET, - uri, + &uri, Message::default(), crate::utils::MediaType::Json, crate::auth::AuthenticationConstraint::Unconstrained, @@ -880,7 +904,7 @@ impl Client { where D: serde::de::DeserializeOwned + 'static + Send, { - self.request_entity(http::Method::POST, uri, message, media, authentication) + self.request_entity(http::Method::POST, &uri, message, media, authentication) .await } @@ -895,7 +919,7 @@ impl Client { { self.request_entity( http::Method::PATCH, - uri, + &uri, message, media, crate::auth::AuthenticationConstraint::Unconstrained, @@ -930,7 +954,7 @@ impl Client { { self.request_entity( http::Method::PUT, - uri, + &uri, message, media, crate::auth::AuthenticationConstraint::Unconstrained, @@ -944,7 +968,7 @@ impl Client { { self.request_entity( http::Method::DELETE, - uri, + &uri, message, crate::utils::MediaType::Json, crate::auth::AuthenticationConstraint::Unconstrained, @@ -1018,9 +1042,14 @@ impl Client { emojis::Emojis::new(self.clone()) } - /// Administer a GitHub enterprise. - pub fn enterprise_admin(&self) -> enterprise_admin::EnterpriseAdmin { - enterprise_admin::EnterpriseAdmin::new(self.clone()) + /// Endpoints to manage Dependabot. + pub fn dependabot(&self) -> dependabot::Dependabot { + dependabot::Dependabot::new(self.clone()) + } + + /// Endpoints to access Dependency Graph features. + pub fn dependency_graph(&self) -> dependency_graph::DependencyGraph { + dependency_graph::DependencyGraph::new(self.clone()) } /// View, modify your gists. @@ -1038,11 +1067,6 @@ impl Client { gitignore::Gitignore::new(self.clone()) } - /// Owner or admin management of users interactions. - pub fn interactions(&self) -> interactions::Interactions { - interactions::Interactions::new(self.clone()) - } - /// Interact with GitHub Issues. pub fn issues(&self) -> issues::Issues { issues::Issues::new(self.clone()) @@ -1053,7 +1077,7 @@ impl Client { licenses::Licenses::new(self.clone()) } - /// Render Github flavored markdown. + /// Render GitHub flavored Markdown. pub fn markdown(&self) -> markdown::Markdown { markdown::Markdown::new(self.clone()) } @@ -1068,12 +1092,12 @@ impl Client { migrations::Migrations::new(self.clone()) } - /// Manage access of OAuth applications. - pub fn oauth_authorizations(&self) -> oauth_authorizations::OauthAuthorizations { - oauth_authorizations::OauthAuthorizations::new(self.clone()) + /// Endpoints to manage GitHub OIDC configuration using the REST API. + pub fn oidc(&self) -> oidc::Oidc { + oidc::Oidc::new(self.clone()) } - /// Interact with GitHub Orgs. + /// Interact with organizations. pub fn orgs(&self) -> orgs::Orgs { orgs::Orgs::new(self.clone()) } @@ -1083,11 +1107,6 @@ impl Client { packages::Packages::new(self.clone()) } - /// Interact with GitHub Projects. - pub fn projects(&self) -> projects::Projects { - projects::Projects::new(self.clone()) - } - /// Interact with GitHub Pull Requests. pub fn pulls(&self) -> pulls::Pulls { pulls::Pulls::new(self.clone()) @@ -1108,12 +1127,7 @@ impl Client { repos::Repos::new(self.clone()) } - /// Provisioning of GitHub organization membership for SCIM-enabled providers. - pub fn scim(&self) -> scim::Scim { - scim::Scim::new(self.clone()) - } - - /// Look for stuff on GitHub. + /// Search for specific items on GitHub. pub fn search(&self) -> search::Search { search::Search::new(self.clone()) } @@ -1132,4 +1146,78 @@ impl Client { pub fn users(&self) -> users::Users { users::Users::new(self.clone()) } + + /// Endpoints to manage Codespaces using the REST API. + pub fn codespaces(&self) -> codespaces::Codespaces { + codespaces::Codespaces::new(self.clone()) + } + + /// Endpoints to manage Copilot using the REST API. + pub fn copilot(&self) -> copilot::Copilot { + copilot::Copilot::new(self.clone()) + } + + /// Manage security advisories. + pub fn security_advisories(&self) -> security_advisories::SecurityAdvisories { + security_advisories::SecurityAdvisories::new(self.clone()) + } + + /// Owner or admin management of users interactions. + pub fn interactions(&self) -> interactions::Interactions { + interactions::Interactions::new(self.clone()) + } + + /// Interact with GitHub Classroom. + pub fn classroom(&self) -> classroom::Classroom { + classroom::Classroom::new(self.clone()) + } + + /// Endpoints to manage GitHub Enterprise Teams. + pub fn enterprise_teams(&self) -> enterprise_teams::EnterpriseTeams { + enterprise_teams::EnterpriseTeams::new(self.clone()) + } + + /// Endpoints to manage GitHub Enterprise Team memberships. + pub fn enterprise_team_memberships( + &self, + ) -> enterprise_team_memberships::EnterpriseTeamMemberships { + enterprise_team_memberships::EnterpriseTeamMemberships::new(self.clone()) + } + + /// Endpoints to manage GitHub Enterprise Team organization assignments. + pub fn enterprise_team_organizations( + &self, + ) -> enterprise_team_organizations::EnterpriseTeamOrganizations { + enterprise_team_organizations::EnterpriseTeamOrganizations::new(self.clone()) + } + + /// Endpoints to manage Code security using the REST API. + pub fn code_security(&self) -> code_security::CodeSecurity { + code_security::CodeSecurity::new(self.clone()) + } + + /// Manage private registry configurations. + pub fn private_registries(&self) -> private_registries::PrivateRegistries { + private_registries::PrivateRegistries::new(self.clone()) + } + + /// Manage hosted compute networking resources. + pub fn hosted_compute(&self) -> hosted_compute::HostedCompute { + hosted_compute::HostedCompute::new(self.clone()) + } + + /// Revoke compromised or leaked GitHub credentials. + pub fn credentials(&self) -> credentials::Credentials { + credentials::Credentials::new(self.clone()) + } + + /// Endpoints to manage campaigns via the REST API. + pub fn campaigns(&self) -> campaigns::Campaigns { + campaigns::Campaigns::new(self.clone()) + } + + /// Endpoints to manage Projects using the REST API. + pub fn projects(&self) -> projects::Projects { + projects::Projects::new(self.clone()) + } } diff --git a/github/src/licenses.rs b/github/src/licenses.rs index 64be31f3..8f884667 100644 --- a/github/src/licenses.rs +++ b/github/src/licenses.rs @@ -16,22 +16,22 @@ impl Licenses { * * This function performs a `GET` to the `/licenses` endpoint. * + * Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." * - * - * FROM: + * FROM: * * **Parameters:** * * * `featured: bool` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn get_all_commonly_used( &self, featured: bool, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if featured { query_args.push(("featured".to_string(), featured.to_string())); @@ -61,14 +61,14 @@ impl Licenses { * * As opposed to `get_all_commonly_used`, this function returns all the pages of the request at once. * + * Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." * - * - * FROM: + * FROM: */ pub async fn get_all_all_commonly_used( &self, featured: bool, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if featured { query_args.push(("featured".to_string(), featured.to_string())); @@ -90,22 +90,19 @@ impl Licenses { * * This function performs a `GET` to the `/licenses/{license}` endpoint. * + * Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." * - * - * FROM: + * FROM: * * **Parameters:** * * * `license: &str` */ - pub async fn get( - &self, - license: &str, - ) -> ClientResult> { + pub async fn get(&self, license: &str) -> ClientResult> { let url = self.client.url( &format!( "/licenses/{}", - crate::progenitor_support::encode_path(license), + crate::progenitor_support::encode_path(&license.to_string()), ), None, ); @@ -126,25 +123,36 @@ impl Licenses { * * This method returns the contents of the repository's license file, if one is detected. * - * Similar to [Get repository content](https://docs.github.com/rest/reference/repos#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ pub async fn get_for_repo( &self, owner: &str, repo: &str, + ref_: &str, ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/license", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/license?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); diff --git a/github/src/markdown.rs b/github/src/markdown.rs index 5912e2d6..dd03592c 100644 --- a/github/src/markdown.rs +++ b/github/src/markdown.rs @@ -16,15 +16,15 @@ impl Markdown { * * This function performs a `POST` to the `/markdown` endpoint. * + * Depending on what is rendered in the Markdown, you may need to provide additional token scopes for labels, such as `issues:read` or `pull_requests:read`. * - * - * FROM: + * FROM: */ pub async fn render( &self, body: &crate::types::MarkdownRenderRequest, ) -> ClientResult> { - let url = self.client.url("/markdown", None); + let url = self.client.url(&"/markdown".to_string(), None); self.client .post( &url, @@ -42,13 +42,13 @@ impl Markdown { * * You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. * - * FROM: + * FROM: */ pub async fn render_raw>( &self, body: T, ) -> ClientResult> { - let url = self.client.url("/markdown/raw", None); + let url = self.client.url(&"/markdown/raw".to_string(), None); self.client .post( &url, diff --git a/github/src/meta.rs b/github/src/meta.rs index 920dd93f..e93f7e0b 100644 --- a/github/src/meta.rs +++ b/github/src/meta.rs @@ -18,9 +18,9 @@ impl Meta { * * Get Hypermedia links to resources accessible in GitHub's REST API * - * FROM: + * FROM: */ - pub async fn root(&self) -> ClientResult> { + pub async fn root(&self) -> ClientResult> { let url = self.client.url("", None); self.client .get( @@ -37,14 +37,19 @@ impl Meta { * * This function performs a `GET` to the `/meta` endpoint. * - * Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://help.github.com/articles/about-github-s-ip-addresses/)." + * Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." * - * **Note:** The IP addresses shown in the documentation's response are only example values. You must always query the API directly to get the latest list of IP addresses. + * The API's response also includes a list of GitHub's domain names. * - * FROM: + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * > [!NOTE] + * > This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + * + * FROM: */ pub async fn get(&self) -> ClientResult> { - let url = self.client.url("/meta", None); + let url = self.client.url(&"/meta".to_string(), None); self.client .get( &url, @@ -62,7 +67,7 @@ impl Meta { * * Get the octocat as ASCII art * - * FROM: + * FROM: * * **Parameters:** * @@ -85,15 +90,65 @@ impl Meta { ) .await } + /** + * Get all API versions. + * + * This function performs a `GET` to the `/versions` endpoint. + * + * Get all supported GitHub API versions. + * + * FROM: + */ + pub async fn get_all_versions( + &self, + ) -> ClientResult>>> { + let url = self.client.url(&"/versions".to_string(), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get all API versions. + * + * This function performs a `GET` to the `/versions` endpoint. + * + * As opposed to `get_all_versions`, this function returns all the pages of the request at once. + * + * Get all supported GitHub API versions. + * + * FROM: + */ + pub async fn get_all_all_versions( + &self, + ) -> ClientResult>>> { + let url = self.client.url(&"/versions".to_string(), None); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Get the Zen of GitHub. * * This function performs a `GET` to the `/zen` endpoint. * * Get a random sentence from the Zen of GitHub + * + * FROM: */ pub async fn get_zen(&self) -> ClientResult> { - let url = self.client.url("/zen", None); + let url = self.client.url(&"/zen".to_string(), None); self.client .get( &url, diff --git a/github/src/migrations.rs b/github/src/migrations.rs index 7f9fdd74..8b229433 100644 --- a/github/src/migrations.rs +++ b/github/src/migrations.rs @@ -16,15 +16,17 @@ impl Migrations { * * This function performs a `GET` to the `/orgs/{org}/migrations` endpoint. * - * Lists the most recent migrations. + * Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). * - * FROM: + * A list of `repositories` is only returned for export migrations. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". * * `exclude: &[String]` -- Exclude attributes from the API response to improve performance. */ pub async fn list_for_org( @@ -48,7 +50,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -70,9 +72,11 @@ impl Migrations { * * As opposed to `list_for_org`, this function returns all the pages of the request at once. * - * Lists the most recent migrations. + * Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. * - * FROM: + * FROM: */ pub async fn list_all_for_org( &self, @@ -87,7 +91,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -109,11 +113,11 @@ impl Migrations { * * Initiates the generation of a migration archive. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn start_for_org( &self, @@ -123,7 +127,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -151,12 +155,12 @@ impl Migrations { * * `exported`, which means the migration finished successfully. * * `failed`, which means the migration failed. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `migration_id: i64` -- migration_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `migration_id: i64` -- The unique identifier of the migration. * * `exclude: &[String]` -- Exclude attributes from the API response to improve performance. */ pub async fn get_status_for_org( @@ -173,7 +177,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations/{}?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&migration_id.to_string()), query_ ), @@ -196,12 +200,12 @@ impl Migrations { * * Fetches the URL to a migration archive. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `migration_id: i64` -- migration_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `migration_id: i64` -- The unique identifier of the migration. */ pub async fn download_archive_for_org( &self, @@ -211,7 +215,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations/{}/archive", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&migration_id.to_string()), ), None, @@ -233,12 +237,12 @@ impl Migrations { * * Deletes a previous migration archive. Migration archives are automatically deleted after seven days. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `migration_id: i64` -- migration_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `migration_id: i64` -- The unique identifier of the migration. */ pub async fn delete_archive_for_org( &self, @@ -248,7 +252,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations/{}/archive", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&migration_id.to_string()), ), None, @@ -268,14 +272,14 @@ impl Migrations { * * This function performs a `DELETE` to the `/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock` endpoint. * - * Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + * Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `migration_id: i64` -- migration_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `migration_id: i64` -- The unique identifier of the migration. * * `repo_name: &str` -- repo_name parameter. */ pub async fn unlock_repo_for_org( @@ -287,9 +291,9 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations/{}/repos/{}/lock", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&migration_id.to_string()), - crate::progenitor_support::encode_path(repo_name), + crate::progenitor_support::encode_path(&repo_name.to_string()), ), None, ); @@ -310,14 +314,14 @@ impl Migrations { * * List all the repositories for this organization migration. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `migration_id: i64` -- migration_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `migration_id: i64` -- The unique identifier of the migration. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repos_for_org( &self, @@ -337,7 +341,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations/{}/repositories?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&migration_id.to_string()), query_ ), @@ -362,7 +366,7 @@ impl Migrations { * * List all the repositories for this organization migration. * - * FROM: + * FROM: */ pub async fn list_all_repos_for_org( &self, @@ -372,7 +376,7 @@ impl Migrations { let url = self.client.url( &format!( "/orgs/{}/migrations/{}/repositories", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&migration_id.to_string()), ), None, @@ -394,6 +398,9 @@ impl Migrations { * * View the progress of an import. * + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * * **Import status** * * This section includes details about the possible values of the `status` field of the Import Progress response. @@ -408,11 +415,11 @@ impl Migrations { * * If there are problems, you will see one of these in the `status` field: * - * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. - * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=rest-api) for more information. - * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. - * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL. - * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. * * **The project_choices field** * @@ -427,12 +434,12 @@ impl Migrations { * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_import_status( &self, @@ -442,8 +449,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -463,13 +470,18 @@ impl Migrations { * This function performs a `PUT` to the `/repos/{owner}/{repo}/import` endpoint. * * Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn start_import( &self, @@ -480,8 +492,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -502,12 +514,15 @@ impl Migrations { * * Stop an import for a repository. * - * FROM: + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn cancel_import( &self, @@ -517,8 +532,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -540,12 +555,19 @@ impl Migrations { * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API * request. If no parameters are provided, the import will be restarted. * - * FROM: + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn update_import( &self, @@ -556,8 +578,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -578,14 +600,17 @@ impl Migrations { * * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. * - * This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information. + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. * - * FROM: + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `since: i64` -- A user ID. Only return users with an ID greater than this ID. */ pub async fn get_commit_authors( @@ -602,8 +627,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import/authors?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -627,9 +652,12 @@ impl Migrations { * * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. * - * This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information. + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). * - * FROM: + * FROM: */ pub async fn get_all_commit_authors( &self, @@ -645,8 +673,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import/authors?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -666,14 +694,18 @@ impl Migrations { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/import/authors/{author_id}` endpoint. * - * Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository. + * Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. * - * FROM: + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `author_id: i64` */ pub async fn map_commit_author( @@ -681,13 +713,13 @@ impl Migrations { owner: &str, repo: &str, author_id: i64, - body: &crate::types::Author, + body: &crate::types::MigrationsMapCommitAuthorRequest, ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/import/authors/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&author_id.to_string()), ), None, @@ -709,12 +741,15 @@ impl Migrations { * * List files larger than 100MB found during the import * - * FROM: + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_large_files( &self, @@ -724,8 +759,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import/large_files", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -748,7 +783,10 @@ impl Migrations { * * List files larger than 100MB found during the import * - * FROM: + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * FROM: */ pub async fn get_all_large_files( &self, @@ -758,8 +796,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import/large_files", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -778,14 +816,21 @@ impl Migrations { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/import/lfs` endpoint. * - * You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://help.github.com/articles/versioning-large-files/). + * You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * > [!WARNING] + * > **Endpoint closing down notice:** Due to very low levels of usage and available alternatives, this endpoint is closing down and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn set_lfs_preference( &self, @@ -796,8 +841,8 @@ impl Migrations { let url = self.client.url( &format!( "/repos/{}/{}/import/lfs", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -818,12 +863,12 @@ impl Migrations { * * Lists all migrations a user has started. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_authenticated_user( &self, @@ -860,12 +905,12 @@ impl Migrations { * * Lists all migrations a user has started. * - * FROM: + * FROM: */ pub async fn list_all_for_authenticated_user( &self, ) -> ClientResult>> { - let url = self.client.url("/user/migrations", None); + let url = self.client.url(&"/user/migrations".to_string(), None); self.client .get_all_pages( &url, @@ -883,13 +928,13 @@ impl Migrations { * * Initiates the generation of a user migration archive. * - * FROM: + * FROM: */ pub async fn start_for_authenticated_user( &self, body: &crate::types::MigrationsStartRequest, ) -> ClientResult> { - let url = self.client.url("/user/migrations", None); + let url = self.client.url(&"/user/migrations".to_string(), None); self.client .post( &url, @@ -912,14 +957,14 @@ impl Migrations { * * `exported` - the migration finished successfully. * * `failed` - the migration failed. * - * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive). + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). * - * FROM: + * FROM: * * **Parameters:** * - * * `migration_id: i64` -- migration_id parameter. - * * `exclude: &[String]` -- The list of events for the GitHub app. + * * `migration_id: i64` -- The unique identifier of the migration. + * * `exclude: &[String]` -- The functions in the package that are affected by the vulnerability. */ pub async fn get_status_for_authenticated_user( &self, @@ -976,11 +1021,11 @@ impl Migrations { * * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. * - * FROM: + * FROM: * * **Parameters:** * - * * `migration_id: i64` -- migration_id parameter. + * * `migration_id: i64` -- The unique identifier of the migration. */ pub async fn get_archive_for_authenticated_user( &self, @@ -1008,13 +1053,13 @@ impl Migrations { * * This function performs a `DELETE` to the `/user/migrations/{migration_id}/archive` endpoint. * - * Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + * Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. * - * FROM: + * FROM: * * **Parameters:** * - * * `migration_id: i64` -- migration_id parameter. + * * `migration_id: i64` -- The unique identifier of the migration. */ pub async fn delete_archive_for_authenticated_user( &self, @@ -1042,13 +1087,13 @@ impl Migrations { * * This function performs a `DELETE` to the `/user/migrations/{migration_id}/repos/{repo_name}/lock` endpoint. * - * Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + * Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. * - * FROM: + * FROM: * * **Parameters:** * - * * `migration_id: i64` -- migration_id parameter. + * * `migration_id: i64` -- The unique identifier of the migration. * * `repo_name: &str` -- repo_name parameter. */ pub async fn unlock_repo_for_authenticated_user( @@ -1060,7 +1105,7 @@ impl Migrations { &format!( "/user/migrations/{}/repos/{}/lock", crate::progenitor_support::encode_path(&migration_id.to_string()), - crate::progenitor_support::encode_path(repo_name), + crate::progenitor_support::encode_path(&repo_name.to_string()), ), None, ); @@ -1081,15 +1126,15 @@ impl Migrations { * * Lists all the repositories for this user migration. * - * FROM: + * FROM: * * **Parameters:** * - * * `migration_id: i64` -- migration_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `migration_id: i64` -- The unique identifier of the migration. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_repos_for_user( + pub async fn list_repos_for_authenticated_user( &self, migration_id: i64, per_page: i64, @@ -1126,13 +1171,13 @@ impl Migrations { * * This function performs a `GET` to the `/user/migrations/{migration_id}/repositories` endpoint. * - * As opposed to `list_repos_for_user`, this function returns all the pages of the request at once. + * As opposed to `list_repos_for_authenticated_user`, this function returns all the pages of the request at once. * * Lists all the repositories for this user migration. * - * FROM: + * FROM: */ - pub async fn list_all_repos_for_user( + pub async fn list_all_repos_for_authenticated_user( &self, migration_id: i64, ) -> ClientResult>> { diff --git a/github/src/oidc.rs b/github/src/oidc.rs new file mode 100644 index 00000000..63b2faeb --- /dev/null +++ b/github/src/oidc.rs @@ -0,0 +1,87 @@ +use crate::Client; +use crate::ClientResult; + +pub struct Oidc { + pub client: Client, +} + +impl Oidc { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + Oidc { client } + } + + /** + * Get the customization template for an OIDC subject claim for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/actions/oidc/customization/sub` endpoint. + * + * Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_oidc_custom_sub_template_for_org( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/oidc/customization/sub", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set the customization template for an OIDC subject claim for an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/actions/oidc/customization/sub` endpoint. + * + * Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn update_oidc_custom_sub_template_for_org( + &self, + org: &str, + body: &crate::types::OidcCustomSub, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/actions/oidc/customization/sub", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } +} diff --git a/github/src/orgs.rs b/github/src/orgs.rs index e9ea56e5..25485f6d 100644 --- a/github/src/orgs.rs +++ b/github/src/orgs.rs @@ -16,16 +16,17 @@ impl Orgs { * * This function performs a `GET` to the `/organizations` endpoint. * - * Lists all organizations, in the order that they were created on GitHub. + * Lists all organizations, in the order that they were created. * - * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations. + * > [!NOTE] + * > Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. * - * FROM: + * FROM: * * **Parameters:** * * * `since: i64` -- An organization ID. Only return organizations with an ID greater than this ID. - * * `per_page: i64` -- Results per page (max 100). + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list( &self, @@ -58,11 +59,12 @@ impl Orgs { * * As opposed to `list`, this function returns all the pages of the request at once. * - * Lists all organizations, in the order that they were created on GitHub. + * Lists all organizations, in the order that they were created. * - * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations. + * > [!NOTE] + * > Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. * - * FROM: + * FROM: */ pub async fn list_all( &self, @@ -89,22 +91,31 @@ impl Orgs { * * This function performs a `GET` to the `/orgs/{org}` endpoint. * - * To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * Gets information about an organization. * - * GitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See "[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)" for details. For an example response, see 'Response with GitHub plan information' below." + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, outside collaborators, guest collaborators, repository collaborators, or everyone with access to any repository within the organization to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). * - * FROM: + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + * + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn get( &self, org: &str, ) -> ClientResult> { let url = self.client.url( - &format!("/orgs/{}", crate::progenitor_support::encode_path(org),), + &format!( + "/orgs/{}", + crate::progenitor_support::encode_path(&org.to_string()), + ), None, ); self.client @@ -117,20 +128,65 @@ impl Orgs { ) .await } + /** + * Delete an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}` endpoint. + * + * Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn delete(&self, org: &str) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Update an organization. * * This function performs a `PATCH` to the `/orgs/{org}` endpoint. * - * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * > [!WARNING] + * > **Closing down notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * > [!WARNING] + * > **Closing down notice:** Code security product enablement for new repositories through the organization API is closing down. Please use [code security configurations](https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-organization) to set defaults instead. For more information on setting a default security configuration, see the [changelog](https://github.blog/changelog/2024-07-09-sunsetting-security-settings-defaults-parameters-in-the-organizations-rest-api/). * - * Enables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges. + * Updates the organization's profile and member privileges. * - * FROM: + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn update( &self, @@ -138,7 +194,10 @@ impl Orgs { body: &crate::types::OrgsUpdateRequest, ) -> ClientResult> { let url = self.client.url( - &format!("/orgs/{}", crate::progenitor_support::encode_path(org),), + &format!( + "/orgs/{}", + crate::progenitor_support::encode_path(&org.to_string()), + ), None, ); self.client @@ -152,46 +211,234 @@ impl Orgs { .await } /** - * Get the audit log for an organization. + * Create an artifact deployment record. + * + * This function performs a `POST` to the `/orgs/{org}/artifacts/metadata/deployment-record` endpoint. + * + * Create or update deployment records for an artifact associated + * with an organization. + * This endpoint allows you to record information about a specific + * artifact, such as its name, digest, environments, cluster, and + * deployment. + * The deployment name has to be uniqe within a cluster (i.e a + * combination of logical, physical environment and cluster) as it + * identifies unique deployment. + * Multiple requests for the same combination of logical, physical + * environment, cluster and deployment name will only create one + * record, successive request will update the existing record. + * This allows for a stable tracking of a deployment where the actual + * deployed artifact can change over time. + * + * FROM: * - * This function performs a `GET` to the `/orgs/{org}/audit-log` endpoint. + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_artifact_deployment_record( + &self, + org: &str, + body: &crate::types::OrgsCreateArtifactDeploymentRecordRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/artifacts/metadata/deployment-record", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Set cluster deployment records. * - * Gets the audit log for an organization. For more information, see "[Reviewing the audit log for your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization)." + * This function performs a `POST` to the `/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}` endpoint. * - * To use this endpoint, you must be an organization owner, and you must use an access token with the `admin:org` scope. GitHub Apps must have the `organization_administration` read permission to use this endpoint. + * Set deployment records for a given cluster. + * If proposed records in the 'deployments' field have identical 'cluster', 'logical_environment', + * 'physical_environment', and 'deployment_name' values as existing records, the existing records will be updated. + * If no existing records match, new records will be created. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `phrase: &str` -- A search phrase. For more information, see [Searching the audit log](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#searching-the-audit-log). - * * `include: crate::types::Include` -- The event types to include: - * - * - `web` - returns web (non-Git) events - * - `git` - returns Git events - * - `all` - returns both web and Git events - * - * The default is `web`. - * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. - * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. - * * `order: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `cluster: &str` -- The cluster name. */ - pub async fn get_audit_log( + pub async fn set_cluster_deployment_records( &self, org: &str, - phrase: &str, - include: crate::types::Include, - after: &str, - before: &str, - order: crate::types::Order, + cluster: &str, + body: &crate::types::OrgsSetClusterDeploymentRecordsRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/artifacts/metadata/deployment-record/cluster/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&cluster.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Create artifact metadata storage record. + * + * This function performs a `POST` to the `/orgs/{org}/artifacts/metadata/storage-record` endpoint. + * + * Create metadata storage records for artifacts associated with an organization. + * This endpoint will create a new artifact storage record on behalf of any artifact matching the provided digest and + * associated with a repository owned by the organization. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_artifact_storage_record( + &self, + org: &str, + body: &crate::types::OrgsCreateArtifactStorageRecordRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/artifacts/metadata/storage-record", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List artifact deployment records. + * + * This function performs a `GET` to the `/orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records` endpoint. + * + * List deployment records for an artifact metadata associated with an organization. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `subject_digest: &str` -- The SHA256 digest of the artifact, in the form `sha256:HEX_DIGEST`. + */ + pub async fn list_artifact_deployment_records( + &self, + org: &str, + subject_digest: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/artifacts/{}/metadata/deployment-records", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&subject_digest.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List artifact storage records. + * + * This function performs a `GET` to the `/orgs/{org}/artifacts/{subject_digest}/metadata/storage-records` endpoint. + * + * List a collection of artifact storage records with a given subject digest that are associated with repositories owned by an organization. + * + * The collection of storage records returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `content:read` permission is required. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `subject_digest: &str` -- The parameter should be set to the attestation's subject's SHA256 digest, in the form `sha256:HEX_DIGEST`. + */ + pub async fn list_artifact_storage_records( + &self, + org: &str, + subject_digest: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/artifacts/{}/metadata/storage-records", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&subject_digest.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List attestations by bulk subject digests. + * + * This function performs a `POST` to the `/orgs/{org}/attestations/bulk-list` endpoint. + * + * List a collection of artifact attestations associated with any entry in a list of subject digests owned by an organization. + * + * The collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required. + * + * **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn list_attestations_bulk( + &self, per_page: i64, - page: i64, - ) -> ClientResult>> { + before: &str, + after: &str, + org: &str, + body: &crate::types::OrgsListAttestationsBulkRequest, + ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); if !after.is_empty() { query_args.push(("after".to_string(), after.to_string())); @@ -199,62 +446,125 @@ impl Orgs { if !before.is_empty() { query_args.push(("before".to_string(), before.to_string())); } - if !include.to_string().is_empty() { - query_args.push(("include".to_string(), include.to_string())); - } - if !order.to_string().is_empty() { - query_args.push(("order".to_string(), order.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } - if !phrase.is_empty() { - query_args.push(("phrase".to_string(), phrase.to_string())); - } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/audit-log?{}", - crate::progenitor_support::encode_path(org), + "/orgs/{}/attestations/bulk-list?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, ); self.client - .get( + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete attestations in bulk. + * + * This function performs a `POST` to the `/orgs/{org}/attestations/delete-request` endpoint. + * + * Delete artifact attestations in bulk by either subject digests or unique ID. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn delete_attestations_bulk(&self, org: &str) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/attestations/delete-request", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( &url, crate::Message { body: None, - content_type: None, + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get the audit log for an organization. + * Delete attestations by subject digest. * - * This function performs a `GET` to the `/orgs/{org}/audit-log` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/attestations/digest/{subject_digest}` endpoint. * - * As opposed to `get_audit_log`, this function returns all the pages of the request at once. + * Delete an artifact attestation by subject digest. * - * Gets the audit log for an organization. For more information, see "[Reviewing the audit log for your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization)." + * FROM: * - * To use this endpoint, you must be an organization owner, and you must use an access token with the `admin:org` scope. GitHub Apps must have the `organization_administration` read permission to use this endpoint. + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `subject_digest: &str` -- Subject Digest. */ - pub async fn get_all_audit_log( + pub async fn delete_attestations_by_subject_digest( &self, org: &str, - phrase: &str, - include: crate::types::Include, - after: &str, + subject_digest: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/attestations/digest/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&subject_digest.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List attestation repositories. + * + * This function performs a `GET` to the `/orgs/{org}/attestations/repositories` endpoint. + * + * List repositories owned by the provided organization that have created at least one attested artifact + * Results will be sorted in ascending order by repository ID + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `predicate_type: &str` -- Optional filter for fetching attestations with a given predicate type. + * This option accepts `provenance`, `sbom`, `release`, or freeform text + * for custom predicate types. + */ + pub async fn list_attestation_repositories( + &self, + per_page: i64, before: &str, - order: crate::types::Order, - ) -> ClientResult>> { + after: &str, + org: &str, + predicate_type: &str, + ) -> ClientResult>> + { let mut query_args: Vec<(String, String)> = Default::default(); if !after.is_empty() { query_args.push(("after".to_string(), after.to_string())); @@ -262,26 +572,2983 @@ impl Orgs { if !before.is_empty() { query_args.push(("before".to_string(), before.to_string())); } - if !include.to_string().is_empty() { - query_args.push(("include".to_string(), include.to_string())); - } - if !order.to_string().is_empty() { - query_args.push(("order".to_string(), order.to_string())); + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); } - if !phrase.is_empty() { - query_args.push(("phrase".to_string(), phrase.to_string())); + if !predicate_type.is_empty() { + query_args.push(("predicate_type".to_string(), predicate_type.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/audit-log?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/attestations/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List attestation repositories. + * + * This function performs a `GET` to the `/orgs/{org}/attestations/repositories` endpoint. + * + * As opposed to `list_attestation_repositories`, this function returns all the pages of the request at once. + * + * List repositories owned by the provided organization that have created at least one attested artifact + * Results will be sorted in ascending order by repository ID + * + * FROM: + */ + pub async fn list_all_attestation_repositories( + &self, + before: &str, + after: &str, + org: &str, + predicate_type: &str, + ) -> ClientResult>> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !predicate_type.is_empty() { + query_args.push(("predicate_type".to_string(), predicate_type.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/attestations/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete attestations by ID. + * + * This function performs a `DELETE` to the `/orgs/{org}/attestations/{attestation_id}` endpoint. + * + * Delete an artifact attestation by unique ID that is associated with a repository owned by an org. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `attestation_id: i64` -- Attestation ID. + */ + pub async fn delete_attestations_by_id( + &self, + org: &str, + attestation_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/attestations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&attestation_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List attestations. + * + * This function performs a `GET` to the `/orgs/{org}/attestations/{subject_digest}` endpoint. + * + * List a collection of artifact attestations with a given subject digest that are associated with repositories owned by an organization. + * + * The collection of attestations returned by this endpoint is filtered according to the authenticated user's permissions; if the authenticated user cannot read a repository, the attestations associated with that repository will not be included in the response. In addition, when using a fine-grained access token the `attestations:read` permission is required. + * + * **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + * + * FROM: + * + * **Parameters:** + * + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `subject_digest: &str` -- The parameter should be set to the attestation's subject's SHA256 digest, in the form `sha256:HEX_DIGEST`. + * * `predicate_type: &str` -- Optional filter for fetching attestations with a given predicate type. + * This option accepts `provenance`, `sbom`, `release`, or freeform text + * for custom predicate types. + */ + pub async fn list_attestations( + &self, + per_page: i64, + before: &str, + after: &str, + org: &str, + subject_digest: &str, + predicate_type: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !predicate_type.is_empty() { + query_args.push(("predicate_type".to_string(), predicate_type.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/attestations/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&subject_digest.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List users blocked by an organization. + * + * This function performs a `GET` to the `/orgs/{org}/blocks` endpoint. + * + * List the users blocked by an organization. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_blocked_users( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/blocks?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List users blocked by an organization. + * + * This function performs a `GET` to the `/orgs/{org}/blocks` endpoint. + * + * As opposed to `list_blocked_users`, this function returns all the pages of the request at once. + * + * List the users blocked by an organization. + * + * FROM: + */ + pub async fn list_all_blocked_users( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/blocks", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Check if a user is blocked by an organization. + * + * This function performs a `GET` to the `/orgs/{org}/blocks/{username}` endpoint. + * + * Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn check_blocked_user( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/blocks/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Block a user from an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/blocks/{username}` endpoint. + * + * Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn block_user(&self, org: &str, username: &str) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/blocks/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Unblock a user from an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/blocks/{username}` endpoint. + * + * Unblocks the given user on behalf of the specified organization. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn unblock_user( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/blocks/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List failed organization invitations. + * + * This function performs a `GET` to the `/orgs/{org}/failed_invitations` endpoint. + * + * The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_failed_invitations( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/failed_invitations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List failed organization invitations. + * + * This function performs a `GET` to the `/orgs/{org}/failed_invitations` endpoint. + * + * As opposed to `list_failed_invitations`, this function returns all the pages of the request at once. + * + * The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + * + * FROM: + */ + pub async fn list_all_failed_invitations( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/failed_invitations", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization webhooks. + * + * This function performs a `GET` to the `/orgs/{org}/hooks` endpoint. + * + * List webhooks for an organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_webhooks( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/hooks?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization webhooks. + * + * This function performs a `GET` to the `/orgs/{org}/hooks` endpoint. + * + * As opposed to `list_webhooks`, this function returns all the pages of the request at once. + * + * List webhooks for an organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + */ + pub async fn list_all_webhooks( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create an organization webhook. + * + * This function performs a `POST` to the `/orgs/{org}/hooks` endpoint. + * + * Create a hook that posts payloads in JSON format. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or + * edit webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_webhook( + &self, + org: &str, + body: &crate::types::OrgsCreateWebhookRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get an organization webhook. + * + * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}` endpoint. + * + * Returns a webhook configured in an organization. To get only the webhook + * `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization). + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn get_webhook( + &self, + org: &str, + hook_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete an organization webhook. + * + * This function performs a `DELETE` to the `/orgs/{org}/hooks/{hook_id}` endpoint. + * + * Delete a webhook for an organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn delete_webhook( + &self, + org: &str, + hook_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update an organization webhook. + * + * This function performs a `PATCH` to the `/orgs/{org}/hooks/{hook_id}` endpoint. + * + * Updates a webhook configured in an organization. When you update a webhook, + * the `secret` will be overwritten. If you previously had a `secret` set, you must + * provide the same `secret` or set a new `secret` or the secret will be removed. If + * you are only updating individual webhook `config` properties, use "[Update a webhook + * configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)". + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn update_webhook( + &self, + org: &str, + hook_id: i64, + body: &crate::types::OrgsUpdateWebhookRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a webhook configuration for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/config` endpoint. + * + * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn get_webhook_config_for_org( + &self, + org: &str, + hook_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}/config", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a webhook configuration for an organization. + * + * This function performs a `PATCH` to the `/orgs/{org}/hooks/{hook_id}/config` endpoint. + * + * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn update_webhook_config_for_org( + &self, + org: &str, + hook_id: i64, + body: &crate::types::AppsUpdateWebhookConfigAppRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}/config", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List deliveries for an organization webhook. + * + * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/deliveries` endpoint. + * + * Returns a list of webhook deliveries for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `cursor: &str` -- Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. + */ + pub async fn list_webhook_deliveries( + &self, + org: &str, + hook_id: i64, + per_page: i64, + cursor: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !cursor.is_empty() { + query_args.push(("cursor".to_string(), cursor.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}/deliveries?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List deliveries for an organization webhook. + * + * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/deliveries` endpoint. + * + * As opposed to `list_webhook_deliveries`, this function returns all the pages of the request at once. + * + * Returns a list of webhook deliveries for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + */ + pub async fn list_all_webhook_deliveries( + &self, + org: &str, + hook_id: i64, + cursor: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !cursor.is_empty() { + query_args.push(("cursor".to_string(), cursor.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}/deliveries?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a webhook delivery for an organization webhook. + * + * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}` endpoint. + * + * Returns a delivery for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + * * `delivery_id: i64` + */ + pub async fn get_webhook_delivery( + &self, + org: &str, + hook_id: i64, + delivery_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}/deliveries/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + crate::progenitor_support::encode_path(&delivery_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Redeliver a delivery for an organization webhook. + * + * This function performs a `POST` to the `/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts` endpoint. + * + * Redeliver a delivery for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + * * `delivery_id: i64` + */ + pub async fn redeliver_webhook_delivery( + &self, + org: &str, + hook_id: i64, + delivery_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}/deliveries/{}/attempts", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + crate::progenitor_support::encode_path(&delivery_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Ping an organization webhook. + * + * This function performs a `POST` to the `/orgs/{org}/hooks/{hook_id}/pings` endpoint. + * + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) + * to be sent to the hook. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn ping_webhook(&self, org: &str, hook_id: i64) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/hooks/{}/pings", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get route stats by actor. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}` endpoint. + * + * Get API request count statistics for an actor broken down by route within a specified time frame. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `actor_type: crate::types::ApiInsightsActorType` -- The type of the actor. + * * `actor_id: i64` -- The ID of the actor. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `sort: &[String]` -- The property to sort the results by. + * * `api_route_substring: &str` -- Providing a substring will filter results where the API route contains the substring. This is a case-insensitive search. + */ + pub async fn api_insights_get_route_stats_by_actor( + &self, + org: &str, + actor_type: crate::types::ApiInsightsActorType, + actor_id: i64, + min_timestamp: &str, + max_timestamp: &str, + page: i64, + per_page: i64, + direction: crate::types::Order, + sort: &[String], + api_route_substring: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !api_route_substring.is_empty() { + query_args.push(( + "api_route_substring".to_string(), + api_route_substring.to_string(), + )); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !sort.is_empty() { + query_args.push(("sort".to_string(), sort.join(" "))); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/route-stats/{}/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&actor_type.to_string()), + crate::progenitor_support::encode_path(&actor_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get route stats by actor. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}` endpoint. + * + * As opposed to `api_insights_get_route_stats_by_actor`, this function returns all the pages of the request at once. + * + * Get API request count statistics for an actor broken down by route within a specified time frame. + * + * FROM: + */ + pub async fn api_insights_get_all_route_stats_by_actor( + &self, + org: &str, + actor_type: crate::types::ApiInsightsActorType, + actor_id: i64, + min_timestamp: &str, + max_timestamp: &str, + direction: crate::types::Order, + sort: &[String], + api_route_substring: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !api_route_substring.is_empty() { + query_args.push(( + "api_route_substring".to_string(), + api_route_substring.to_string(), + )); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !sort.is_empty() { + query_args.push(("sort".to_string(), sort.join(" "))); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/route-stats/{}/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&actor_type.to_string()), + crate::progenitor_support::encode_path(&actor_id.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get subject stats. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/subject-stats` endpoint. + * + * Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `sort: &[String]` -- The property to sort the results by. + * * `subject_name_substring: &str` -- Providing a substring will filter results where the subject name contains the substring. This is a case-insensitive search. + */ + pub async fn api_insights_get_subject_stats( + &self, + org: &str, + min_timestamp: &str, + max_timestamp: &str, + page: i64, + per_page: i64, + direction: crate::types::Order, + sort: &[String], + subject_name_substring: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !sort.is_empty() { + query_args.push(("sort".to_string(), sort.join(" "))); + } + if !subject_name_substring.is_empty() { + query_args.push(( + "subject_name_substring".to_string(), + subject_name_substring.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/subject-stats?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get subject stats. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/subject-stats` endpoint. + * + * As opposed to `api_insights_get_subject_stats`, this function returns all the pages of the request at once. + * + * Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + * + * FROM: + */ + pub async fn api_insights_get_all_subject_stats( + &self, + org: &str, + min_timestamp: &str, + max_timestamp: &str, + direction: crate::types::Order, + sort: &[String], + subject_name_substring: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !sort.is_empty() { + query_args.push(("sort".to_string(), sort.join(" "))); + } + if !subject_name_substring.is_empty() { + query_args.push(( + "subject_name_substring".to_string(), + subject_name_substring.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/subject-stats?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get summary stats. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/summary-stats` endpoint. + * + * Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + pub async fn api_insights_get_summary_stats( + &self, + org: &str, + min_timestamp: &str, + max_timestamp: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/summary-stats?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get summary stats by user. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/summary-stats/users/{user_id}` endpoint. + * + * Get overall statistics of API requests within the organization for a user. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `user_id: &str` -- The ID of the user to query for stats. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + pub async fn api_insights_get_summary_stats_by_user( + &self, + org: &str, + user_id: &str, + min_timestamp: &str, + max_timestamp: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/summary-stats/users/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&user_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get summary stats by actor. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}` endpoint. + * + * Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `actor_type: crate::types::ApiInsightsActorType` -- The type of the actor. + * * `actor_id: i64` -- The ID of the actor. + */ + pub async fn api_insights_get_summary_stats_by_actor( + &self, + org: &str, + min_timestamp: &str, + max_timestamp: &str, + actor_type: crate::types::ApiInsightsActorType, + actor_id: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/summary-stats/{}/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&actor_type.to_string()), + crate::progenitor_support::encode_path(&actor_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get time stats. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/time-stats` endpoint. + * + * Get the number of API requests and rate-limited requests made within an organization over a specified time period. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `timestamp_increment: &str` -- The increment of time used to breakdown the query results (5m, 10m, 1h, etc.). + */ + pub async fn api_insights_get_time_stats( + &self, + org: &str, + min_timestamp: &str, + max_timestamp: &str, + timestamp_increment: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !timestamp_increment.is_empty() { + query_args.push(( + "timestamp_increment".to_string(), + timestamp_increment.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/time-stats?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get time stats. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/time-stats` endpoint. + * + * As opposed to `api_insights_get_time_stats`, this function returns all the pages of the request at once. + * + * Get the number of API requests and rate-limited requests made within an organization over a specified time period. + * + * FROM: + */ + pub async fn api_insights_get_all_time_stats( + &self, + org: &str, + min_timestamp: &str, + max_timestamp: &str, + timestamp_increment: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !timestamp_increment.is_empty() { + query_args.push(( + "timestamp_increment".to_string(), + timestamp_increment.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/time-stats?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get time stats by user. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/time-stats/users/{user_id}` endpoint. + * + * Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `user_id: &str` -- The ID of the user to query for stats. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `timestamp_increment: &str` -- The increment of time used to breakdown the query results (5m, 10m, 1h, etc.). + */ + pub async fn api_insights_get_time_stats_by_user( + &self, + org: &str, + user_id: &str, + min_timestamp: &str, + max_timestamp: &str, + timestamp_increment: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !timestamp_increment.is_empty() { + query_args.push(( + "timestamp_increment".to_string(), + timestamp_increment.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/time-stats/users/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&user_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get time stats by user. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/time-stats/users/{user_id}` endpoint. + * + * As opposed to `api_insights_get_time_stats_by_user`, this function returns all the pages of the request at once. + * + * Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + * + * FROM: + */ + pub async fn api_insights_get_all_time_stats_by_user( + &self, + org: &str, + user_id: &str, + min_timestamp: &str, + max_timestamp: &str, + timestamp_increment: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !timestamp_increment.is_empty() { + query_args.push(( + "timestamp_increment".to_string(), + timestamp_increment.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/time-stats/users/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&user_id.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get time stats by actor. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}` endpoint. + * + * Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `actor_type: crate::types::ApiInsightsActorType` -- The type of the actor. + * * `actor_id: i64` -- The ID of the actor. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `timestamp_increment: &str` -- The increment of time used to breakdown the query results (5m, 10m, 1h, etc.). + */ + pub async fn api_insights_get_time_stats_by_actor( + &self, + org: &str, + actor_type: crate::types::ApiInsightsActorType, + actor_id: i64, + min_timestamp: &str, + max_timestamp: &str, + timestamp_increment: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !timestamp_increment.is_empty() { + query_args.push(( + "timestamp_increment".to_string(), + timestamp_increment.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/time-stats/{}/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&actor_type.to_string()), + crate::progenitor_support::encode_path(&actor_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get time stats by actor. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}` endpoint. + * + * As opposed to `api_insights_get_time_stats_by_actor`, this function returns all the pages of the request at once. + * + * Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + * + * FROM: + */ + pub async fn api_insights_get_all_time_stats_by_actor( + &self, + org: &str, + actor_type: crate::types::ApiInsightsActorType, + actor_id: i64, + min_timestamp: &str, + max_timestamp: &str, + timestamp_increment: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !timestamp_increment.is_empty() { + query_args.push(( + "timestamp_increment".to_string(), + timestamp_increment.to_string(), + )); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/time-stats/{}/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&actor_type.to_string()), + crate::progenitor_support::encode_path(&actor_id.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get user stats. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/user-stats/{user_id}` endpoint. + * + * Get API usage statistics within an organization for a user broken down by the type of access. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `user_id: &str` -- The ID of the user to query for stats. + * * `min_timestamp: &str` -- The minimum timestamp to query for stats. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `max_timestamp: &str` -- The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `sort: &[String]` -- The property to sort the results by. + * * `actor_name_substring: &str` -- Providing a substring will filter results where the actor name contains the substring. This is a case-insensitive search. + */ + pub async fn api_insights_get_user_stats( + &self, + org: &str, + user_id: &str, + min_timestamp: &str, + max_timestamp: &str, + page: i64, + per_page: i64, + direction: crate::types::Order, + sort: &[String], + actor_name_substring: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !actor_name_substring.is_empty() { + query_args.push(( + "actor_name_substring".to_string(), + actor_name_substring.to_string(), + )); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !sort.is_empty() { + query_args.push(("sort".to_string(), sort.join(" "))); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/user-stats/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&user_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get user stats. + * + * This function performs a `GET` to the `/orgs/{org}/insights/api/user-stats/{user_id}` endpoint. + * + * As opposed to `api_insights_get_user_stats`, this function returns all the pages of the request at once. + * + * Get API usage statistics within an organization for a user broken down by the type of access. + * + * FROM: + */ + pub async fn api_insights_get_all_user_stats( + &self, + org: &str, + user_id: &str, + min_timestamp: &str, + max_timestamp: &str, + direction: crate::types::Order, + sort: &[String], + actor_name_substring: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !actor_name_substring.is_empty() { + query_args.push(( + "actor_name_substring".to_string(), + actor_name_substring.to_string(), + )); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !max_timestamp.is_empty() { + query_args.push(("max_timestamp".to_string(), max_timestamp.to_string())); + } + if !min_timestamp.is_empty() { + query_args.push(("min_timestamp".to_string(), min_timestamp.to_string())); + } + if !sort.is_empty() { + query_args.push(("sort".to_string(), sort.join(" "))); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/insights/api/user-stats/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&user_id.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List app installations for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/installations` endpoint. + * + * Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_app_installations( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/installations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List pending organization invitations. + * + * This function performs a `GET` to the `/orgs/{org}/invitations` endpoint. + * + * The return hash contains a `role` field which refers to the Organization + * Invitation role and will be one of the following values: `direct_member`, `admin`, + * `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub + * member, the `login` field in the return hash will be `null`. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `role: crate::types::OrgsListPendingInvitationsRole` -- Filter invitations by their member role. + * * `invitation_source: crate::types::InvitationSource` -- Filter invitations by their invitation source. + */ + pub async fn list_pending_invitations( + &self, + org: &str, + per_page: i64, + page: i64, + role: crate::types::OrgsListPendingInvitationsRole, + invitation_source: crate::types::InvitationSource, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !invitation_source.to_string().is_empty() { + query_args.push(( + "invitation_source".to_string(), + invitation_source.to_string(), + )); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !role.to_string().is_empty() { + query_args.push(("role".to_string(), role.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/invitations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List pending organization invitations. + * + * This function performs a `GET` to the `/orgs/{org}/invitations` endpoint. + * + * As opposed to `list_pending_invitations`, this function returns all the pages of the request at once. + * + * The return hash contains a `role` field which refers to the Organization + * Invitation role and will be one of the following values: `direct_member`, `admin`, + * `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub + * member, the `login` field in the return hash will be `null`. + * + * FROM: + */ + pub async fn list_all_pending_invitations( + &self, + org: &str, + role: crate::types::OrgsListPendingInvitationsRole, + invitation_source: crate::types::InvitationSource, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !invitation_source.to_string().is_empty() { + query_args.push(( + "invitation_source".to_string(), + invitation_source.to_string(), + )); + } + if !role.to_string().is_empty() { + query_args.push(("role".to_string(), role.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/invitations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create an organization invitation. + * + * This function performs a `POST` to the `/orgs/{org}/invitations` endpoint. + * + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_invitation( + &self, + org: &str, + body: &crate::types::OrgsCreateInvitationRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/invitations", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Cancel an organization invitation. + * + * This function performs a `DELETE` to the `/orgs/{org}/invitations/{invitation_id}` endpoint. + * + * Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `invitation_id: i64` -- The unique identifier of the invitation. + */ + pub async fn cancel_invitation( + &self, + org: &str, + invitation_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/invitations/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&invitation_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization invitation teams. + * + * This function performs a `GET` to the `/orgs/{org}/invitations/{invitation_id}/teams` endpoint. + * + * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `invitation_id: i64` -- The unique identifier of the invitation. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_invitation_teams( + &self, + org: &str, + invitation_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/invitations/{}/teams?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&invitation_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization invitation teams. + * + * This function performs a `GET` to the `/orgs/{org}/invitations/{invitation_id}/teams` endpoint. + * + * As opposed to `list_invitation_teams`, this function returns all the pages of the request at once. + * + * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + * + * FROM: + */ + pub async fn list_all_invitation_teams( + &self, + org: &str, + invitation_id: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/invitations/{}/teams", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&invitation_id.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List issue types for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/issue-types` endpoint. + * + * Lists all issue types for an organization. OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn list_issue_types( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/issue-types", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List issue types for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/issue-types` endpoint. + * + * As opposed to `list_issue_types`, this function returns all the pages of the request at once. + * + * Lists all issue types for an organization. OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_issue_types( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/issue-types", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create issue type for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/issue-types` endpoint. + * + * Create a new issue type for an organization. + * + * You can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization). + * + * To use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and + * personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_issue_type( + &self, + org: &str, + body: &crate::types::OrganizationCreateIssueType, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/issue-types", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Update issue type for an organization. + * + * This function performs a `PUT` to the `/orgs/{org}/issue-types/{issue_type_id}` endpoint. + * + * Updates an issue type for an organization. + * + * You can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization). + * + * To use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and + * personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `issue_type_id: i64` -- The unique identifier of the issue type. + */ + pub async fn update_issue_type( + &self, + org: &str, + issue_type_id: i64, + body: &crate::types::OrganizationCreateIssueType, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/issue-types/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&issue_type_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete issue type for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/issue-types/{issue_type_id}` endpoint. + * + * Deletes an issue type for an organization. + * + * You can find out more about issue types in [Managing issue types in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/configuring-issues/managing-issue-types-in-an-organization). + * + * To use this endpoint, the authenticated user must be an administrator for the organization. OAuth app tokens and + * personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `issue_type_id: i64` -- The unique identifier of the issue type. + */ + pub async fn delete_issue_type( + &self, + org: &str, + issue_type_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/issue-types/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&issue_type_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization members. + * + * This function performs a `GET` to the `/orgs/{org}/members` endpoint. + * + * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `filter: crate::types::OrgsListMembersFilter` -- Filter members returned in the list. `2fa_disabled` means that only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. `2fa_insecure` means that only members with [insecure 2FA methods](https://docs.github.com/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization#requiring-secure-methods-of-two-factor-authentication-in-your-organization) will be returned. These options are only available for organization owners. + * * `role: crate::types::OrgsListMembersRole` -- Filter members returned by their role. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_members( + &self, + org: &str, + filter: crate::types::OrgsListMembersFilter, + role: crate::types::OrgsListMembersRole, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !filter.to_string().is_empty() { + query_args.push(("filter".to_string(), filter.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !role.to_string().is_empty() { + query_args.push(("role".to_string(), role.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/members?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization members. + * + * This function performs a `GET` to the `/orgs/{org}/members` endpoint. + * + * As opposed to `list_members`, this function returns all the pages of the request at once. + * + * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + * + * FROM: + */ + pub async fn list_all_members( + &self, + org: &str, + filter: crate::types::OrgsListMembersFilter, + role: crate::types::OrgsListMembersRole, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !filter.to_string().is_empty() { + query_args.push(("filter".to_string(), filter.to_string())); + } + if !role.to_string().is_empty() { + query_args.push(("role".to_string(), role.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/members?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Check organization membership for a user. + * + * This function performs a `GET` to the `/orgs/{org}/members/{username}` endpoint. + * + * Check if a user is, publicly or privately, a member of the organization. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn check_membership_for_user( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/members/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove an organization member. + * + * This function performs a `DELETE` to the `/orgs/{org}/members/{username}` endpoint. + * + * Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + * + * > [!NOTE] + * > If a user has both direct membership in the organization as well as indirect membership via an enterprise team, only their direct membership will be removed. Their indirect membership via an enterprise team remains until the user is removed from the enterprise team. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn remove_member( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/members/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get organization membership for a user. + * + * This function performs a `GET` to the `/orgs/{org}/memberships/{username}` endpoint. + * + * In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn get_membership_for_user( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/memberships/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Set organization membership for a user. + * + * This function performs a `PUT` to the `/orgs/{org}/memberships/{username}` endpoint. + * + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, organization owners are limited to creating 50 organization invitations for an organization within a 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn set_membership_for_user( + &self, + org: &str, + username: &str, + body: &crate::types::OrgsSetMembershipUserRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/memberships/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Remove organization membership for a user. + * + * This function performs a `DELETE` to the `/orgs/{org}/memberships/{username}` endpoint. + * + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + * + * > [!NOTE] + * > If a user has both direct membership in the organization as well as indirect membership via an enterprise team, only their direct membership will be removed. Their indirect membership via an enterprise team remains until the user is removed from the enterprise team. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn remove_membership_for_user( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/memberships/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get all organization roles for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/organization-roles` endpoint. + * + * Lists the organization roles available in this organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn list_org_roles( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/organization-roles", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove all organization roles for a team. + * + * This function performs a `DELETE` to the `/orgs/{org}/organization-roles/teams/{team_slug}` endpoint. + * + * Removes all assigned organization roles from a team. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + */ + pub async fn revoke_all_org_roles_team( + &self, + org: &str, + team_slug: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/organization-roles/teams/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Assign an organization role to a team. + * + * This function performs a `PUT` to the `/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}` endpoint. + * + * Assigns an organization role to a team in an organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `role_id: i64` -- The unique identifier of the role. + */ + pub async fn assign_team_to_org_role( + &self, + org: &str, + team_slug: &str, + role_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/organization-roles/teams/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove an organization role from a team. + * + * This function performs a `DELETE` to the `/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}` endpoint. + * + * Removes an organization role from a team. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `role_id: i64` -- The unique identifier of the role. + */ + pub async fn revoke_org_role_team( + &self, + org: &str, + team_slug: &str, + role_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/organization-roles/teams/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Remove all organization roles for a user. + * + * This function performs a `DELETE` to the `/orgs/{org}/organization-roles/users/{username}` endpoint. + * + * Revokes all assigned organization roles from a user. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn revoke_all_org_roles_user( + &self, + org: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/organization-roles/users/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Assign an organization role to a user. + * + * This function performs a `PUT` to the `/orgs/{org}/organization-roles/users/{username}/{role_id}` endpoint. + * + * Assigns an organization role to a member of an organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + * * `role_id: i64` -- The unique identifier of the role. + */ + pub async fn assign_user_to_org_role( + &self, + org: &str, + username: &str, + role_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/organization-roles/users/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), ), None, ); self.client - .get_all_pages( + .put( &url, crate::Message { body: None, @@ -291,31 +3558,41 @@ impl Orgs { .await } /** - * List users blocked by an organization. + * Remove an organization role from a user. * - * This function performs a `GET` to the `/orgs/{org}/blocks` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/organization-roles/users/{username}/{role_id}` endpoint. * - * List the users blocked by an organization. + * Remove an organization role from a user. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. + * * `role_id: i64` -- The unique identifier of the role. */ - pub async fn list_blocked_users( + pub async fn revoke_org_role_user( &self, org: &str, - ) -> ClientResult>> { + username: &str, + role_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/blocks", - crate::progenitor_support::encode_path(org), + "/orgs/{}/organization-roles/users/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -325,29 +3602,41 @@ impl Orgs { .await } /** - * List users blocked by an organization. + * Get an organization role. * - * This function performs a `GET` to the `/orgs/{org}/blocks` endpoint. + * This function performs a `GET` to the `/orgs/{org}/organization-roles/{role_id}` endpoint. * - * As opposed to `list_blocked_users`, this function returns all the pages of the request at once. + * Gets an organization role that is available to this organization. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." * - * List the users blocked by an organization. + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `role_id: i64` -- The unique identifier of the role. */ - pub async fn list_all_blocked_users( + pub async fn get_org_role( &self, org: &str, - ) -> ClientResult>> { + role_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/blocks", - crate::progenitor_support::encode_path(org), + "/orgs/{}/organization-roles/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -357,29 +3646,46 @@ impl Orgs { .await } /** - * Check if a user is blocked by an organization. + * List teams that are assigned to an organization role. * - * This function performs a `GET` to the `/orgs/{org}/blocks/{username}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/organization-roles/{role_id}/teams` endpoint. * + * Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." * + * To use this endpoint, you must be an administrator for the organization. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `role_id: i64` -- The unique identifier of the role. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn check_blocked_user( + pub async fn list_org_role_teams( &self, org: &str, - username: &str, - ) -> ClientResult> { + role_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/blocks/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/organization-roles/{}/teams?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), + query_ ), None, ); @@ -394,30 +3700,35 @@ impl Orgs { .await } /** - * Block a user from an organization. + * List teams that are assigned to an organization role. * - * This function performs a `PUT` to the `/orgs/{org}/blocks/{username}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/organization-roles/{role_id}/teams` endpoint. * + * As opposed to `list_org_role_teams`, this function returns all the pages of the request at once. * + * Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." * - * FROM: + * To use this endpoint, you must be an administrator for the organization. * - * **Parameters:** + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * * `org: &str` - * * `username: &str` + * FROM: */ - pub async fn block_user(&self, org: &str, username: &str) -> ClientResult> { + pub async fn list_all_org_role_teams( + &self, + org: &str, + role_id: i64, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/blocks/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/organization-roles/{}/teams", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), ), None, ); self.client - .put( + .get_all_pages( &url, crate::Message { body: None, @@ -427,34 +3738,51 @@ impl Orgs { .await } /** - * Unblock a user from an organization. + * List users that are assigned to an organization role. * - * This function performs a `DELETE` to the `/orgs/{org}/blocks/{username}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/organization-roles/{role_id}/users` endpoint. + * + * Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." * + * To use this endpoint, you must be an administrator for the organization. * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `role_id: i64` -- The unique identifier of the role. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn unblock_user( + pub async fn list_org_role_users( &self, org: &str, - username: &str, - ) -> ClientResult> { + role_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/blocks/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/organization-roles/{}/users?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -464,33 +3792,35 @@ impl Orgs { .await } /** - * List SAML SSO authorizations for an organization. + * List users that are assigned to an organization role. * - * This function performs a `GET` to the `/orgs/{org}/credential-authorizations` endpoint. + * This function performs a `GET` to the `/orgs/{org}/organization-roles/{role_id}/users` endpoint. * - * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products). + * As opposed to `list_org_role_users`, this function returns all the pages of the request at once. * - * An authenticated organization owner with the `read:org` scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see [About authentication with SAML single sign-on](https://help.github.com/en/articles/about-authentication-with-saml-single-sign-on). + * Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Using organization roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles)." * - * FROM: + * To use this endpoint, you must be an administrator for the organization. * - * **Parameters:** + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * * `org: &str` + * FROM: */ - pub async fn list_saml_sso_authorizations( + pub async fn list_all_org_role_users( &self, org: &str, - ) -> ClientResult>> { + role_id: i64, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/credential-authorizations", - crate::progenitor_support::encode_path(org), + "/orgs/{}/organization-roles/{}/users", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&role_id.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -500,31 +3830,49 @@ impl Orgs { .await } /** - * List SAML SSO authorizations for an organization. + * List outside collaborators for an organization. * - * This function performs a `GET` to the `/orgs/{org}/credential-authorizations` endpoint. + * This function performs a `GET` to the `/orgs/{org}/outside_collaborators` endpoint. * - * As opposed to `list_saml_sso_authorizations`, this function returns all the pages of the request at once. + * List all users who are outside collaborators of an organization. * - * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products). + * FROM: * - * An authenticated organization owner with the `read:org` scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see [About authentication with SAML single sign-on](https://help.github.com/en/articles/about-authentication-with-saml-single-sign-on). + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `filter: crate::types::OrgsListMembersFilter` -- Filter members returned in the list. `2fa_disabled` means that only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. `2fa_insecure` means that only members with [insecure 2FA methods](https://docs.github.com/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization#requiring-secure-methods-of-two-factor-authentication-in-your-organization) will be returned. These options are only available for organization owners. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_all_saml_sso_authorizations( + pub async fn list_outside_collaborators( &self, org: &str, - ) -> ClientResult>> { + filter: crate::types::OrgsListMembersFilter, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !filter.to_string().is_empty() { + query_args.push(("filter".to_string(), filter.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/credential-authorizations", - crate::progenitor_support::encode_path(org), + "/orgs/{}/outside_collaborators?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -534,36 +3882,36 @@ impl Orgs { .await } /** - * Remove a SAML SSO authorization for an organization. - * - * This function performs a `DELETE` to the `/orgs/{org}/credential-authorizations/{credential_id}` endpoint. - * - * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products). + * List outside collaborators for an organization. * - * An authenticated organization owner with the `admin:org` scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access. + * This function performs a `GET` to the `/orgs/{org}/outside_collaborators` endpoint. * - * FROM: + * As opposed to `list_outside_collaborators`, this function returns all the pages of the request at once. * - * **Parameters:** + * List all users who are outside collaborators of an organization. * - * * `org: &str` - * * `credential_id: i64` + * FROM: */ - pub async fn remove_saml_sso_authorization( + pub async fn list_all_outside_collaborators( &self, org: &str, - credential_id: i64, - ) -> ClientResult> { + filter: crate::types::OrgsListMembersFilter, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !filter.to_string().is_empty() { + query_args.push(("filter".to_string(), filter.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/credential-authorizations/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&credential_id.to_string()), + "/orgs/{}/outside_collaborators?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -573,76 +3921,72 @@ impl Orgs { .await } /** - * List failed organization invitations. + * Convert an organization member to outside collaborator. * - * This function performs a `GET` to the `/orgs/{org}/failed_invitations` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/outside_collaborators/{username}` endpoint. * - * The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + * When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_failed_invitations( + pub async fn convert_member_to_outside_collaborator( &self, org: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + username: &str, + body: &crate::types::OrgsConvertMemberOutsideCollaboratorRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/failed_invitations?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/outside_collaborators/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List failed organization invitations. + * Remove outside collaborator from an organization. * - * This function performs a `GET` to the `/orgs/{org}/failed_invitations` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/outside_collaborators/{username}` endpoint. * - * As opposed to `list_failed_invitations`, this function returns all the pages of the request at once. + * Removing a user from this list will remove them from all the organization's repositories. * - * The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + * FROM: + * + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_all_failed_invitations( + pub async fn remove_outside_collaborator( &self, org: &str, - ) -> ClientResult>> { + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/failed_invitations", - crate::progenitor_support::encode_path(org), + "/orgs/{}/outside_collaborators/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -652,38 +3996,80 @@ impl Orgs { .await } /** - * List organization webhooks. + * List requests to access organization resources with fine-grained personal access tokens. * - * This function performs a `GET` to the `/orgs/{org}/hooks` endpoint. + * This function performs a `GET` to the `/orgs/{org}/personal-access-token-requests` endpoint. * + * Lists requests from organization members to access organization resources with a fine-grained personal access token. * + * Only GitHub Apps can use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `sort: crate::types::PersonalAccessTokenSort` -- The property by which to sort the results. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `owner: &[String]` -- The functions in the package that are affected by the vulnerability. + * * `repository: &str` -- The name of the repository to use to filter the results. + * * `permission: &str` -- The permission to use to filter the results. + * * `last_used_before: chrono::DateTime` -- Only show fine-grained personal access tokens used before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `last_used_after: chrono::DateTime` -- Only show fine-grained personal access tokens used after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `token_id: &[String]` -- The functions in the package that are affected by the vulnerability. */ - pub async fn list_webhooks( + pub async fn list_pat_grant_requests( &self, org: &str, per_page: i64, page: i64, - ) -> ClientResult>> { + sort: crate::types::PersonalAccessTokenSort, + direction: crate::types::Order, + owner: &[String], + repository: &str, + permission: &str, + last_used_before: Option>, + last_used_after: Option>, + token_id: &[String], + ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if let Some(date) = last_used_after { + query_args.push(("last_used_after".to_string(), date.to_rfc3339())); + } + if let Some(date) = last_used_before { + query_args.push(("last_used_before".to_string(), date.to_rfc3339())); + } + if !owner.is_empty() { + query_args.push(("owner".to_string(), owner.join(" "))); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if !permission.is_empty() { + query_args.push(("permission".to_string(), permission.to_string())); + } + if !repository.is_empty() { + query_args.push(("repository".to_string(), repository.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !token_id.is_empty() { + query_args.push(("token_id".to_string(), token_id.join(" "))); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/hooks?{}", - crate::progenitor_support::encode_path(org), + "/orgs/{}/personal-access-token-requests?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -699,59 +4085,69 @@ impl Orgs { .await } /** - * List organization webhooks. + * Review requests to access organization resources with fine-grained personal access tokens. * - * This function performs a `GET` to the `/orgs/{org}/hooks` endpoint. + * This function performs a `POST` to the `/orgs/{org}/personal-access-token-requests` endpoint. * - * As opposed to `list_webhooks`, this function returns all the pages of the request at once. + * Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. * + * Only GitHub Apps can use this endpoint. * + * FROM: * - * FROM: + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn list_all_webhooks( + pub async fn review_pat_grant_requests_in_bulk( &self, org: &str, - ) -> ClientResult>> { + body: &crate::types::OrgsReviewPatGrantRequestsInBulkRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/hooks", - crate::progenitor_support::encode_path(org), + "/orgs/{}/personal-access-token-requests", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get_all_pages( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Create an organization webhook. + * Review a request to access organization resources with a fine-grained personal access token. * - * This function performs a `POST` to the `/orgs/{org}/hooks` endpoint. + * This function performs a `POST` to the `/orgs/{org}/personal-access-token-requests/{pat_request_id}` endpoint. + * + * Approves or denies a pending request to access organization resources via a fine-grained personal access token. * - * Here's how you can create a hook that posts payloads in JSON format: + * Only GitHub Apps can use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `pat_request_id: i64` -- Unique identifier of the request for access via fine-grained personal access token. */ - pub async fn create_webhook( + pub async fn review_pat_grant_request( &self, org: &str, - body: &crate::types::OrgsCreateWebhookRequest, - ) -> ClientResult> { + pat_request_id: i64, + body: &crate::types::OrgsReviewPatGrantRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/hooks", - crate::progenitor_support::encode_path(org), + "/orgs/{}/personal-access-token-requests/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&pat_request_id.to_string()), ), None, ); @@ -766,29 +4162,44 @@ impl Orgs { .await } /** - * Get an organization webhook. + * List repositories requested to be accessed by a fine-grained personal access token. * - * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories` endpoint. * - * Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization)." + * Lists the repositories a fine-grained personal access token request is requesting access to. * - * FROM: + * Only GitHub Apps can use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `pat_request_id: i64` -- Unique identifier of the request for access via fine-grained personal access token. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_webhook( + pub async fn list_pat_grant_request_repositories( &self, org: &str, - hook_id: i64, - ) -> ClientResult> { + pat_request_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/hooks/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/orgs/{}/personal-access-token-requests/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&pat_request_id.to_string()), + query_ ), None, ); @@ -803,34 +4214,86 @@ impl Orgs { .await } /** - * Delete an organization webhook. + * List fine-grained personal access tokens with access to organization resources. * - * This function performs a `DELETE` to the `/orgs/{org}/hooks/{hook_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/personal-access-tokens` endpoint. * + * Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. * + * Only GitHub Apps can use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `sort: crate::types::PersonalAccessTokenSort` -- The property by which to sort the results. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `owner: &[String]` -- The functions in the package that are affected by the vulnerability. + * * `repository: &str` -- The name of the repository to use to filter the results. + * * `permission: &str` -- The permission to use to filter the results. + * * `last_used_before: chrono::DateTime` -- Only show fine-grained personal access tokens used before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `last_used_after: chrono::DateTime` -- Only show fine-grained personal access tokens used after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `token_id: &[String]` -- The functions in the package that are affected by the vulnerability. */ - pub async fn delete_webhook( + pub async fn list_pat_grants( &self, org: &str, - hook_id: i64, - ) -> ClientResult> { + per_page: i64, + page: i64, + sort: crate::types::PersonalAccessTokenSort, + direction: crate::types::Order, + owner: &[String], + repository: &str, + permission: &str, + last_used_before: Option>, + last_used_after: Option>, + token_id: &[String], + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if let Some(date) = last_used_after { + query_args.push(("last_used_after".to_string(), date.to_rfc3339())); + } + if let Some(date) = last_used_before { + query_args.push(("last_used_before".to_string(), date.to_rfc3339())); + } + if !owner.is_empty() { + query_args.push(("owner".to_string(), owner.join(" "))); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !permission.is_empty() { + query_args.push(("permission".to_string(), permission.to_string())); + } + if !repository.is_empty() { + query_args.push(("repository".to_string(), repository.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !token_id.is_empty() { + query_args.push(("token_id".to_string(), token_id.join(" "))); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/hooks/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/orgs/{}/personal-access-tokens?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -840,35 +4303,34 @@ impl Orgs { .await } /** - * Update an organization webhook. + * Update the access to organization resources via fine-grained personal access tokens. * - * This function performs a `PATCH` to the `/orgs/{org}/hooks/{hook_id}` endpoint. + * This function performs a `POST` to the `/orgs/{org}/personal-access-tokens` endpoint. + * + * Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. * - * Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization)." + * Only GitHub Apps can use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn update_webhook( + pub async fn update_pat_accesses( &self, org: &str, - hook_id: i64, - body: &crate::types::OrgsUpdateWebhookRequest, - ) -> ClientResult> { + body: &crate::types::OrgsUpdatePatAccessesRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/hooks/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/orgs/{}/personal-access-tokens", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .patch( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -878,121 +4340,119 @@ impl Orgs { .await } /** - * Get a webhook configuration for an organization. + * Update the access a fine-grained personal access token has to organization resources. * - * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/config` endpoint. + * This function performs a `POST` to the `/orgs/{org}/personal-access-tokens/{pat_id}` endpoint. * - * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook)." + * Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. * - * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission. + * Only GitHub Apps can use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `pat_id: i64` -- The unique identifier of the fine-grained personal access token. */ - pub async fn get_webhook_config_for_org( + pub async fn update_pat_access( &self, org: &str, - hook_id: i64, - ) -> ClientResult> { + pat_id: i64, + body: &crate::types::OrgsUpdatePatAccessRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/hooks/{}/config", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/orgs/{}/personal-access-tokens/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&pat_id.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Update a webhook configuration for an organization. + * List repositories a fine-grained personal access token has access to. * - * This function performs a `PATCH` to the `/orgs/{org}/hooks/{hook_id}/config` endpoint. + * This function performs a `GET` to the `/orgs/{org}/personal-access-tokens/{pat_id}/repositories` endpoint. * - * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook)." + * Lists the repositories a fine-grained personal access token has access to. * - * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission. + * Only GitHub Apps can use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `pat_id: i64` -- Unique identifier of the fine-grained personal access token. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn update_webhook_config_for_org( + pub async fn list_pat_grant_repositories( &self, org: &str, - hook_id: i64, - body: &crate::types::AppsUpdateWebhookConfigAppRequest, - ) -> ClientResult> { + pat_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/hooks/{}/config", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/orgs/{}/personal-access-tokens/{}/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&pat_id.to_string()), + query_ ), None, ); self.client - .patch( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List deliveries for an organization webhook. + * Get all custom properties for an organization. * - * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/deliveries` endpoint. + * This function performs a `GET` to the `/orgs/{org}/properties/schema` endpoint. * - * Returns a list of webhook deliveries for a webhook configured in an organization. + * Gets all custom properties defined for an organization. + * Organization members can read these properties. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `cursor: &str` -- Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn list_webhook_deliveries( + pub async fn custom_properties_for_repos_get_organization_definitions( &self, org: &str, - hook_id: i64, - per_page: i64, - cursor: &str, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !cursor.is_empty() { - query_args.push(("cursor".to_string(), cursor.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/hooks/{}/deliveries?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), - query_ + "/orgs/{}/properties/schema", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1007,33 +4467,25 @@ impl Orgs { .await } /** - * List deliveries for an organization webhook. + * Get all custom properties for an organization. * - * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/deliveries` endpoint. + * This function performs a `GET` to the `/orgs/{org}/properties/schema` endpoint. * - * As opposed to `list_webhook_deliveries`, this function returns all the pages of the request at once. + * As opposed to `custom_properties_for_repos_get_organization_definitions`, this function returns all the pages of the request at once. * - * Returns a list of webhook deliveries for a webhook configured in an organization. + * Gets all custom properties defined for an organization. + * Organization members can read these properties. * - * FROM: + * FROM: */ - pub async fn list_all_webhook_deliveries( + pub async fn custom_properties_for_repos_get_all_organization_definitions( &self, org: &str, - hook_id: i64, - cursor: &str, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !cursor.is_empty() { - query_args.push(("cursor".to_string(), cursor.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/hooks/{}/deliveries?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), - query_ + "/orgs/{}/properties/schema", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -1048,77 +4500,78 @@ impl Orgs { .await } /** - * Get a webhook delivery for an organization webhook. + * Create or update custom properties for an organization. * - * This function performs a `GET` to the `/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}` endpoint. + * This function performs a `PATCH` to the `/orgs/{org}/properties/schema` endpoint. * - * Returns a delivery for a webhook configured in an organization. + * Creates new or updates existing custom properties defined for an organization in a batch. + * + * If the property already exists, the existing property will be replaced with the new values. + * Missing optional values will fall back to default values, previous values will be overwritten. + * E.g. if a property exists with `values_editable_by: org_and_repo_actors` and it's updated without specifying `values_editable_by`, it will be updated to default value `org_actors`. * - * FROM: + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` - * * `delivery_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn get_webhook_delivery( + pub async fn custom_properties_for_repos_create_or_update_organization_definitions( &self, org: &str, - hook_id: i64, - delivery_id: i64, - ) -> ClientResult> { + body: &crate::types::OrgsCustomPropertiesReposCreateUpdateOrganizationDefinitionsRequest, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/hooks/{}/deliveries/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), - crate::progenitor_support::encode_path(&delivery_id.to_string()), + "/orgs/{}/properties/schema", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get( + .patch( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Redeliver a delivery for an organization webhook. + * Get a custom property for an organization. * - * This function performs a `POST` to the `/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts` endpoint. + * This function performs a `GET` to the `/orgs/{org}/properties/schema/{custom_property_name}` endpoint. * - * Redeliver a delivery for a webhook configured in an organization. + * Gets a custom property that is defined for an organization. + * Organization members can read these properties. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` - * * `delivery_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `custom_property_name: &str` -- The custom property name. */ - pub async fn redeliver_webhook_delivery( + pub async fn custom_properties_for_repos_get_organization_definition( &self, org: &str, - hook_id: i64, - delivery_id: i64, - ) -> ClientResult> { + custom_property_name: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/hooks/{}/deliveries/{}/attempts", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), - crate::progenitor_support::encode_path(&delivery_id.to_string()), + "/orgs/{}/properties/schema/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&custom_property_name.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { body: None, @@ -1128,77 +4581,80 @@ impl Orgs { .await } /** - * Ping an organization webhook. + * Create or update a custom property for an organization. * - * This function performs a `POST` to the `/orgs/{org}/hooks/{hook_id}/pings` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/properties/schema/{custom_property_name}` endpoint. * - * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + * Creates a new or updates an existing custom property that is defined for an organization. * - * FROM: + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `hook_id: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `custom_property_name: &str` -- The custom property name. */ - pub async fn ping_webhook(&self, org: &str, hook_id: i64) -> ClientResult> { + pub async fn custom_properties_for_repos_create_or_update_organization_definition( + &self, + org: &str, + custom_property_name: &str, + body: &crate::types::CustomPropertySetPayload, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/hooks/{}/pings", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/orgs/{}/properties/schema/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&custom_property_name.to_string()), ), None, ); self.client - .post( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List app installations for an organization. + * Remove a custom property for an organization. * - * This function performs a `GET` to the `/orgs/{org}/installations` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/properties/schema/{custom_property_name}` endpoint. * - * Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint. + * Removes a custom property that is defined for an organization. * - * FROM: + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `custom_property_name: &str` -- The custom property name. */ - pub async fn list_app_installations( + pub async fn custom_properties_for_repos_delete_organization_definition( &self, org: &str, - per_page: i64, - page: i64, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + custom_property_name: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/installations?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/properties/schema/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&custom_property_name.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -1208,26 +4664,29 @@ impl Orgs { .await } /** - * List pending organization invitations. + * List custom property values for organization repositories. * - * This function performs a `GET` to the `/orgs/{org}/invitations` endpoint. + * This function performs a `GET` to the `/orgs/{org}/properties/values` endpoint. * - * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * Lists organization repositories with all of their custom property values. + * Organization members can read these properties. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `repository_query: &str` -- Finds repositories in the organization with a query containing one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ - pub async fn list_pending_invitations( + pub async fn custom_properties_for_repos_get_organization_values( &self, org: &str, per_page: i64, page: i64, - ) -> ClientResult>> { + repository_query: &str, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -1235,11 +4694,14 @@ impl Orgs { if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if !repository_query.is_empty() { + query_args.push(("repository_query".to_string(), repository_query.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/invitations?{}", - crate::progenitor_support::encode_path(org), + "/orgs/{}/properties/values?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -1255,24 +4717,32 @@ impl Orgs { .await } /** - * List pending organization invitations. + * List custom property values for organization repositories. * - * This function performs a `GET` to the `/orgs/{org}/invitations` endpoint. + * This function performs a `GET` to the `/orgs/{org}/properties/values` endpoint. * - * As opposed to `list_pending_invitations`, this function returns all the pages of the request at once. + * As opposed to `custom_properties_for_repos_get_organization_values`, this function returns all the pages of the request at once. * - * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * Lists organization repositories with all of their custom property values. + * Organization members can read these properties. * - * FROM: + * FROM: */ - pub async fn list_all_pending_invitations( + pub async fn custom_properties_for_repos_get_all_organization_values( &self, org: &str, - ) -> ClientResult>> { + repository_query: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !repository_query.is_empty() { + query_args.push(("repository_query".to_string(), repository_query.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/invitations", - crate::progenitor_support::encode_path(org), + "/orgs/{}/properties/values?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); @@ -1287,34 +4757,41 @@ impl Orgs { .await } /** - * Create an organization invitation. + * Create or update custom property values for organization repositories. * - * This function performs a `POST` to the `/orgs/{org}/invitations` endpoint. + * This function performs a `PATCH` to the `/orgs/{org}/properties/values` endpoint. * - * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn create_invitation( + pub async fn custom_properties_for_repos_create_or_update_organization_values( &self, org: &str, - body: &crate::types::OrgsCreateInvitationRequest, - ) -> ClientResult> { + body: &crate::types::OrgsCustomPropertiesReposCreateUpdateOrganizationValuesRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/invitations", - crate::progenitor_support::encode_path(org), + "/orgs/{}/properties/values", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .post( + .patch( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -1324,36 +4801,44 @@ impl Orgs { .await } /** - * Cancel an organization invitation. - * - * This function performs a `DELETE` to the `/orgs/{org}/invitations/{invitation_id}` endpoint. + * List public organization members. * - * Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * This function performs a `GET` to the `/orgs/{org}/public_members` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Members of an organization can choose to have their membership publicized or not. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `invitation_id: i64` -- invitation_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn cancel_invitation( + pub async fn list_public_members( &self, org: &str, - invitation_id: i64, - ) -> ClientResult> { + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/invitations/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&invitation_id.to_string()), + "/orgs/{}/public_members?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -1363,47 +4848,29 @@ impl Orgs { .await } /** - * List organization invitation teams. - * - * This function performs a `GET` to the `/orgs/{org}/invitations/{invitation_id}/teams` endpoint. + * List public organization members. * - * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + * This function performs a `GET` to the `/orgs/{org}/public_members` endpoint. * - * FROM: + * As opposed to `list_public_members`, this function returns all the pages of the request at once. * - * **Parameters:** + * Members of an organization can choose to have their membership publicized or not. * - * * `org: &str` - * * `invitation_id: i64` -- invitation_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * FROM: */ - pub async fn list_invitation_teams( + pub async fn list_all_public_members( &self, org: &str, - invitation_id: i64, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/invitations/{}/teams?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&invitation_id.to_string()), - query_ + "/orgs/{}/public_members", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -1413,31 +4880,34 @@ impl Orgs { .await } /** - * List organization invitation teams. + * Check public organization membership for a user. * - * This function performs a `GET` to the `/orgs/{org}/invitations/{invitation_id}/teams` endpoint. + * This function performs a `GET` to the `/orgs/{org}/public_members/{username}` endpoint. * - * As opposed to `list_invitation_teams`, this function returns all the pages of the request at once. + * Check if the provided user is a public member of the organization. * - * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + * FROM: + * + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_all_invitation_teams( + pub async fn check_public_membership_for_user( &self, org: &str, - invitation_id: i64, - ) -> ClientResult>> { + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/invitations/{}/teams", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(&invitation_id.to_string()), + "/orgs/{}/public_members/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -1447,59 +4917,36 @@ impl Orgs { .await } /** - * List organization members. + * Set public organization membership for the authenticated user. * - * This function performs a `GET` to the `/orgs/{org}/members` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/public_members/{username}` endpoint. * - * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) * - * FROM: + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `filter: crate::types::OrgsListMembersFilter` -- Filter members returned in the list. Can be one of: - * \\* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. - * \\* `all` - All members the authenticated user can see. - * * `role: crate::types::OrgsListMembersRole` -- Filter members returned by their role. Can be one of: - * \\* `all` - All members of the organization, regardless of role. - * \\* `admin` - Organization owners. - * \\* `member` - Non-owner organization members. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_members( + pub async fn set_public_membership_for_authenticated_user( &self, org: &str, - filter: crate::types::OrgsListMembersFilter, - role: crate::types::OrgsListMembersRole, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !filter.to_string().is_empty() { - query_args.push(("filter".to_string(), filter.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - if !role.to_string().is_empty() { - query_args.push(("role".to_string(), role.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/members?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/public_members/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { body: None, @@ -1509,40 +4956,34 @@ impl Orgs { .await } /** - * List organization members. + * Remove public organization membership for the authenticated user. * - * This function performs a `GET` to the `/orgs/{org}/members` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/public_members/{username}` endpoint. * - * As opposed to `list_members`, this function returns all the pages of the request at once. + * Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. * - * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + * FROM: + * + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_all_members( + pub async fn remove_public_membership_for_authenticated_user( &self, org: &str, - filter: crate::types::OrgsListMembersFilter, - role: crate::types::OrgsListMembersRole, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !filter.to_string().is_empty() { - query_args.push(("filter".to_string(), filter.to_string())); - } - if !role.to_string().is_empty() { - query_args.push(("role".to_string(), role.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/members?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/public_members/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -1552,29 +4993,42 @@ impl Orgs { .await } /** - * Check organization membership for a user. + * Get organization ruleset history. * - * This function performs a `GET` to the `/orgs/{org}/members/{username}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/rulesets/{ruleset_id}/history` endpoint. * - * Check if a user is, publicly or privately, a member of the organization. + * Get the history of an organization ruleset. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `ruleset_id: i64` -- The ID of the ruleset. */ - pub async fn check_membership_for_user( + pub async fn get_org_ruleset_history( &self, org: &str, - username: &str, - ) -> ClientResult> { + per_page: i64, + page: i64, + ruleset_id: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/members/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/rulesets/{}/history?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), + query_ ), None, ); @@ -1589,34 +5043,31 @@ impl Orgs { .await } /** - * Remove an organization member. - * - * This function performs a `DELETE` to the `/orgs/{org}/members/{username}` endpoint. + * Get organization ruleset history. * - * Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + * This function performs a `GET` to the `/orgs/{org}/rulesets/{ruleset_id}/history` endpoint. * - * FROM: + * As opposed to `get_org_ruleset_history`, this function returns all the pages of the request at once. * - * **Parameters:** + * Get the history of an organization ruleset. * - * * `org: &str` - * * `username: &str` + * FROM: */ - pub async fn remove_member( + pub async fn get_all_org_ruleset_history( &self, org: &str, - username: &str, - ) -> ClientResult> { + ruleset_id: i64, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/members/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/rulesets/{}/history", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -1626,29 +5077,32 @@ impl Orgs { .await } /** - * Get organization membership for a user. + * Get organization ruleset version. * - * This function performs a `GET` to the `/orgs/{org}/memberships/{username}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/rulesets/{ruleset_id}/history/{version_id}` endpoint. * - * In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + * Get a version of an organization ruleset. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. + * * `version_id: i64` -- The ID of the version. */ - pub async fn get_membership_for_user( + pub async fn get_org_ruleset_version( &self, org: &str, - username: &str, - ) -> ClientResult> { + ruleset_id: i64, + version_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/memberships/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/rulesets/{}/history/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), + crate::progenitor_support::encode_path(&version_id.to_string()), ), None, ); @@ -1663,82 +5117,65 @@ impl Orgs { .await } /** - * Set organization membership for a user. - * - * This function performs a `PUT` to the `/orgs/{org}/memberships/{username}` endpoint. - * - * Only authenticated organization owners can add a member to the organization or update the member's role. + * List security manager teams. * - * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. - * - * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. - * - * **Rate limits** + * This function performs a `GET` to the `/orgs/{org}/security-managers` endpoint. * - * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the "[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)" endpoints instead. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn set_membership_for_user( + pub async fn list_security_manager_teams( &self, org: &str, - username: &str, - body: &crate::types::OrgsSetMembershipUserRequest, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/memberships/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/security-managers", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove organization membership for a user. + * List security manager teams. * - * This function performs a `DELETE` to the `/orgs/{org}/memberships/{username}` endpoint. - * - * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. - * - * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + * This function performs a `GET` to the `/orgs/{org}/security-managers` endpoint. * - * FROM: + * As opposed to `list_security_manager_teams`, this function returns all the pages of the request at once. * - * **Parameters:** + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the "[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)" endpoints instead. * - * * `org: &str` - * * `username: &str` + * FROM: */ - pub async fn remove_membership_for_user( + pub async fn list_all_security_manager_teams( &self, org: &str, - username: &str, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/memberships/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/security-managers", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -1748,51 +5185,35 @@ impl Orgs { .await } /** - * List outside collaborators for an organization. + * Add a security manager team. * - * This function performs a `GET` to the `/orgs/{org}/outside_collaborators` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/security-managers/teams/{team_slug}` endpoint. * - * List all users who are outside collaborators of an organization. + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the "[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)" endpoints instead. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `filter: crate::types::OrgsListMembersFilter` -- Filter members returned in the list. Can be one of: - * \\* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. - * \\* `all` - All members the authenticated user can see. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. */ - pub async fn list_outside_collaborators( + pub async fn add_security_manager_team( &self, org: &str, - filter: crate::types::OrgsListMembersFilter, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !filter.to_string().is_empty() { - query_args.push(("filter".to_string(), filter.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + team_slug: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/outside_collaborators?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/security-managers/teams/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { body: None, @@ -1802,36 +5223,35 @@ impl Orgs { .await } /** - * List outside collaborators for an organization. + * Remove a security manager team. * - * This function performs a `GET` to the `/orgs/{org}/outside_collaborators` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/security-managers/teams/{team_slug}` endpoint. * - * As opposed to `list_outside_collaborators`, this function returns all the pages of the request at once. + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed starting January 1, 2026. Please use the "[Organization Roles](https://docs.github.com/rest/orgs/organization-roles)" endpoints instead. * - * List all users who are outside collaborators of an organization. + * FROM: * - * FROM: + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. */ - pub async fn list_all_outside_collaborators( + pub async fn remove_security_manager_team( &self, org: &str, - filter: crate::types::OrgsListMembersFilter, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !filter.to_string().is_empty() { - query_args.push(("filter".to_string(), filter.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + team_slug: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/outside_collaborators?{}", - crate::progenitor_support::encode_path(org), - query_ + "/orgs/{}/security-managers/teams/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -1841,34 +5261,33 @@ impl Orgs { .await } /** - * Convert an organization member to outside collaborator. + * Get immutable releases settings for an organization. * - * This function performs a `PUT` to the `/orgs/{org}/outside_collaborators/{username}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/settings/immutable-releases` endpoint. + * + * Gets the immutable releases policy for repositories in an organization. * - * When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://help.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn convert_member_to_outside_collaborator( + pub async fn get_immutable_releases_settings( &self, org: &str, - username: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/outside_collaborators/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/settings/immutable-releases", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { body: None, @@ -1878,63 +5297,65 @@ impl Orgs { .await } /** - * Remove outside collaborator from an organization. + * Set immutable releases settings for an organization. * - * This function performs a `DELETE` to the `/orgs/{org}/outside_collaborators/{username}` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/settings/immutable-releases` endpoint. * - * Removing a user from this list will remove them from all the organization's repositories. + * Sets the immutable releases policy for repositories in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn remove_outside_collaborator( + pub async fn set_immutable_releases_settings( &self, org: &str, - username: &str, + body: &crate::types::OrgsSetImmutableReleasesSettingsRequest, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/outside_collaborators/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/settings/immutable-releases", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List public organization members. + * List selected repositories for immutable releases enforcement. * - * This function performs a `GET` to the `/orgs/{org}/public_members` endpoint. + * This function performs a `GET` to the `/orgs/{org}/settings/immutable-releases/repositories` endpoint. * - * Members of an organization can choose to have their membership publicized or not. + * List all of the repositories that have been selected for immutable releases enforcement in an organization. * - * FROM: + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_public_members( + pub async fn get_immutable_releases_settings_repositories( &self, org: &str, - per_page: i64, page: i64, - ) -> ClientResult>> { + per_page: i64, + ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -1945,8 +5366,8 @@ impl Orgs { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/public_members?{}", - crate::progenitor_support::encode_path(org), + "/orgs/{}/settings/immutable-releases/repositories?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -1962,66 +5383,73 @@ impl Orgs { .await } /** - * List public organization members. + * Set selected repositories for immutable releases enforcement. * - * This function performs a `GET` to the `/orgs/{org}/public_members` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/settings/immutable-releases/repositories` endpoint. * - * As opposed to `list_public_members`, this function returns all the pages of the request at once. + * Replaces all repositories that have been selected for immutable releases enforcement in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`. * - * Members of an organization can choose to have their membership publicized or not. + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn list_all_public_members( + pub async fn set_immutable_releases_settings_repositories( &self, org: &str, - ) -> ClientResult>> { + body: &crate::types::CodespacesSetRepositoriesSecretRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/public_members", - crate::progenitor_support::encode_path(org), + "/orgs/{}/settings/immutable-releases/repositories", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .get_all_pages( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Check public organization membership for a user. + * Enable a selected repository for immutable releases in an organization. * - * This function performs a `GET` to the `/orgs/{org}/public_members/{username}` endpoint. + * This function performs a `PUT` to the `/orgs/{org}/settings/immutable-releases/repositories/{repository_id}` endpoint. * + * Adds a repository to the list of selected repositories that are enforced for immutable releases in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`. * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn check_public_membership_for_user( + pub async fn enable_selected_repository_immutable_releases_organization( &self, org: &str, - username: &str, + repository_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/public_members/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/settings/immutable-releases/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { body: None, @@ -2031,36 +5459,36 @@ impl Orgs { .await } /** - * Set public organization membership for the authenticated user. + * Disable a selected repository for immutable releases in an organization. * - * This function performs a `PUT` to the `/orgs/{org}/public_members/{username}` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/settings/immutable-releases/repositories/{repository_id}` endpoint. * - * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * Removes a repository from the list of selected repositories that are enforced for immutable releases in an organization. To use this endpoint, the organization immutable releases policy for `enforced_repositories` must be configured to `selected`. * - * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `repository_id: i64` -- The unique identifier of the repository. */ - pub async fn set_public_membership_for_authenticated_user( + pub async fn disable_selected_repository_immutable_releases_organization( &self, org: &str, - username: &str, + repository_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/public_members/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/settings/immutable-releases/repositories/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&repository_id.to_string()), ), None, ); self.client - .put( + .delete( &url, crate::Message { body: None, @@ -2070,38 +5498,52 @@ impl Orgs { .await } /** - * Remove public organization membership for the authenticated user. + * Enable or disable a security feature for an organization. * - * This function performs a `DELETE` to the `/orgs/{org}/public_members/{username}` endpoint. + * This function performs a `POST` to the `/orgs/{org}/{security_product}/{enablement}` endpoint. * + * > [!WARNING] + * > **Closing down notice:** The ability to enable or disable a security feature for all eligible repositories in an organization is closing down. Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. For more information, see the [changelog](https://github.blog/changelog/2024-07-22-deprecation-of-api-endpoint-to-enable-or-disable-a-security-feature-for-an-organization/). * + * Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." * - * FROM: + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org`, `write:org`, or `repo` scopes to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `username: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `security_product: crate::types::SecurityProduct` -- The security feature to enable or disable. + * * `enablement: crate::types::Enablement` -- The action to take. + * + * `enable_all` means to enable the specified security feature for all repositories in the organization. + * `disable_all` means to disable the specified security feature for all repositories in the organization. */ - pub async fn remove_public_membership_for_authenticated_user( + pub async fn enable_or_disable_security_product_on_all_org_repos( &self, org: &str, - username: &str, + security_product: crate::types::SecurityProduct, + enablement: crate::types::Enablement, + body: &crate::types::OrgsEnableDisableSecurityProductOnAllOrgReposRequest, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/public_members/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(username), + "/orgs/{}/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&security_product.to_string()), + crate::progenitor_support::encode_path(&enablement.to_string()), ), None, ); self.client - .delete( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await @@ -2111,15 +5553,15 @@ impl Orgs { * * This function performs a `GET` to the `/user/memberships/orgs` endpoint. * + * Lists all of the authenticated user's organization memberships. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `state: crate::types::OrgMembershipState` -- Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `state: crate::types::OrgMembershipState` -- The state of the member in the organization. The `pending` state indicates the user has not yet accepted an invitation. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_memberships_for_authenticated_user( &self, @@ -2158,9 +5600,9 @@ impl Orgs { * * As opposed to `list_memberships_for_authenticated_user`, this function returns all the pages of the request at once. * + * Lists all of the authenticated user's organization memberships. * - * - * FROM: + * FROM: */ pub async fn list_all_memberships_for_authenticated_user( &self, @@ -2189,13 +5631,13 @@ impl Orgs { * * This function performs a `GET` to the `/user/memberships/orgs/{org}` endpoint. * + * If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn get_membership_for_authenticated_user( &self, @@ -2204,7 +5646,7 @@ impl Orgs { let url = self.client.url( &format!( "/user/memberships/orgs/{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -2223,13 +5665,13 @@ impl Orgs { * * This function performs a `PATCH` to the `/user/memberships/orgs/{org}` endpoint. * + * Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn update_membership_for_authenticated_user( &self, @@ -2239,7 +5681,7 @@ impl Orgs { let url = self.client.url( &format!( "/user/memberships/orgs/{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -2260,16 +5702,17 @@ impl Orgs { * * List organizations for the authenticated user. * - * **OAuth scope requirements** + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. * - * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + * > [!NOTE] + * > Requests using a fine-grained access token will receive a `200 Success` response with an empty list. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_authenticated_user( &self, @@ -2304,16 +5747,17 @@ impl Orgs { * * List organizations for the authenticated user. * - * **OAuth scope requirements** + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. * - * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + * > [!NOTE] + * > Requests using a fine-grained access token will receive a `200 Success` response with an empty list. * - * FROM: + * FROM: */ pub async fn list_all_for_authenticated_user( &self, ) -> ClientResult>> { - let url = self.client.url("/user/orgs", None); + let url = self.client.url(&"/user/orgs".to_string(), None); self.client .get_all_pages( &url, @@ -2329,17 +5773,17 @@ impl Orgs { * * This function performs a `GET` to the `/users/{username}/orgs` endpoint. * - * List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. * - * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead. + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_user( &self, @@ -2358,7 +5802,7 @@ impl Orgs { let url = self.client.url( &format!( "/users/{}/orgs?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -2380,11 +5824,11 @@ impl Orgs { * * As opposed to `list_for_user`, this function returns all the pages of the request at once. * - * List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. * - * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead. + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. * - * FROM: + * FROM: */ pub async fn list_all_for_user( &self, @@ -2393,7 +5837,7 @@ impl Orgs { let url = self.client.url( &format!( "/users/{}/orgs", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); diff --git a/github/src/packages.rs b/github/src/packages.rs index 90f57d36..44d90096 100644 --- a/github/src/packages.rs +++ b/github/src/packages.rs @@ -11,6 +11,183 @@ impl Packages { Packages { client } } + /** + * Get list of conflicting packages during Docker migration for organization. + * + * This function performs a `GET` to the `/orgs/{org}/docker/conflicts` endpoint. + * + * Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn list_docker_migration_conflicting_packages_for_organization( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/docker/conflicts", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get list of conflicting packages during Docker migration for organization. + * + * This function performs a `GET` to the `/orgs/{org}/docker/conflicts` endpoint. + * + * As opposed to `list_docker_migration_conflicting_packages_for_organization`, this function returns all the pages of the request at once. + * + * Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_docker_migration_conflicting_packages_for_organization( + &self, + org: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/orgs/{}/docker/conflicts", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List packages for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/packages` endpoint. + * + * Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + * + * **Parameters:** + * + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `visibility: crate::types::PackageVisibilityData` -- The selected visibility of the packages. This parameter is optional and only filters an existing result set. + * + * The `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`. + * For the list of GitHub Packages registries that support granular permissions, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_packages_for_organization( + &self, + package_type: crate::types::PackageType, + org: &str, + visibility: crate::types::PackageVisibilityData, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !package_type.to_string().is_empty() { + query_args.push(("package_type".to_string(), package_type.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !visibility.to_string().is_empty() { + query_args.push(("visibility".to_string(), visibility.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/packages?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List packages for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/packages` endpoint. + * + * As opposed to `list_packages_for_organization`, this function returns all the pages of the request at once. + * + * Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + */ + pub async fn list_all_packages_for_organization( + &self, + package_type: crate::types::PackageType, + org: &str, + visibility: crate::types::PackageVisibilityData, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !package_type.to_string().is_empty() { + query_args.push(("package_type".to_string(), package_type.to_string())); + } + if !visibility.to_string().is_empty() { + query_args.push(("visibility".to_string(), visibility.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/packages?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Get a package for an organization. * @@ -18,29 +195,28 @@ impl Packages { * * Gets a specific package in an organization. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn get_package_for_organization( &self, package_type: crate::types::PackageType, package_name: &str, org: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), ), None, ); @@ -61,17 +237,17 @@ impl Packages { * * Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. * - * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: - * - If `package_type` is not `container`, your token must also include the `repo` scope. - * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn delete_package_for_org( &self, @@ -82,9 +258,9 @@ impl Packages { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), ), None, ); @@ -109,17 +285,17 @@ impl Packages { * - The package was deleted within the last 30 days. * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. * - * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: - * - If `package_type` is not `container`, your token must also include the `repo` scope. - * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. * * `token: &str` -- package token. */ pub async fn restore_package_for_org( @@ -137,9 +313,9 @@ impl Packages { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}/restore?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), query_ ), None, @@ -155,24 +331,23 @@ impl Packages { .await } /** - * Get all package versions for a package owned by an organization. + * List package versions for a package owned by an organization. * * This function performs a `GET` to the `/orgs/{org}/packages/{package_type}/{package_name}/versions` endpoint. * - * Returns all package versions for a package owned by an organization. + * Lists package versions for a package owned by an organization. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `org: &str` - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". * * `state: crate::types::PackagesGetAllPackageVersionsOwnedByOrgState` -- The state of the package, either active or deleted. */ pub async fn get_all_package_versions_for_package_owned_by_org( @@ -198,9 +373,9 @@ impl Packages { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}/versions?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), query_ ), None, @@ -216,18 +391,17 @@ impl Packages { .await } /** - * Get all package versions for a package owned by an organization. + * List package versions for a package owned by an organization. * * This function performs a `GET` to the `/orgs/{org}/packages/{package_type}/{package_name}/versions` endpoint. * * As opposed to `get_all_package_versions_for_package_owned_by_org`, this function returns all the pages of the request at once. * - * Returns all package versions for a package owned by an organization. + * Lists package versions for a package owned by an organization. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: */ pub async fn get_all_all_package_versions_for_package_owned_by_org( &self, @@ -244,9 +418,9 @@ impl Packages { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}/versions?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), query_ ), None, @@ -268,16 +442,15 @@ impl Packages { * * Gets a specific package version in an organization. * - * You must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. * * `package_version_id: i64` -- Unique identifier of the package version. */ pub async fn get_package_version_for_organization( @@ -290,9 +463,9 @@ impl Packages { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}/versions/{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), crate::progenitor_support::encode_path(&package_version_id.to_string()), ), None, @@ -314,17 +487,17 @@ impl Packages { * * Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. * - * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: - * - If `package_type` is not `container`, your token must also include the `repo` scope. - * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. * * `package_version_id: i64` -- Unique identifier of the package version. */ pub async fn delete_package_version_for_org( @@ -337,9 +510,9 @@ impl Packages { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}/versions/{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), crate::progenitor_support::encode_path(&package_version_id.to_string()), ), None, @@ -365,17 +538,17 @@ impl Packages { * - The package was deleted within the last 30 days. * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. * - * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: - * - If `package_type` is not `container`, your token must also include the `repo` scope. - * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. * * `package_version_id: i64` -- Unique identifier of the package version. */ pub async fn restore_package_version_for_org( @@ -388,9 +561,9 @@ impl Packages { let url = self.client.url( &format!( "/orgs/{}/packages/{}/{}/versions/{}/restore", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), crate::progenitor_support::encode_path(&package_version_id.to_string()), ), None, @@ -405,6 +578,148 @@ impl Packages { ) .await } + /** + * Get list of conflicting packages during Docker migration for authenticated-user. + * + * This function performs a `GET` to the `/user/docker/conflicts` endpoint. + * + * Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_docker_migration_conflicting_packages_for_authenticated_user( + &self, + ) -> ClientResult>> { + let url = self.client.url(&"/user/docker/conflicts".to_string(), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get list of conflicting packages during Docker migration for authenticated-user. + * + * This function performs a `GET` to the `/user/docker/conflicts` endpoint. + * + * As opposed to `list_docker_migration_conflicting_packages_for_authenticated_user`, this function returns all the pages of the request at once. + * + * Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_docker_migration_conflicting_packages_for_authenticated_user( + &self, + ) -> ClientResult>> { + let url = self.client.url(&"/user/docker/conflicts".to_string(), None); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List packages for the authenticated user's namespace. + * + * This function performs a `GET` to the `/user/packages` endpoint. + * + * Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + * + * **Parameters:** + * + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `visibility: crate::types::PackageVisibilityData` -- The selected visibility of the packages. This parameter is optional and only filters an existing result set. + * + * The `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`. + * For the list of GitHub Packages registries that support granular permissions, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_packages_for_authenticated_user( + &self, + package_type: crate::types::PackageType, + visibility: crate::types::PackageVisibilityData, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !package_type.to_string().is_empty() { + query_args.push(("package_type".to_string(), package_type.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !visibility.to_string().is_empty() { + query_args.push(("visibility".to_string(), visibility.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url(&format!("/user/packages?{}", query_), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List packages for the authenticated user's namespace. + * + * This function performs a `GET` to the `/user/packages` endpoint. + * + * As opposed to `list_packages_for_authenticated_user`, this function returns all the pages of the request at once. + * + * Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + */ + pub async fn list_all_packages_for_authenticated_user( + &self, + package_type: crate::types::PackageType, + visibility: crate::types::PackageVisibilityData, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !package_type.to_string().is_empty() { + query_args.push(("package_type".to_string(), package_type.to_string())); + } + if !visibility.to_string().is_empty() { + query_args.push(("visibility".to_string(), visibility.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url(&format!("/user/packages?{}", query_), None); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Get a package for the authenticated user. * @@ -412,26 +727,25 @@ impl Packages { * * Gets a specific package for a package owned by the authenticated user. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. */ pub async fn get_package_for_authenticated_user( &self, package_type: crate::types::PackageType, package_name: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/user/packages/{}/{}", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), ), None, ); @@ -452,14 +766,13 @@ impl Packages { * * Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. */ pub async fn delete_package_for_authenticated_user( @@ -471,7 +784,7 @@ impl Packages { &format!( "/user/packages/{}/{}", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), ), None, ); @@ -496,13 +809,13 @@ impl Packages { * - The package was deleted within the last 30 days. * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. * * `token: &str` -- package token. */ @@ -521,7 +834,7 @@ impl Packages { &format!( "/user/packages/{}/{}/restore?{}", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), query_ ), None, @@ -537,23 +850,22 @@ impl Packages { .await } /** - * Get all package versions for a package owned by the authenticated user. + * List package versions for a package owned by the authenticated user. * * This function performs a `GET` to the `/user/packages/{package_type}/{package_name}/versions` endpoint. * - * Returns all package versions for a package owned by the authenticated user. + * Lists package versions for a package owned by the authenticated user. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". * * `state: crate::types::PackagesGetAllPackageVersionsOwnedByOrgState` -- The state of the package, either active or deleted. */ pub async fn get_all_package_versions_for_package_owned_by_authenticated_user( @@ -579,7 +891,7 @@ impl Packages { &format!( "/user/packages/{}/{}/versions?{}", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), query_ ), None, @@ -595,18 +907,17 @@ impl Packages { .await } /** - * Get all package versions for a package owned by the authenticated user. + * List package versions for a package owned by the authenticated user. * * This function performs a `GET` to the `/user/packages/{package_type}/{package_name}/versions` endpoint. * * As opposed to `get_all_package_versions_for_package_owned_by_authenticated_user`, this function returns all the pages of the request at once. * - * Returns all package versions for a package owned by the authenticated user. + * Lists package versions for a package owned by the authenticated user. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: */ pub async fn get_all_all_package_versions_for_package_owned_by_authenticated_user( &self, @@ -623,7 +934,7 @@ impl Packages { &format!( "/user/packages/{}/{}/versions?{}", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), query_ ), None, @@ -645,14 +956,13 @@ impl Packages { * * Gets a specific package version for a package owned by the authenticated user. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. * * `package_version_id: i64` -- Unique identifier of the package version. */ @@ -666,7 +976,7 @@ impl Packages { &format!( "/user/packages/{}/{}/versions/{}", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), crate::progenitor_support::encode_path(&package_version_id.to_string()), ), None, @@ -688,14 +998,15 @@ impl Packages { * * Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. * - * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. * * `package_version_id: i64` -- Unique identifier of the package version. */ @@ -709,7 +1020,7 @@ impl Packages { &format!( "/user/packages/{}/{}/versions/{}", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), crate::progenitor_support::encode_path(&package_version_id.to_string()), ), None, @@ -735,13 +1046,13 @@ impl Packages { * - The package was deleted within the last 30 days. * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. * * `package_version_id: i64` -- Unique identifier of the package version. */ @@ -755,7 +1066,7 @@ impl Packages { &format!( "/user/packages/{}/{}/versions/{}/restore", crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), crate::progenitor_support::encode_path(&package_version_id.to_string()), ), None, @@ -770,6 +1081,183 @@ impl Packages { ) .await } + /** + * Get list of conflicting packages during Docker migration for user. + * + * This function performs a `GET` to the `/users/{username}/docker/conflicts` endpoint. + * + * Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn list_docker_migration_conflicting_packages_for_user( + &self, + username: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/users/{}/docker/conflicts", + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get list of conflicting packages during Docker migration for user. + * + * This function performs a `GET` to the `/users/{username}/docker/conflicts` endpoint. + * + * As opposed to `list_docker_migration_conflicting_packages_for_user`, this function returns all the pages of the request at once. + * + * Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_docker_migration_conflicting_packages_for_user( + &self, + username: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/users/{}/docker/conflicts", + crate::progenitor_support::encode_path(&username.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List packages for a user. + * + * This function performs a `GET` to the `/users/{username}/packages` endpoint. + * + * Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + * + * **Parameters:** + * + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `visibility: crate::types::PackageVisibilityData` -- The selected visibility of the packages. This parameter is optional and only filters an existing result set. + * + * The `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`. + * For the list of GitHub Packages registries that support granular permissions, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).". + * * `username: &str` -- The handle for the GitHub user account. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_packages_for_user( + &self, + package_type: crate::types::PackageType, + visibility: crate::types::PackageVisibilityData, + username: &str, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !package_type.to_string().is_empty() { + query_args.push(("package_type".to_string(), package_type.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !visibility.to_string().is_empty() { + query_args.push(("visibility".to_string(), visibility.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/users/{}/packages?{}", + crate::progenitor_support::encode_path(&username.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List packages for a user. + * + * This function performs a `GET` to the `/users/{username}/packages` endpoint. + * + * As opposed to `list_packages_for_user`, this function returns all the pages of the request at once. + * + * Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + */ + pub async fn list_all_packages_for_user( + &self, + package_type: crate::types::PackageType, + visibility: crate::types::PackageVisibilityData, + username: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !package_type.to_string().is_empty() { + query_args.push(("package_type".to_string(), package_type.to_string())); + } + if !visibility.to_string().is_empty() { + query_args.push(("visibility".to_string(), visibility.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/users/{}/packages?{}", + crate::progenitor_support::encode_path(&username.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Get a package for a user. * @@ -777,29 +1265,28 @@ impl Packages { * * Gets a specific package metadata for a public package owned by a user. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `username: &str` + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn get_package_for_user( &self, package_type: crate::types::PackageType, package_name: &str, username: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/users/{}/packages/{}/{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), ), None, ); @@ -814,22 +1301,121 @@ impl Packages { .await } /** - * Get all package versions for a package owned by a user. + * Delete a package for a user. + * + * This function performs a `DELETE` to the `/users/{username}/packages/{package_type}/{package_name}` endpoint. + * + * Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + * + * **Parameters:** + * + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_name: &str` -- The name of the package. + * * `username: &str` -- The handle for the GitHub user account. + */ + pub async fn delete_package_for_user( + &self, + package_type: crate::types::PackageType, + package_name: &str, + username: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/users/{}/packages/{}/{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&package_type.to_string()), + crate::progenitor_support::encode_path(&package_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Restore a package for a user. + * + * This function performs a `POST` to the `/users/{username}/packages/{package_type}/{package_name}/restore` endpoint. + * + * Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + * + * **Parameters:** + * + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_name: &str` -- The name of the package. + * * `username: &str` -- The handle for the GitHub user account. + * * `token: &str` -- package token. + */ + pub async fn restore_package_for_user( + &self, + package_type: crate::types::PackageType, + package_name: &str, + username: &str, + token: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !token.is_empty() { + query_args.push(("token".to_string(), token.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/users/{}/packages/{}/{}/restore?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&package_type.to_string()), + crate::progenitor_support::encode_path(&package_name.to_string()), + query_ + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List package versions for a package owned by a user. * * This function performs a `GET` to the `/users/{username}/packages/{package_type}/{package_name}/versions` endpoint. * - * Returns all package versions for a public package owned by a specified user. + * Lists package versions for a public package owned by a specified user. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. - * * `username: &str` + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn get_all_package_versions_for_package_owned_by_user( &self, @@ -840,9 +1426,9 @@ impl Packages { let url = self.client.url( &format!( "/users/{}/packages/{}/{}/versions", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), ), None, ); @@ -857,18 +1443,17 @@ impl Packages { .await } /** - * Get all package versions for a package owned by a user. + * List package versions for a package owned by a user. * * This function performs a `GET` to the `/users/{username}/packages/{package_type}/{package_name}/versions` endpoint. * * As opposed to `get_all_package_versions_for_package_owned_by_user`, this function returns all the pages of the request at once. * - * Returns all package versions for a public package owned by a specified user. + * Lists package versions for a public package owned by a specified user. * - * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: */ pub async fn get_all_all_package_versions_for_package_owned_by_user( &self, @@ -879,9 +1464,9 @@ impl Packages { let url = self.client.url( &format!( "/users/{}/packages/{}/{}/versions", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), ), None, ); @@ -902,17 +1487,16 @@ impl Packages { * * Gets a specific package version for a public package owned by a specified user. * - * At this time, to use this endpoint, you must authenticate using an access token with the `packages:read` scope. - * If `package_type` is not `container`, your token must also include the `repo` scope. + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." * - * FROM: + * FROM: * * **Parameters:** * - * * `package_type: crate::types::PackageType` -- The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. * * `package_name: &str` -- The name of the package. * * `package_version_id: i64` -- Unique identifier of the package version. - * * `username: &str` + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn get_package_version_for_user( &self, @@ -924,9 +1508,9 @@ impl Packages { let url = self.client.url( &format!( "/users/{}/packages/{}/{}/versions/{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), crate::progenitor_support::encode_path(&package_type.to_string()), - crate::progenitor_support::encode_path(package_name), + crate::progenitor_support::encode_path(&package_name.to_string()), crate::progenitor_support::encode_path(&package_version_id.to_string()), ), None, @@ -941,4 +1525,102 @@ impl Packages { ) .await } + /** + * Delete package version for a user. + * + * This function performs a `DELETE` to the `/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}` endpoint. + * + * Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + * + * **Parameters:** + * + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_name: &str` -- The name of the package. + * * `username: &str` -- The handle for the GitHub user account. + * * `package_version_id: i64` -- Unique identifier of the package version. + */ + pub async fn delete_package_version_for_user( + &self, + package_type: crate::types::PackageType, + package_name: &str, + username: &str, + package_version_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/users/{}/packages/{}/{}/versions/{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&package_type.to_string()), + crate::progenitor_support::encode_path(&package_name.to_string()), + crate::progenitor_support::encode_path(&package_version_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Restore package version for a user. + * + * This function performs a `POST` to the `/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore` endpoint. + * + * Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. For more information, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * + * FROM: + * + * **Parameters:** + * + * * `package_type: crate::types::PackageType` -- The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. + * * `package_name: &str` -- The name of the package. + * * `username: &str` -- The handle for the GitHub user account. + * * `package_version_id: i64` -- Unique identifier of the package version. + */ + pub async fn restore_package_version_for_user( + &self, + package_type: crate::types::PackageType, + package_name: &str, + username: &str, + package_version_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/users/{}/packages/{}/{}/versions/{}/restore", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&package_type.to_string()), + crate::progenitor_support::encode_path(&package_name.to_string()), + crate::progenitor_support::encode_path(&package_version_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } } diff --git a/github/src/private_registries.rs b/github/src/private_registries.rs new file mode 100644 index 00000000..7fd01ab2 --- /dev/null +++ b/github/src/private_registries.rs @@ -0,0 +1,263 @@ +use crate::Client; +use crate::ClientResult; + +pub struct PrivateRegistries { + pub client: Client, +} + +impl PrivateRegistries { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + PrivateRegistries { client } + } + + /** + * List private registries for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/private-registries` endpoint. + * + * + * Lists all private registry configurations available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_org_private_registries( + &self, + org: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/private-registries?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a private registry for an organization. + * + * This function performs a `POST` to the `/orgs/{org}/private-registries` endpoint. + * + * + * Creates a private registry configuration with an encrypted value for an organization. Encrypt your secret using [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn create_org_private_registry( + &self, + org: &str, + body: &crate::types::PrivateRegistriesCreateOrgRegistryRequest, + ) -> ClientResult< + crate::Response, + > { + let url = self.client.url( + &format!( + "/orgs/{}/private-registries", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get private registries public key for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/private-registries/public-key` endpoint. + * + * + * Gets the org public key, which is needed to encrypt private registry secrets. You need to encrypt a secret before you can create or update secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn get_org_public_key( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/private-registries/public-key", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a private registry for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/private-registries/{secret_name}` endpoint. + * + * + * Get the configuration of a single private registry defined for an organization, omitting its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn get_org_private_registry( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/private-registries/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a private registry for an organization. + * + * This function performs a `DELETE` to the `/orgs/{org}/private-registries/{secret_name}` endpoint. + * + * + * Delete a private registry configuration at the organization-level. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn delete_org_private_registry( + &self, + org: &str, + secret_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/private-registries/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a private registry for an organization. + * + * This function performs a `PATCH` to the `/orgs/{org}/private-registries/{secret_name}` endpoint. + * + * + * Updates a private registry configuration with an encrypted value for an organization. Encrypt your secret using [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `secret_name: &str` -- The name of the secret. + */ + pub async fn update_org_private_registry( + &self, + org: &str, + secret_name: &str, + body: &crate::types::PrivateRegistriesUpdateOrgRegistryRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/private-registries/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&secret_name.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } +} diff --git a/github/src/projects.rs b/github/src/projects.rs index 08a241ca..7bb369cd 100644 --- a/github/src/projects.rs +++ b/github/src/projects.rs @@ -12,43 +12,48 @@ impl Projects { } /** - * List organization projects. + * List projects for organization. * - * This function performs a `GET` to the `/orgs/{org}/projects` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2` endpoint. * - * Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * List all projects owned by a specific organization accessible by the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `q: &str` -- Limit results to projects of the specified type. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_org( &self, org: &str, - state: crate::types::IssuesListState, + q: &str, + before: &str, + after: &str, per_page: i64, - page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } - if !state.to_string().is_empty() { - query_args.push(("state".to_string(), state.to_string())); + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/projects?{}", - crate::progenitor_support::encode_path(org), + "/orgs/{}/projectsV2?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -64,30 +69,38 @@ impl Projects { .await } /** - * List organization projects. + * List projects for organization. * - * This function performs a `GET` to the `/orgs/{org}/projects` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2` endpoint. * * As opposed to `list_for_org`, this function returns all the pages of the request at once. * - * Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * List all projects owned by a specific organization accessible by the authenticated user. * - * FROM: + * FROM: */ pub async fn list_all_for_org( &self, org: &str, - state: crate::types::IssuesListState, - ) -> ClientResult>> { + q: &str, + before: &str, + after: &str, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !state.to_string().is_empty() { - query_args.push(("state".to_string(), state.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/projects?{}", - crate::progenitor_support::encode_path(org), + "/orgs/{}/projectsV2?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -103,27 +116,67 @@ impl Projects { .await } /** - * Create an organization project. + * Get project for organization. * - * This function performs a `POST` to the `/orgs/{org}/projects` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}` endpoint. * - * Creates an organization project board. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * Get a specific organization-owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn create_for_org( + pub async fn get_for_org( &self, + project_number: i64, org: &str, - body: &crate::types::ProjectsCreateRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/projects", - crate::progenitor_support::encode_path(org), + "/orgs/{}/projectsV2/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create draft item for organization owned project. + * + * This function performs a `POST` to the `/orgs/{org}/projectsV2/{project_number}/drafts` endpoint. + * + * Create draft issue item for the specified organization owned project. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `project_number: i64` -- The project's number. + */ + pub async fn create_draft_item_for_org( + &self, + org: &str, + project_number: i64, + body: &crate::types::ProjectsCreateDraftItemRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/projectsV2/{}/drafts", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); @@ -138,26 +191,47 @@ impl Projects { .await } /** - * Get a project card. + * List project fields for organization. * - * This function performs a `GET` to the `/projects/columns/cards/{card_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/fields` endpoint. * + * List all fields for a specific organization-owned project. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `card_id: i64` -- card_id parameter. + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_card( + pub async fn list_fields_for_org( &self, - card_id: i64, - ) -> ClientResult> { + project_number: i64, + org: &str, + per_page: i64, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/columns/cards/{}", - crate::progenitor_support::encode_path(&card_id.to_string()), + "/orgs/{}/projectsV2/{}/fields?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + query_ ), None, ); @@ -172,28 +246,42 @@ impl Projects { .await } /** - * Delete a project card. + * List project fields for organization. * - * This function performs a `DELETE` to the `/projects/columns/cards/{card_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/fields` endpoint. * + * As opposed to `list_fields_for_org`, this function returns all the pages of the request at once. * + * List all fields for a specific organization-owned project. * - * FROM: - * - * **Parameters:** - * - * * `card_id: i64` -- card_id parameter. + * FROM: */ - pub async fn delete_card(&self, card_id: i64) -> ClientResult> { + pub async fn list_all_fields_for_org( + &self, + project_number: i64, + org: &str, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/columns/cards/{}", - crate::progenitor_support::encode_path(&card_id.to_string()), + "/orgs/{}/projectsV2/{}/fields?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + query_ ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -203,32 +291,35 @@ impl Projects { .await } /** - * Update an existing project card. - * - * This function performs a `PATCH` to the `/projects/columns/cards/{card_id}` endpoint. + * Add a field to an organization-owned project. * + * This function performs a `POST` to the `/orgs/{org}/projectsV2/{project_number}/fields` endpoint. * + * Add a field to an organization-owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `card_id: i64` -- card_id parameter. + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn update_card( + pub async fn add_field_for_org( &self, - card_id: i64, - body: &crate::types::ProjectsUpdateCardRequest, - ) -> ClientResult> { + project_number: i64, + org: &str, + body: &crate::types::ProjectsAddFieldOrgRequestOneOf, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/columns/cards/{}", - crate::progenitor_support::encode_path(&card_id.to_string()), + "/orgs/{}/projectsV2/{}/fields", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); self.client - .patch( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -238,61 +329,99 @@ impl Projects { .await } /** - * Move a project card. - * - * This function performs a `POST` to the `/projects/columns/cards/{card_id}/moves` endpoint. + * Get project field for organization. * + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/fields/{field_id}` endpoint. * + * Get a specific field for an organization-owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `card_id: i64` -- card_id parameter. + * * `project_number: i64` -- The project's number. + * * `field_id: i64` -- The unique identifier of the field. + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn move_card( + pub async fn get_field_for_org( &self, - card_id: i64, - body: &crate::types::ProjectsMoveCardRequest, - ) -> ClientResult> { + project_number: i64, + field_id: i64, + org: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/columns/cards/{}/moves", - crate::progenitor_support::encode_path(&card_id.to_string()), + "/orgs/{}/projectsV2/{}/fields/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&field_id.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a project column. - * - * This function performs a `GET` to the `/projects/columns/{column_id}` endpoint. + * List items for an organization owned project. * + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/items` endpoint. * + * List all items for a specific organization-owned project accessible by the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `column_id: i64` -- column_id parameter. + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `q: &str` -- Search query to filter items, see [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) for more information. + * * `fields: &str` -- Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + * + * Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_column( + pub async fn list_items_for_org( &self, - column_id: i64, - ) -> ClientResult> { + project_number: i64, + org: &str, + q: &str, + fields: &str, + before: &str, + after: &str, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/columns/{}", - crate::progenitor_support::encode_path(&column_id.to_string()), + "/orgs/{}/projectsV2/{}/items?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + query_ ), None, ); @@ -307,28 +436,50 @@ impl Projects { .await } /** - * Delete a project column. + * List items for an organization owned project. * - * This function performs a `DELETE` to the `/projects/columns/{column_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/items` endpoint. * + * As opposed to `list_items_for_org`, this function returns all the pages of the request at once. * + * List all items for a specific organization-owned project accessible by the authenticated user. * - * FROM: - * - * **Parameters:** - * - * * `column_id: i64` -- column_id parameter. + * FROM: */ - pub async fn delete_column(&self, column_id: i64) -> ClientResult> { + pub async fn list_all_items_for_org( + &self, + project_number: i64, + org: &str, + q: &str, + fields: &str, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); + } + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/columns/{}", - crate::progenitor_support::encode_path(&column_id.to_string()), + "/orgs/{}/projectsV2/{}/items?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + query_ ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -338,32 +489,35 @@ impl Projects { .await } /** - * Update an existing project column. - * - * This function performs a `PATCH` to the `/projects/columns/{column_id}` endpoint. + * Add item to organization owned project. * + * This function performs a `POST` to the `/orgs/{org}/projectsV2/{project_number}/items` endpoint. * + * Add an issue or pull request item to the specified organization owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `column_id: i64` -- column_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `project_number: i64` -- The project's number. */ - pub async fn update_column( + pub async fn add_item_for_org( &self, - column_id: i64, - body: &crate::types::ProjectsUpdateColumnRequest, - ) -> ClientResult> { + org: &str, + project_number: i64, + body: &crate::types::ProjectsAddItemOrgRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/columns/{}", - crate::progenitor_support::encode_path(&column_id.to_string()), + "/orgs/{}/projectsV2/{}/items", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); self.client - .patch( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -373,43 +527,41 @@ impl Projects { .await } /** - * List project cards. - * - * This function performs a `GET` to the `/projects/columns/{column_id}/cards` endpoint. + * Get an item for an organization owned project. * + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/items/{item_id}` endpoint. * + * Get a specific item from an organization-owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `column_id: i64` -- column_id parameter. - * * `archived_state: crate::types::ArchivedState` -- Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `item_id: i64` -- The unique identifier of the project item. + * * `fields: &str` -- Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + * + * Example: fields[]=123&fields[]=456&fields[]=789 or fields=123,456,789. */ - pub async fn list_cards( + pub async fn get_org_item( &self, - column_id: i64, - archived_state: crate::types::ArchivedState, - per_page: i64, - page: i64, - ) -> ClientResult>> { + project_number: i64, + org: &str, + item_id: i64, + fields: &str, + ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); - if !archived_state.to_string().is_empty() { - query_args.push(("archived_state".to_string(), archived_state.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/columns/{}/cards?{}", - crate::progenitor_support::encode_path(&column_id.to_string()), + "/orgs/{}/projectsV2/{}/items/{}?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&item_id.to_string()), query_ ), None, @@ -425,36 +577,37 @@ impl Projects { .await } /** - * List project cards. + * Delete project item for organization. * - * This function performs a `GET` to the `/projects/columns/{column_id}/cards` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/projectsV2/{project_number}/items/{item_id}` endpoint. * - * As opposed to `list_cards`, this function returns all the pages of the request at once. + * Delete a specific item from an organization-owned project. * + * FROM: * + * **Parameters:** * - * FROM: + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `item_id: i64` -- The unique identifier of the project item. */ - pub async fn list_all_cards( + pub async fn delete_item_for_org( &self, - column_id: i64, - archived_state: crate::types::ArchivedState, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !archived_state.to_string().is_empty() { - query_args.push(("archived_state".to_string(), archived_state.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + project_number: i64, + org: &str, + item_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/columns/{}/cards?{}", - crate::progenitor_support::encode_path(&column_id.to_string()), - query_ + "/orgs/{}/projectsV2/{}/items/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&item_id.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -464,32 +617,38 @@ impl Projects { .await } /** - * Create a project card. + * Update project item for organization. * - * This function performs a `POST` to the `/projects/columns/{column_id}/cards` endpoint. + * This function performs a `PATCH` to the `/orgs/{org}/projectsV2/{project_number}/items/{item_id}` endpoint. * + * Update a specific item in an organization-owned project. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `column_id: i64` -- column_id parameter. + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `item_id: i64` -- The unique identifier of the project item. */ - pub async fn create_card( + pub async fn update_item_for_org( &self, - column_id: i64, - body: &crate::types::ProjectsCreateCardRequestOneOf, - ) -> ClientResult> { + project_number: i64, + org: &str, + item_id: i64, + body: &crate::types::ProjectsUpdateItemOrgRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/columns/{}/cards", - crate::progenitor_support::encode_path(&column_id.to_string()), + "/orgs/{}/projectsV2/{}/items/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&item_id.to_string()), ), None, ); self.client - .post( + .patch( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -499,27 +658,30 @@ impl Projects { .await } /** - * Move a project column. + * Create a view for an organization-owned project. * - * This function performs a `POST` to the `/projects/columns/{column_id}/moves` endpoint. + * This function performs a `POST` to the `/orgs/{org}/projectsV2/{project_number}/views` endpoint. * + * Create a new view in an organization-owned project. Views allow you to customize how items in a project are displayed and filtered. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `column_id: i64` -- column_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `project_number: i64` -- The project's number. */ - pub async fn move_column( + pub async fn create_view_for_org( &self, - column_id: i64, - body: &crate::types::ProjectsMoveColumnRequest, - ) -> ClientResult> { + org: &str, + project_number: i64, + body: &crate::types::ProjectsCreateViewOrgRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/columns/{}/moves", - crate::progenitor_support::encode_path(&column_id.to_string()), + "/orgs/{}/projectsV2/{}/views", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); @@ -534,26 +696,58 @@ impl Projects { .await } /** - * Get a project. + * List items for an organization project view. * - * This function performs a `GET` to the `/projects/{project_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/views/{view_number}/items` endpoint. * - * Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * List items in an organization project with the saved view's filter applied. * - * FROM: + * FROM: * * **Parameters:** * - * * `project_id: i64` + * * `project_number: i64` -- The project's number. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `view_number: i64` -- The number that identifies the project view. + * * `fields: &str` -- Limit results to specific fields, by their IDs. If not specified, the + * title field will be returned. + * + * Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get( + pub async fn list_view_items_for_org( &self, - project_id: i64, - ) -> ClientResult> { + project_number: i64, + org: &str, + view_number: i64, + fields: &str, + before: &str, + after: &str, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/{}", - crate::progenitor_support::encode_path(&project_id.to_string()), + "/orgs/{}/projectsV2/{}/views/{}/items?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&view_number.to_string()), + query_ ), None, ); @@ -568,28 +762,48 @@ impl Projects { .await } /** - * Delete a project. + * List items for an organization project view. * - * This function performs a `DELETE` to the `/projects/{project_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/projectsV2/{project_number}/views/{view_number}/items` endpoint. * - * Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + * As opposed to `list_view_items_for_org`, this function returns all the pages of the request at once. * - * FROM: + * List items in an organization project with the saved view's filter applied. * - * **Parameters:** - * - * * `project_id: i64` + * FROM: */ - pub async fn delete(&self, project_id: i64) -> ClientResult> { + pub async fn list_all_view_items_for_org( + &self, + project_number: i64, + org: &str, + view_number: i64, + fields: &str, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/{}", - crate::progenitor_support::encode_path(&project_id.to_string()), + "/orgs/{}/projectsV2/{}/views/{}/items?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&view_number.to_string()), + query_ ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -599,32 +813,35 @@ impl Projects { .await } /** - * Update a project. + * Create draft item for user owned project. * - * This function performs a `PATCH` to the `/projects/{project_id}` endpoint. + * This function performs a `POST` to the `/user/{user_id}/projectsV2/{project_number}/drafts` endpoint. * - * Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * Create draft issue item for the specified user owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `project_id: i64` + * * `user_id: &str` -- The unique identifier of the user. + * * `project_number: i64` -- The project's number. */ - pub async fn update( + pub async fn create_draft_item_for_authenticated_user( &self, - project_id: i64, - body: &crate::types::ProjectsUpdateRequest, - ) -> ClientResult> { + user_id: &str, + project_number: i64, + body: &crate::types::ProjectsCreateDraftItemRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/{}", - crate::progenitor_support::encode_path(&project_id.to_string()), + "/user/{}/projectsV2/{}/drafts", + crate::progenitor_support::encode_path(&user_id.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); self.client - .patch( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -634,91 +851,92 @@ impl Projects { .await } /** - * List project collaborators. + * Create a view for a user-owned project. * - * This function performs a `GET` to the `/projects/{project_id}/collaborators` endpoint. + * This function performs a `POST` to the `/users/{user_id}/projectsV2/{project_number}/views` endpoint. * - * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + * Create a new view in a user-owned project. Views allow you to customize how items in a project are displayed and filtered. * - * FROM: + * FROM: * * **Parameters:** * - * * `project_id: i64` - * * `affiliation: crate::types::Affiliation` -- Filters the collaborators by their affiliation. Can be one of: - * \\* `outside`: Outside collaborators of a project that are not a member of the project's organization. - * \\* `direct`: Collaborators with permissions to a project, regardless of organization membership status. - * \\* `all`: All collaborators the authenticated user can see. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `user_id: &str` -- The unique identifier of the user. + * * `project_number: i64` -- The project's number. */ - pub async fn list_collaborators( + pub async fn create_view_for_user( &self, - project_id: i64, - affiliation: crate::types::Affiliation, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !affiliation.to_string().is_empty() { - query_args.push(("affiliation".to_string(), affiliation.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + user_id: &str, + project_number: i64, + body: &crate::types::ProjectsCreateViewOrgRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/{}/collaborators?{}", - crate::progenitor_support::encode_path(&project_id.to_string()), - query_ + "/users/{}/projectsV2/{}/views", + crate::progenitor_support::encode_path(&user_id.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List project collaborators. + * List projects for user. * - * This function performs a `GET` to the `/projects/{project_id}/collaborators` endpoint. + * This function performs a `GET` to the `/users/{username}/projectsV2` endpoint. * - * As opposed to `list_collaborators`, this function returns all the pages of the request at once. + * List all projects owned by a specific user accessible by the authenticated user. * - * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + * FROM: * - * FROM: + * **Parameters:** + * + * * `username: &str` -- The handle for the GitHub user account. + * * `q: &str` -- Limit results to projects of the specified type. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_all_collaborators( + pub async fn list_for_user( &self, - project_id: i64, - affiliation: crate::types::Affiliation, - ) -> ClientResult>> { + username: &str, + q: &str, + before: &str, + after: &str, + per_page: i64, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !affiliation.to_string().is_empty() { - query_args.push(("affiliation".to_string(), affiliation.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/{}/collaborators?{}", - crate::progenitor_support::encode_path(&project_id.to_string()), + "/users/{}/projectsV2?{}", + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -728,72 +946,81 @@ impl Projects { .await } /** - * Add project collaborator. - * - * This function performs a `PUT` to the `/projects/{project_id}/collaborators/{username}` endpoint. + * List projects for user. * - * Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + * This function performs a `GET` to the `/users/{username}/projectsV2` endpoint. * - * FROM: + * As opposed to `list_for_user`, this function returns all the pages of the request at once. * - * **Parameters:** + * List all projects owned by a specific user accessible by the authenticated user. * - * * `project_id: i64` - * * `username: &str` + * FROM: */ - pub async fn add_collaborator( + pub async fn list_all_for_user( &self, - project_id: i64, username: &str, - body: &crate::types::ProjectsAddCollaboratorRequest, - ) -> ClientResult> { + q: &str, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/{}/collaborators/{}", - crate::progenitor_support::encode_path(&project_id.to_string()), - crate::progenitor_support::encode_path(username), + "/users/{}/projectsV2?{}", + crate::progenitor_support::encode_path(&username.to_string()), + query_ ), None, ); self.client - .put( + .get_all_pages( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove user as a collaborator. + * Get project for user. * - * This function performs a `DELETE` to the `/projects/{project_id}/collaborators/{username}` endpoint. + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}` endpoint. * - * Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + * Get a specific user-owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `project_id: i64` - * * `username: &str` + * * `project_number: i64` -- The project's number. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn remove_collaborator( + pub async fn get_for_user( &self, - project_id: i64, + project_number: i64, username: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/{}/collaborators/{}", - crate::progenitor_support::encode_path(&project_id.to_string()), - crate::progenitor_support::encode_path(username), + "/users/{}/projectsV2/{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -803,29 +1030,47 @@ impl Projects { .await } /** - * Get project permission for a user. + * List project fields for user. * - * This function performs a `GET` to the `/projects/{project_id}/collaborators/{username}/permission` endpoint. + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/fields` endpoint. * - * Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + * List all fields for a specific user-owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `project_id: i64` - * * `username: &str` + * * `project_number: i64` -- The project's number. + * * `username: &str` -- The handle for the GitHub user account. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_permission_for_user( + pub async fn list_fields_for_user( &self, - project_id: i64, + project_number: i64, username: &str, - ) -> ClientResult> { + per_page: i64, + before: &str, + after: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/{}/collaborators/{}/permission", - crate::progenitor_support::encode_path(&project_id.to_string()), - crate::progenitor_support::encode_path(username), + "/users/{}/projectsV2/{}/fields?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + query_ ), None, ); @@ -840,44 +1085,42 @@ impl Projects { .await } /** - * List project columns. - * - * This function performs a `GET` to the `/projects/{project_id}/columns` endpoint. + * List project fields for user. * + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/fields` endpoint. * + * As opposed to `list_fields_for_user`, this function returns all the pages of the request at once. * - * FROM: + * List all fields for a specific user-owned project. * - * **Parameters:** - * - * * `project_id: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * FROM: */ - pub async fn list_columns( + pub async fn list_all_fields_for_user( &self, - project_id: i64, - per_page: i64, - page: i64, - ) -> ClientResult>> { + project_number: i64, + username: &str, + before: &str, + after: &str, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/projects/{}/columns?{}", - crate::progenitor_support::encode_path(&project_id.to_string()), + "/users/{}/projectsV2/{}/fields?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -887,113 +1130,136 @@ impl Projects { .await } /** - * List project columns. + * Add field to user owned project. * - * This function performs a `GET` to the `/projects/{project_id}/columns` endpoint. + * This function performs a `POST` to the `/users/{username}/projectsV2/{project_number}/fields` endpoint. * - * As opposed to `list_columns`, this function returns all the pages of the request at once. + * Add a field to a specified user owned project. * + * FROM: * + * **Parameters:** * - * FROM: + * * `username: &str` -- The handle for the GitHub user account. + * * `project_number: i64` -- The project's number. */ - pub async fn list_all_columns( + pub async fn add_field_for_user( &self, - project_id: i64, - ) -> ClientResult>> { + username: &str, + project_number: i64, + body: &crate::types::ProjectsAddFieldUserRequestOneOf, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/{}/columns", - crate::progenitor_support::encode_path(&project_id.to_string()), + "/users/{}/projectsV2/{}/fields", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); self.client - .get_all_pages( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Create a project column. - * - * This function performs a `POST` to the `/projects/{project_id}/columns` endpoint. + * Get project field for user. * + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/fields/{field_id}` endpoint. * + * Get a specific field for a user-owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `project_id: i64` + * * `project_number: i64` -- The project's number. + * * `field_id: i64` -- The unique identifier of the field. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn create_column( + pub async fn get_field_for_user( &self, - project_id: i64, - body: &crate::types::ProjectsUpdateColumnRequest, - ) -> ClientResult> { + project_number: i64, + field_id: i64, + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/projects/{}/columns", - crate::progenitor_support::encode_path(&project_id.to_string()), + "/users/{}/projectsV2/{}/fields/{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&field_id.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List repository projects. + * List items for a user owned project. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/projects` endpoint. + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/items` endpoint. * - * Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * List all items for a specific user-owned project accessible by the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `project_number: i64` -- The project's number. + * * `username: &str` -- The handle for the GitHub user account. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `q: &str` -- Search query to filter items, see [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) for more information. + * * `fields: &str` -- Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + * + * Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`. */ - pub async fn list_for_repo( + pub async fn list_items_for_user( &self, - owner: &str, - repo: &str, - state: crate::types::IssuesListState, + project_number: i64, + username: &str, + before: &str, + after: &str, per_page: i64, - page: i64, - ) -> ClientResult>> { + q: &str, + fields: &str, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } - if !state.to_string().is_empty() { - query_args.push(("state".to_string(), state.to_string())); + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/projects?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/users/{}/projectsV2/{}/items?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), query_ ), None, @@ -1009,32 +1275,44 @@ impl Projects { .await } /** - * List repository projects. + * List items for a user owned project. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/projects` endpoint. + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/items` endpoint. * - * As opposed to `list_for_repo`, this function returns all the pages of the request at once. + * As opposed to `list_items_for_user`, this function returns all the pages of the request at once. * - * Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * List all items for a specific user-owned project accessible by the authenticated user. * - * FROM: + * FROM: */ - pub async fn list_all_for_repo( + pub async fn list_all_items_for_user( &self, - owner: &str, - repo: &str, - state: crate::types::IssuesListState, - ) -> ClientResult>> { + project_number: i64, + username: &str, + before: &str, + after: &str, + q: &str, + fields: &str, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !state.to_string().is_empty() { - query_args.push(("state".to_string(), state.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); + } + if !q.is_empty() { + query_args.push(("q".to_string(), q.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/projects?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/users/{}/projectsV2/{}/items?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), query_ ), None, @@ -1050,30 +1328,30 @@ impl Projects { .await } /** - * Create a repository project. + * Add item to user owned project. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/projects` endpoint. + * This function performs a `POST` to the `/users/{username}/projectsV2/{project_number}/items` endpoint. * - * Creates a repository project board. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * Add an issue or pull request item to the specified user owned project. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `username: &str` -- The handle for the GitHub user account. + * * `project_number: i64` -- The project's number. */ - pub async fn create_for_repo( + pub async fn add_item_for_user( &self, - owner: &str, - repo: &str, - body: &crate::types::ProjectsCreateRequest, - ) -> ClientResult> { + username: &str, + project_number: i64, + body: &crate::types::ProjectsAddItemOrgRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/projects", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/users/{}/projectsV2/{}/items", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), ), None, ); @@ -1088,21 +1366,128 @@ impl Projects { .await } /** - * Create a user project. + * Get an item for a user owned project. + * + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/items/{item_id}` endpoint. * - * This function performs a `POST` to the `/user/projects` endpoint. + * Get a specific item from a user-owned project. * + * FROM: * + * **Parameters:** * - * FROM: + * * `project_number: i64` -- The project's number. + * * `username: &str` -- The handle for the GitHub user account. + * * `item_id: i64` -- The unique identifier of the project item. + * * `fields: &str` -- Limit results to specific fields, by their IDs. If not specified, the title field will be returned. + * + * Example: fields[]=123&fields[]=456&fields[]=789 or fields=123,456,789. */ - pub async fn create_for_authenticated_user( + pub async fn get_user_item( &self, - body: &crate::types::ProjectsCreateRequest, - ) -> ClientResult> { - let url = self.client.url("/user/projects", None); + project_number: i64, + username: &str, + item_id: i64, + fields: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/users/{}/projectsV2/{}/items/{}?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&item_id.to_string()), + query_ + ), + None, + ); self.client - .post( + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete project item for user. + * + * This function performs a `DELETE` to the `/users/{username}/projectsV2/{project_number}/items/{item_id}` endpoint. + * + * Delete a specific item from a user-owned project. + * + * FROM: + * + * **Parameters:** + * + * * `project_number: i64` -- The project's number. + * * `username: &str` -- The handle for the GitHub user account. + * * `item_id: i64` -- The unique identifier of the project item. + */ + pub async fn delete_item_for_user( + &self, + project_number: i64, + username: &str, + item_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/users/{}/projectsV2/{}/items/{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&item_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update project item for user. + * + * This function performs a `PATCH` to the `/users/{username}/projectsV2/{project_number}/items/{item_id}` endpoint. + * + * Update a specific item in a user-owned project. + * + * FROM: + * + * **Parameters:** + * + * * `project_number: i64` -- The project's number. + * * `username: &str` -- The handle for the GitHub user account. + * * `item_id: i64` -- The unique identifier of the project item. + */ + pub async fn update_item_for_user( + &self, + project_number: i64, + username: &str, + item_id: i64, + body: &crate::types::ProjectsUpdateItemOrgRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/users/{}/projectsV2/{}/items/{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&item_id.to_string()), + ), + None, + ); + self.client + .patch( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -1112,43 +1497,57 @@ impl Projects { .await } /** - * List user projects. - * - * This function performs a `GET` to the `/users/{username}/projects` endpoint. + * List items for a user project view. * + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/views/{view_number}/items` endpoint. * + * List items in a user project with the saved view's filter applied. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `project_number: i64` -- The project's number. + * * `username: &str` -- The handle for the GitHub user account. + * * `view_number: i64` -- The number that identifies the project view. + * * `fields: &str` -- Limit results to specific fields, by their IDs. If not specified, the + * title field will be returned. + * + * Example: `fields[]=123&fields[]=456&fields[]=789` or `fields=123,456,789`. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_for_user( + pub async fn list_view_items_for_user( &self, + project_number: i64, username: &str, - state: crate::types::IssuesListState, + view_number: i64, + fields: &str, + before: &str, + after: &str, per_page: i64, - page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } - if !state.to_string().is_empty() { - query_args.push(("state".to_string(), state.to_string())); - } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/users/{}/projects?{}", - crate::progenitor_support::encode_path(username), + "/users/{}/projectsV2/{}/views/{}/items?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&view_number.to_string()), query_ ), None, @@ -1164,30 +1563,42 @@ impl Projects { .await } /** - * List user projects. + * List items for a user project view. * - * This function performs a `GET` to the `/users/{username}/projects` endpoint. + * This function performs a `GET` to the `/users/{username}/projectsV2/{project_number}/views/{view_number}/items` endpoint. * - * As opposed to `list_for_user`, this function returns all the pages of the request at once. + * As opposed to `list_view_items_for_user`, this function returns all the pages of the request at once. * + * List items in a user project with the saved view's filter applied. * - * - * FROM: + * FROM: */ - pub async fn list_all_for_user( + pub async fn list_all_view_items_for_user( &self, + project_number: i64, username: &str, - state: crate::types::IssuesListState, - ) -> ClientResult>> { + view_number: i64, + fields: &str, + before: &str, + after: &str, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !state.to_string().is_empty() { - query_args.push(("state".to_string(), state.to_string())); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !fields.is_empty() { + query_args.push(("fields".to_string(), fields.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/users/{}/projects?{}", - crate::progenitor_support::encode_path(username), + "/users/{}/projectsV2/{}/views/{}/items?{}", + crate::progenitor_support::encode_path(&username.to_string()), + crate::progenitor_support::encode_path(&project_number.to_string()), + crate::progenitor_support::encode_path(&view_number.to_string()), query_ ), None, diff --git a/github/src/pulls.rs b/github/src/pulls.rs index 184e7f5e..331aa744 100644 --- a/github/src/pulls.rs +++ b/github/src/pulls.rs @@ -16,23 +16,34 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls` endpoint. * - * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Lists pull requests in a specified repository. * - * FROM: + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `state: crate::types::IssuesListState` -- Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `state: crate::types::IssuesListState` -- Either `open`, `closed`, or `all` to filter by state. * * `head: &str` -- Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. * * `base: &str` -- Filter pulls by base branch name. Example: `gh-pages`. - * * `sort: crate::types::PullsListSort` -- What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month). - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `sort: crate::types::PullsListSort` -- What to sort results by. `popularity` will sort by the number of comments. `long-running` will sort by date created and will limit the results to pull requests that have been open for more than a month and have had activity within the past month. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list( &self, @@ -72,8 +83,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -95,9 +106,22 @@ impl Pulls { * * As opposed to `list`, this function returns all the pages of the request at once. * - * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: */ pub async fn list_all( &self, @@ -129,8 +153,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -150,32 +174,37 @@ impl Pulls { * * This function performs a `POST` to the `/repos/{owner}/{repo}/pulls` endpoint. * - * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. * - * You can create a new pull request. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn create( &self, owner: &str, repo: &str, body: &crate::types::PullsCreateRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/pulls", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -194,21 +223,27 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/comments` endpoint. * - * Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. + * Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `sort: crate::types::PullsListReviewCommentsRepoSort` - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_review_comments_for_repo( &self, @@ -240,8 +275,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -263,9 +298,17 @@ impl Pulls { * * As opposed to `list_review_comments_for_repo`, this function returns all the pages of the request at once. * - * Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. + * Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: */ pub async fn list_all_review_comments_for_repo( &self, @@ -289,8 +332,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -310,15 +353,22 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/comments/{comment_id}` endpoint. * - * Provides details for a review comment. + * Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn get_review_comment( &self, @@ -329,8 +379,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -352,13 +402,13 @@ impl Pulls { * * Deletes a review comment. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn delete_review_comment( &self, @@ -369,8 +419,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -390,15 +440,22 @@ impl Pulls { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/pulls/comments/{comment_id}` endpoint. * - * Enables you to edit a review comment. + * Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn update_review_comment( &self, @@ -410,8 +467,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -431,41 +488,49 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}` endpoint. * - * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * * Lists details of a pull request by providing its number. * - * When you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". * * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. * * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: * - * * If merged as a [merge commit](https://help.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. - * * If merged via a [squash](https://help.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. - * * If [rebased](https://help.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types) to fetch diff and patch formats. * - * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn get( &self, owner: &str, repo: &str, pull_number: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -485,17 +550,24 @@ impl Pulls { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/pulls/{pull_number}` endpoint. * - * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn update( &self, @@ -503,12 +575,12 @@ impl Pulls { repo: &str, pull_number: i64, body: &crate::types::PullsUpdateRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -528,29 +600,35 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/comments` endpoint. * - * Lists all review comments for a pull request. By default, review comments are in ascending order by ID. + * Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `sort: crate::types::Sort` -- One of `created` (when the repository was starred) or `updated` (when it was last pushed to). - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `sort: crate::types::SortData` -- The property to sort the results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_review_comments( &self, owner: &str, repo: &str, pull_number: i64, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, since: Option>, per_page: i64, @@ -576,8 +654,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), query_ ), @@ -600,16 +678,24 @@ impl Pulls { * * As opposed to `list_review_comments`, this function returns all the pages of the request at once. * - * Lists all review comments for a pull request. By default, review comments are in ascending order by ID. + * Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all_review_comments( &self, owner: &str, repo: &str, pull_number: i64, - sort: crate::types::Sort, + sort: crate::types::SortData, direction: crate::types::Order, since: Option>, ) -> ClientResult>> { @@ -627,8 +713,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), query_ ), @@ -649,22 +735,29 @@ impl Pulls { * * This function performs a `POST` to the `/repos/{owner}/{repo}/pulls/{pull_number}/comments` endpoint. * + * Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." * - * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. * - * You can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see the [`comfort-fade` preview notice](https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request-preview-notices). + * The `position` parameter is closing down. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. * - * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn create_review_comment( &self, @@ -676,8 +769,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/comments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -699,16 +792,24 @@ impl Pulls { * * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn create_reply_for_review_comment( &self, @@ -721,8 +822,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/comments/{}/replies", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), @@ -743,17 +844,26 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/commits` endpoint. * - * Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint. + * Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_commits( &self, @@ -774,8 +884,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/commits?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), query_ ), @@ -798,9 +908,18 @@ impl Pulls { * * As opposed to `list_commits`, this function returns all the pages of the request at once. * - * Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint. + * Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all_commits( &self, @@ -811,8 +930,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/commits", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -832,17 +951,27 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/files` endpoint. * - * **Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + * Lists the files in a specified pull request. + * + * > [!NOTE] + * > Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_files( &self, @@ -863,8 +992,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/files?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), query_ ), @@ -887,9 +1016,19 @@ impl Pulls { * * As opposed to `list_files`, this function returns all the pages of the request at once. * - * **Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + * Lists the files in a specified pull request. + * + * > [!NOTE] + * > Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all_files( &self, @@ -900,8 +1039,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/files", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -921,15 +1060,15 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/merge` endpoint. * + * Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn check_if_merged( &self, @@ -940,8 +1079,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/merge", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -961,15 +1100,16 @@ impl Pulls { * * This function performs a `PUT` to the `/repos/{owner}/{repo}/pulls/{pull_number}/merge` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn merge( &self, @@ -981,8 +1121,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/merge", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -998,45 +1138,32 @@ impl Pulls { .await } /** - * List requested reviewers for a pull request. + * Get all requested reviewers for a pull request. * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers` endpoint. * + * Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn list_requested_reviewers( &self, owner: &str, repo: &str, pull_number: i64, - per_page: i64, - page: i64, ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/pulls/{}/requested_reviewers?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/pulls/{}/requested_reviewers", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), - query_ ), None, ); @@ -1055,15 +1182,16 @@ impl Pulls { * * This function performs a `POST` to the `/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * Requests reviews for a pull request from a given set of users and/or teams. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn request_reviewers( &self, @@ -1075,8 +1203,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/requested_reviewers", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -1096,28 +1224,28 @@ impl Pulls { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers` endpoint. * + * Removes review requests from a pull request for a given set of users and/or teams. * - * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn remove_requested_reviewers( &self, owner: &str, repo: &str, pull_number: i64, - body: &crate::types::PullsRemoveRequestedReviewersRequest, + body: &crate::types::PullsRequestReviewers, ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/requested_reviewers", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -1137,17 +1265,24 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews` endpoint. * - * The list of reviews returns in chronological order. + * Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_reviews( &self, @@ -1168,8 +1303,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), query_ ), @@ -1192,9 +1327,16 @@ impl Pulls { * * As opposed to `list_reviews`, this function returns all the pages of the request at once. * - * The list of reviews returns in chronological order. + * Lists all reviews for a specified pull request. The list of reviews returns in chronological order. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: */ pub async fn list_all_reviews( &self, @@ -1205,8 +1347,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -1226,21 +1368,31 @@ impl Pulls { * * This function performs a `POST` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." * - * Pull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response. + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." * - * **Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/overview/media-types#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint. + * > [!NOTE] + * > To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. * * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn create_review( &self, @@ -1252,8 +1404,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, @@ -1273,16 +1425,23 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}` endpoint. * + * Retrieves a pull request review by its ID. * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `review_id: i64` -- review_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `review_id: i64` -- The unique identifier of the review. */ pub async fn get_review( &self, @@ -1294,8 +1453,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&review_id.to_string()), ), @@ -1316,16 +1475,23 @@ impl Pulls { * * This function performs a `PUT` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}` endpoint. * - * Update the review summary comment with new text. + * Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `review_id: i64` -- review_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `review_id: i64` -- The unique identifier of the review. */ pub async fn update_review( &self, @@ -1338,8 +1504,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&review_id.to_string()), ), @@ -1360,16 +1526,23 @@ impl Pulls { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}` endpoint. * + * Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `review_id: i64` -- review_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `review_id: i64` -- The unique identifier of the review. */ pub async fn delete_pending_review( &self, @@ -1381,8 +1554,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&review_id.to_string()), ), @@ -1403,18 +1576,25 @@ impl Pulls { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments` endpoint. * - * List comments for a specific pull request review. + * Lists comments for a specific pull request review. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `review_id: i64` -- review_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `review_id: i64` -- The unique identifier of the review. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_comments_for_review( &self, @@ -1436,8 +1616,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews/{}/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&review_id.to_string()), query_ @@ -1461,9 +1641,16 @@ impl Pulls { * * As opposed to `list_comments_for_review`, this function returns all the pages of the request at once. * - * List comments for a specific pull request review. + * Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: */ pub async fn list_all_comments_for_review( &self, @@ -1475,8 +1662,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews/{}/comments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&review_id.to_string()), ), @@ -1497,16 +1684,26 @@ impl Pulls { * * This function performs a `PUT` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals` endpoint. * - * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. + * Dismisses a specified review on a pull request. * - * FROM: + * > [!NOTE] + * > To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `review_id: i64` -- review_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `review_id: i64` -- The unique identifier of the review. */ pub async fn dismiss_review( &self, @@ -1519,8 +1716,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews/{}/dismissals", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&review_id.to_string()), ), @@ -1541,16 +1738,23 @@ impl Pulls { * * This function performs a `POST` to the `/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events` endpoint. * + * Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` - * * `review_id: i64` -- review_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. + * * `review_id: i64` -- The unique identifier of the review. */ pub async fn submit_review( &self, @@ -1563,8 +1767,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/reviews/{}/events", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), crate::progenitor_support::encode_path(&review_id.to_string()), ), @@ -1586,14 +1790,15 @@ impl Pulls { * This function performs a `PUT` to the `/repos/{owner}/{repo}/pulls/{pull_number}/update-branch` endpoint. * * Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + * Note: If making a request on behalf of a GitHub App you must also have permissions to write the contents of the head repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `pull_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pull_number: i64` -- The number that identifies the pull request. */ pub async fn update_branch( &self, @@ -1605,8 +1810,8 @@ impl Pulls { let url = self.client.url( &format!( "/repos/{}/{}/pulls/{}/update-branch", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&pull_number.to_string()), ), None, diff --git a/github/src/rate_limit.rs b/github/src/rate_limit.rs index 918cdc2a..ab866d3a 100644 --- a/github/src/rate_limit.rs +++ b/github/src/rate_limit.rs @@ -16,14 +16,28 @@ impl RateLimit { * * This function performs a `GET` to the `/rate_limit` endpoint. * - * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * > [!NOTE] + * > Accessing this endpoint does not count against your REST API rate limit. * - * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `dependency_sbom` object provides your rate limit status for requesting SBOMs from the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/about-the-rest-api/api-versions)." * - * FROM: + * > [!NOTE] + * > The `rate` object is closing down. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + * + * FROM: */ pub async fn get(&self) -> ClientResult> { - let url = self.client.url("/rate_limit", None); + let url = self.client.url(&"/rate_limit".to_string(), None); self.client .get( &url, diff --git a/github/src/reactions.rs b/github/src/reactions.rs index b94dd1f5..43f501a8 100644 --- a/github/src/reactions.rs +++ b/github/src/reactions.rs @@ -11,453 +11,23 @@ impl Reactions { Reactions { client } } - /** - * List reactions for a team discussion comment. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions` endpoint. - * - * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `comment_number: i64` - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_for_team_discussion_comment_in_org( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - comment_number: i64, - content: crate::types::Content, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !content.to_string().is_empty() { - query_args.push(("content".to_string(), content.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List reactions for a team discussion comment. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions` endpoint. - * - * As opposed to `list_for_team_discussion_comment_in_org`, this function returns all the pages of the request at once. - * - * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. - * - * FROM: - */ - pub async fn list_all_for_team_discussion_comment_in_org( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - comment_number: i64, - content: crate::types::Content, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !content.to_string().is_empty() { - query_args.push(("content".to_string(), content.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), - query_ - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Create reaction for a team discussion comment. - * - * This function performs a `POST` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions` endpoint. - * - * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `comment_number: i64` - */ - pub async fn create_for_team_discussion_comment_in_org( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - comment_number: i64, - body: &crate::types::ReactionsCreateIssueRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/comments/{}/reactions", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), - ), - None, - ); - self.client - .post( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Delete team discussion comment reaction. - * - * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}` endpoint. - * - * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. - * - * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `comment_number: i64` - * * `reaction_id: i64` - */ - pub async fn delete_for_team_discussion_comment( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - comment_number: i64, - reaction_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/comments/{}/reactions/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), - crate::progenitor_support::encode_path(&reaction_id.to_string()), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List reactions for a team discussion. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions` endpoint. - * - * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_for_team_discussion_in_org( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - content: crate::types::Content, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !content.to_string().is_empty() { - query_args.push(("content".to_string(), content.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/reactions?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List reactions for a team discussion. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions` endpoint. - * - * As opposed to `list_for_team_discussion_in_org`, this function returns all the pages of the request at once. - * - * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. - * - * FROM: - */ - pub async fn list_all_for_team_discussion_in_org( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - content: crate::types::Content, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !content.to_string().is_empty() { - query_args.push(("content".to_string(), content.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/reactions?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - query_ - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Create reaction for a team discussion. - * - * This function performs a `POST` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions` endpoint. - * - * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - */ - pub async fn create_for_team_discussion_in_org( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - body: &crate::types::ReactionsCreateIssueRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/reactions", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - ), - None, - ); - self.client - .post( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Delete team discussion reaction. - * - * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}` endpoint. - * - * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. - * - * Delete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `reaction_id: i64` - */ - pub async fn delete_for_team_discussion( - &self, - org: &str, - team_slug: &str, - discussion_number: i64, - reaction_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/discussions/{}/reactions/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&reaction_id.to_string()), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Delete a reaction (Legacy). - * - * This function performs a `DELETE` to the `/reactions/{reaction_id}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Reactions API. We recommend migrating your existing code to use the new delete reactions endpoints. For more information, see this [blog post](https://developer.github.com/changes/2020-02-26-new-delete-reactions-endpoints/). - * - * OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), when deleting a [team discussion](https://docs.github.com/rest/reference/teams#discussions) or [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). - * - * FROM: - * - * **Parameters:** - * - * * `reaction_id: i64` - */ - pub async fn delete_legacy(&self, reaction_id: i64) -> ClientResult> { - let url = self.client.url( - &format!( - "/reactions/{}", - crate::progenitor_support::encode_path(&reaction_id.to_string()), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } /** * List reactions for a commit comment. * * This function performs a `GET` to the `/repos/{owner}/{repo}/comments/{comment_id}/reactions` endpoint. * - * List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + * List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a commit comment. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a commit comment. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_commit_comment( &self, @@ -482,8 +52,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), query_ ), @@ -506,9 +76,9 @@ impl Reactions { * * As opposed to `list_for_commit_comment`, this function returns all the pages of the request at once. * - * List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + * List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). * - * FROM: + * FROM: */ pub async fn list_all_for_commit_comment( &self, @@ -525,8 +95,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), query_ ), @@ -547,15 +117,15 @@ impl Reactions { * * This function performs a `POST` to the `/repos/{owner}/{repo}/comments/{comment_id}/reactions` endpoint. * - * Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + * Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn create_for_commit_comment( &self, @@ -567,8 +137,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/comments/{}/reactions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -588,18 +158,19 @@ impl Reactions { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}` endpoint. * - * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * > [!NOTE] + * > You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. * - * Delete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. - * * `reaction_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + * * `reaction_id: i64` -- The unique identifier of the reaction. */ pub async fn delete_for_commit_comment( &self, @@ -611,8 +182,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/comments/{}/reactions/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), crate::progenitor_support::encode_path(&reaction_id.to_string()), ), @@ -633,18 +204,18 @@ impl Reactions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions` endpoint. * - * List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + * List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue comment. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue comment. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_issue_comment( &self, @@ -669,8 +240,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), query_ ), @@ -693,9 +264,9 @@ impl Reactions { * * As opposed to `list_for_issue_comment`, this function returns all the pages of the request at once. * - * List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + * List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). * - * FROM: + * FROM: */ pub async fn list_all_for_issue_comment( &self, @@ -712,8 +283,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), query_ ), @@ -734,15 +305,15 @@ impl Reactions { * * This function performs a `POST` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions` endpoint. * - * Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + * Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn create_for_issue_comment( &self, @@ -754,8 +325,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments/{}/reactions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -775,18 +346,19 @@ impl Reactions { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}` endpoint. * - * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * > [!NOTE] + * > You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. * - * Delete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. - * * `reaction_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + * * `reaction_id: i64` -- The unique identifier of the reaction. */ pub async fn delete_for_issue_comment( &self, @@ -798,8 +370,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/comments/{}/reactions/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), crate::progenitor_support::encode_path(&reaction_id.to_string()), ), @@ -820,18 +392,18 @@ impl Reactions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/issues/{issue_number}/reactions` endpoint. * - * List the reactions to an [issue](https://docs.github.com/rest/reference/issues). + * List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_issue( &self, @@ -856,8 +428,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), query_ ), @@ -880,9 +452,9 @@ impl Reactions { * * As opposed to `list_for_issue`, this function returns all the pages of the request at once. * - * List the reactions to an [issue](https://docs.github.com/rest/reference/issues). + * List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). * - * FROM: + * FROM: */ pub async fn list_all_for_issue( &self, @@ -899,8 +471,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), query_ ), @@ -921,15 +493,15 @@ impl Reactions { * * This function performs a `POST` to the `/repos/{owner}/{repo}/issues/{issue_number}/reactions` endpoint. * - * Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with an HTTP `200` status means that you already added the reaction type to this issue. + * Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. */ pub async fn create_for_issue( &self, @@ -941,8 +513,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/reactions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), ), None, @@ -962,18 +534,19 @@ impl Reactions { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}` endpoint. * - * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * > [!NOTE] + * > You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. * - * Delete a reaction to an [issue](https://docs.github.com/rest/reference/issues/). + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `issue_number: i64` -- issue_number parameter. - * * `reaction_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `issue_number: i64` -- The number that identifies the issue. + * * `reaction_id: i64` -- The unique identifier of the reaction. */ pub async fn delete_for_issue( &self, @@ -985,8 +558,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/issues/{}/reactions/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&issue_number.to_string()), crate::progenitor_support::encode_path(&reaction_id.to_string()), ), @@ -1007,18 +580,18 @@ impl Reactions { * * This function performs a `GET` to the `/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions` endpoint. * - * List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + * List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a pull request review comment. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a pull request review comment. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_pull_request_review_comment( &self, @@ -1043,8 +616,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), query_ ), @@ -1067,9 +640,9 @@ impl Reactions { * * As opposed to `list_for_pull_request_review_comment`, this function returns all the pages of the request at once. * - * List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + * List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). * - * FROM: + * FROM: */ pub async fn list_all_for_pull_request_review_comment( &self, @@ -1086,8 +659,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), query_ ), @@ -1108,15 +681,15 @@ impl Reactions { * * This function performs a `POST` to the `/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions` endpoint. * - * Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + * Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ pub async fn create_for_pull_request_review_comment( &self, @@ -1128,8 +701,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments/{}/reactions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, @@ -1149,18 +722,19 @@ impl Reactions { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}` endpoint. * - * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * > [!NOTE] + * > You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` * - * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. - * * `reaction_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + * * `reaction_id: i64` -- The unique identifier of the reaction. */ pub async fn delete_for_pull_request_comment( &self, @@ -1172,8 +746,8 @@ impl Reactions { let url = self.client.url( &format!( "/repos/{}/{}/pulls/comments/{}/reactions/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&comment_id.to_string()), crate::progenitor_support::encode_path(&reaction_id.to_string()), ), @@ -1190,72 +764,29 @@ impl Reactions { .await } /** - * Create reaction for a release. + * List reactions for a release. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/releases/{release_id}/reactions` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}/reactions` endpoint. * - * Create a reaction to a [release](https://docs.github.com/rest/reference/repos#releases). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + * List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `release_id: i64` -- release_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. + * * `content: crate::types::ReactionsListReleaseContent` -- Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a release. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn create_for_release( + pub async fn list_for_release( &self, owner: &str, repo: &str, release_id: i64, - body: &crate::types::ReactionsCreateReleaseRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/repos/{}/{}/releases/{}/reactions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&release_id.to_string()), - ), - None, - ); - self.client - .post( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * List reactions for a team discussion comment (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) endpoint. - * - * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `discussion_number: i64` - * * `comment_number: i64` - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_for_team_discussion_comment_legacy( - &self, - team_id: i64, - discussion_number: i64, - comment_number: i64, - content: crate::types::Content, + content: crate::types::ReactionsListReleaseContent, per_page: i64, page: i64, ) -> ClientResult>> { @@ -1272,10 +803,10 @@ impl Reactions { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), + "/repos/{}/{}/releases/{}/reactions?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), query_ ), None, @@ -1291,24 +822,22 @@ impl Reactions { .await } /** - * List reactions for a team discussion comment (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions` endpoint. + * List reactions for a release. * - * As opposed to `list_for_team_discussion_comment_legacy`, this function returns all the pages of the request at once. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}/reactions` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * As opposed to `list_for_release`, this function returns all the pages of the request at once. * - * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). * - * FROM: + * FROM: */ - pub async fn list_all_for_team_discussion_comment_legacy( + pub async fn list_all_for_release( &self, - team_id: i64, - discussion_number: i64, - comment_number: i64, - content: crate::types::Content, + owner: &str, + repo: &str, + release_id: i64, + content: crate::types::ReactionsListReleaseContent, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if !content.to_string().is_empty() { @@ -1317,10 +846,10 @@ impl Reactions { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments/{}/reactions?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), + "/repos/{}/{}/releases/{}/reactions?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), query_ ), None, @@ -1336,35 +865,33 @@ impl Reactions { .await } /** - * Create reaction for a team discussion comment (Legacy). - * - * This function performs a `POST` to the `/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions` endpoint. + * Create reaction for a release. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/releases/{release_id}/reactions` endpoint. * - * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `discussion_number: i64` - * * `comment_number: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. */ - pub async fn create_for_team_discussion_comment_legacy( + pub async fn create_for_release( &self, - team_id: i64, - discussion_number: i64, - comment_number: i64, - body: &crate::types::ReactionsCreateIssueRequest, + owner: &str, + repo: &str, + release_id: i64, + body: &crate::types::ReactionsCreateReleaseRequest, ) -> ClientResult> { let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments/{}/reactions", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), + "/repos/{}/{}/releases/{}/reactions", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), ), None, ); @@ -1379,97 +906,43 @@ impl Reactions { .await } /** - * List reactions for a team discussion (Legacy). + * Delete a release reaction. * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}/reactions` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion) endpoint. + * > [!NOTE] + * > You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. * - * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `discussion_number: i64` - * * `content: crate::types::Content` -- Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. + * * `reaction_id: i64` -- The unique identifier of the reaction. */ - pub async fn list_for_team_discussion_legacy( + pub async fn delete_for_release( &self, - team_id: i64, - discussion_number: i64, - content: crate::types::Content, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !content.to_string().is_empty() { - query_args.push(("content".to_string(), content.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/teams/{}/discussions/{}/reactions?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List reactions for a team discussion (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}/reactions` endpoint. - * - * As opposed to `list_for_team_discussion_legacy`, this function returns all the pages of the request at once. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion) endpoint. - * - * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - */ - pub async fn list_all_for_team_discussion_legacy( - &self, - team_id: i64, - discussion_number: i64, - content: crate::types::Content, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !content.to_string().is_empty() { - query_args.push(("content".to_string(), content.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + owner: &str, + repo: &str, + release_id: i64, + reaction_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/teams/{}/discussions/{}/reactions?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - query_ + "/repos/{}/{}/releases/{}/reactions/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), + crate::progenitor_support::encode_path(&reaction_id.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -1478,44 +951,4 @@ impl Reactions { ) .await } - /** - * Create reaction for a team discussion (Legacy). - * - * This function performs a `POST` to the `/teams/{team_id}/discussions/{discussion_number}/reactions` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion) endpoint. - * - * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `discussion_number: i64` - */ - pub async fn create_for_team_discussion_legacy( - &self, - team_id: i64, - discussion_number: i64, - body: &crate::types::ReactionsCreateIssueRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/discussions/{}/reactions", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - ), - None, - ); - self.client - .post( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } } diff --git a/github/src/repos.rs b/github/src/repos.rs index 483d2927..6e03ae60 100644 --- a/github/src/repos.rs +++ b/github/src/repos.rs @@ -27,18 +27,19 @@ impl Repos { * * Lists repositories for the specified organization. * - * FROM: + * > [!NOTE] + * > In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * FROM: * * **Parameters:** * - * * `org: &str` - * * `type_: crate::types::ReposListOrgType` -- Specifies the types of repositories you want returned. Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`, `internal`. Note: For GitHub AE, can be one of `all`, `private`, `forks`, `sources`, `member`, `internal`. Default: `all`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `type` can also be `internal`. However, the `internal` value is not yet supported when a GitHub App calls this API with an installation access token. - * * `sort: crate::types::ReposListOrgSort` -- Can be one of `created`, `updated`, `pushed`, `full_name`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `type_: crate::types::ReposListOrgType` -- Specifies the types of repositories you want returned. + * * `sort: crate::types::ReposListOrgSort` -- The property to sort the results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_org( &self, @@ -69,7 +70,7 @@ impl Repos { let url = self.client.url( &format!( "/orgs/{}/repos?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -93,7 +94,10 @@ impl Repos { * * Lists repositories for the specified organization. * - * FROM: + * > [!NOTE] + * > In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * FROM: */ pub async fn list_all_for_org( &self, @@ -116,7 +120,7 @@ impl Repos { let url = self.client.url( &format!( "/orgs/{}/repos?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -138,28 +142,23 @@ impl Repos { * * Creates a new repository in the specified organization. The authenticated user must be a member of the organization. * - * **OAuth scope requirements** - * - * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. * - * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. - * * `repo` scope to create a private repository - * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn create_in_org( &self, org: &str, body: &crate::types::ReposCreateInOrgRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/orgs/{}/repos", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -174,31 +173,47 @@ impl Repos { .await } /** - * Get a repository. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}` endpoint. + * Get all organization repository rulesets. * - * When you pass the `scarlet-witch-preview` media type, requests to get a repository will also return the repository's code of conduct if it can be detected from the repository's code of conduct file. + * This function performs a `GET` to the `/orgs/{org}/rulesets` endpoint. * - * The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * Get all the repository rulesets for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `targets: &str` -- A comma-separated list of rule targets to filter by. + * If provided, only rulesets that apply to the specified targets will be returned. + * For example, `branch,tag,push`. + * . */ - pub async fn get( + pub async fn get_org_rulesets( &self, - owner: &str, - repo: &str, - ) -> ClientResult> { + org: &str, + per_page: i64, + page: i64, + targets: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !targets.is_empty() { + query_args.push(("targets".to_string(), targets.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/rulesets?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); @@ -213,33 +228,36 @@ impl Repos { .await } /** - * Delete a repository. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}` endpoint. - * - * Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required. + * Get all organization repository rulesets. * - * If an organization owner has configured the organization to prevent members from deleting organization-owned - * repositories, you will get a `403 Forbidden` response. + * This function performs a `GET` to the `/orgs/{org}/rulesets` endpoint. * - * FROM: + * As opposed to `get_org_rulesets`, this function returns all the pages of the request at once. * - * **Parameters:** + * Get all the repository rulesets for an organization. * - * * `owner: &str` - * * `repo: &str` + * FROM: */ - pub async fn delete(&self, owner: &str, repo: &str) -> ClientResult> { + pub async fn get_all_org_rulesets( + &self, + org: &str, + targets: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !targets.is_empty() { + query_args.push(("targets".to_string(), targets.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/rulesets?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -249,35 +267,32 @@ impl Repos { .await } /** - * Update a repository. + * Create an organization repository ruleset. * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}` endpoint. + * This function performs a `POST` to the `/orgs/{org}/rulesets` endpoint. * - * **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint. + * Create a repository ruleset for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ - pub async fn update( + pub async fn create_org_ruleset( &self, - owner: &str, - repo: &str, - body: &crate::types::ReposUpdateRequest, - ) -> ClientResult> { + org: &str, + body: &crate::types::ReposCreateOrgRulesetRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/rulesets", + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); self.client - .patch( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -287,38 +302,69 @@ impl Repos { .await } /** - * List all autolinks of a repository. + * List organization rule suites. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/autolinks` endpoint. - * - * This returns a list of autolinks configured for the given repository. + * This function performs a `GET` to the `/orgs/{org}/rulesets/rule-suites` endpoint. * - * Information about autolinks are only available to repository administrators. + * Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `ref_: &str` -- The name of the ref. Cannot contain wildcard characters. Optionally prefix with `refs/heads/` to limit to branches or `refs/tags/` to limit to tags. Omit the prefix to search across all refs. When specified, only rule evaluations triggered for this ref will be returned. + * * `repository_name: &str` -- The name of the repository to filter on. + * * `time_period: crate::types::TimePeriodData` -- The time period to filter by. + * + * For example, `day` will filter for rule suites that occurred in the past 24 hours, and `week` will filter for rule suites that occurred in the past 7 days (168 hours). + * * `actor_name: &str` -- The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned. + * * `rule_suite_result: crate::types::RuleSuiteResult` -- The rule suite results to filter on. When specified, only suites with this result will be returned. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_autolinks( + pub async fn get_org_rule_suites( &self, - owner: &str, - repo: &str, + org: &str, + ref_: &str, + repository_name: &str, + time_period: crate::types::TimePeriodData, + actor_name: &str, + rule_suite_result: crate::types::RuleSuiteResult, + per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !actor_name.is_empty() { + query_args.push(("actor_name".to_string(), actor_name.to_string())); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !repository_name.is_empty() { + query_args.push(("repository_name".to_string(), repository_name.to_string())); + } + if !rule_suite_result.to_string().is_empty() { + query_args.push(( + "rule_suite_result".to_string(), + rule_suite_result.to_string(), + )); + } + if !time_period.to_string().is_empty() { + query_args.push(("time_period".to_string(), time_period.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/autolinks?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/rulesets/rule-suites?{}", + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -334,28 +380,51 @@ impl Repos { .await } /** - * List all autolinks of a repository. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/autolinks` endpoint. + * List organization rule suites. * - * As opposed to `list_autolinks`, this function returns all the pages of the request at once. + * This function performs a `GET` to the `/orgs/{org}/rulesets/rule-suites` endpoint. * - * This returns a list of autolinks configured for the given repository. + * As opposed to `get_org_rule_suites`, this function returns all the pages of the request at once. * - * Information about autolinks are only available to repository administrators. + * Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." * - * FROM: + * FROM: */ - pub async fn list_all_autolinks( + pub async fn get_all_org_rule_suites( &self, - owner: &str, - repo: &str, - ) -> ClientResult>> { + org: &str, + ref_: &str, + repository_name: &str, + time_period: crate::types::TimePeriodData, + actor_name: &str, + rule_suite_result: crate::types::RuleSuiteResult, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !actor_name.is_empty() { + query_args.push(("actor_name".to_string(), actor_name.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !repository_name.is_empty() { + query_args.push(("repository_name".to_string(), repository_name.to_string())); + } + if !rule_suite_result.to_string().is_empty() { + query_args.push(( + "rule_suite_result".to_string(), + rule_suite_result.to_string(), + )); + } + if !time_period.to_string().is_empty() { + query_args.push(("time_period".to_string(), time_period.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/autolinks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/rulesets/rule-suites?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ ), None, ); @@ -370,72 +439,73 @@ impl Repos { .await } /** - * Create an autolink reference for a repository. + * Get an organization rule suite. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/autolinks` endpoint. + * This function performs a `GET` to the `/orgs/{org}/rulesets/rule-suites/{rule_suite_id}` endpoint. * - * Users with admin access to the repository can create an autolink. + * Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `rule_suite_id: i64` -- The unique identifier of the rule suite result. + * To get this ID, you can use [GET /repos/{owner}/{repo}/rulesets/rule-suites](https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites) + * for repositories and [GET /orgs/{org}/rulesets/rule-suites](https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites) + * for organizations. */ - pub async fn create_autolink( + pub async fn get_org_rule_suite( &self, - owner: &str, - repo: &str, - body: &crate::types::ReposCreateAutolinkRequest, - ) -> ClientResult> { + org: &str, + rule_suite_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/autolinks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/rulesets/rule-suites/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&rule_suite_id.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get an autolink reference of a repository. + * Get an organization repository ruleset. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/autolinks/{autolink_id}` endpoint. + * This function performs a `GET` to the `/orgs/{org}/rulesets/{ruleset_id}` endpoint. * - * This returns a single autolink reference by ID that was configured for the given repository. + * Get a repository ruleset for an organization. * - * Information about autolinks are only available to repository administrators. + * **Note:** To prevent leaking sensitive information, the `bypass_actors` property is only returned if the user + * making the API request has write access to the ruleset. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `autolink_id: i64` -- autolink_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. */ - pub async fn get_autolink( + pub async fn get_org_ruleset( &self, - owner: &str, - repo: &str, - autolink_id: i64, - ) -> ClientResult> { + org: &str, + ruleset_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/autolinks/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&autolink_id.to_string()), + "/orgs/{}/rulesets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), ), None, ); @@ -450,76 +520,72 @@ impl Repos { .await } /** - * Delete an autolink reference from a repository. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/autolinks/{autolink_id}` endpoint. + * Update an organization repository ruleset. * - * This deletes a single autolink reference by ID that was configured for the given repository. + * This function performs a `PUT` to the `/orgs/{org}/rulesets/{ruleset_id}` endpoint. * - * Information about autolinks are only available to repository administrators. + * Update a ruleset for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `autolink_id: i64` -- autolink_id parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. */ - pub async fn delete_autolink( + pub async fn update_org_ruleset( &self, - owner: &str, - repo: &str, - autolink_id: i64, - ) -> ClientResult> { + org: &str, + ruleset_id: i64, + body: &crate::types::ReposUpdateOrgRulesetRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/autolinks/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&autolink_id.to_string()), + "/orgs/{}/rulesets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Enable automated security fixes. + * Delete an organization repository ruleset. * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/automated-security-fixes` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/rulesets/{ruleset_id}` endpoint. * - * Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + * Delete a ruleset for an organization. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. */ - pub async fn enable_automated_security_fixes( + pub async fn delete_org_ruleset( &self, - owner: &str, - repo: &str, + org: &str, + ruleset_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/automated-security-fixes", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/orgs/{}/rulesets/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), ), None, ); self.client - .put( + .delete( &url, crate::Message { body: None, @@ -529,34 +595,38 @@ impl Repos { .await } /** - * Disable automated security fixes. + * Get a repository. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/automated-security-fixes` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}` endpoint. * - * Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + * The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * > [!NOTE] + * > - In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * > - To view merge-related settings, you must have the `contents:read` and `contents:write` permissions. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn disable_automated_security_fixes( + pub async fn get( &self, owner: &str, repo: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/automated-security-fixes", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -566,52 +636,35 @@ impl Repos { .await } /** - * List branches. + * Delete a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}` endpoint. * + * Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `protected: bool` -- Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_branches( - &self, - owner: &str, - repo: &str, - protected: bool, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - if protected { - query_args.push(("protected".to_string(), protected.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + pub async fn delete(&self, owner: &str, repo: &str) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -621,73 +674,119 @@ impl Repos { .await } /** - * List branches. + * Update a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches` endpoint. + * This function performs a `PATCH` to the `/repos/{owner}/{repo}` endpoint. * - * As opposed to `list_branches`, this function returns all the pages of the request at once. + * **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. * + * FROM: * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_all_branches( + pub async fn update( &self, owner: &str, repo: &str, - protected: bool, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if protected { - query_args.push(("protected".to_string(), protected.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + body: &crate::types::ReposUpdateRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get_all_pages( + .patch( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get a branch. + * List repository activities. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/activity` endpoint. * + * Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `ref_: &str` -- The Git reference for the activities you want to list. + * + * The `ref` for a branch can be formatted either as `refs/heads/BRANCH_NAME` or `BRANCH_NAME`, where `BRANCH_NAME` is the name of your branch. + * * `actor: &str` -- The GitHub username to use to filter by the actor who performed the activity. + * * `time_period: crate::types::ReposListActivitiesTimePeriod` -- The time period to filter by. + * + * For example, `day` will filter for activity that occurred in the past 24 hours, and `week` will filter for activity that occurred in the past 7 days (168 hours). + * * `activity_type: crate::types::ActivityType` -- The activity type to filter by. + * + * For example, you can choose to filter by "force_push", to see all force pushes to the repository. */ - pub async fn get_branch( + pub async fn list_activities( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + direction: crate::types::Order, + per_page: i64, + before: &str, + after: &str, + ref_: &str, + actor: &str, + time_period: crate::types::ReposListActivitiesTimePeriod, + activity_type: crate::types::ActivityType, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !activity_type.to_string().is_empty() { + query_args.push(("activity_type".to_string(), activity_type.to_string())); + } + if !actor.is_empty() { + query_args.push(("actor".to_string(), actor.to_string())); + } + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !time_period.to_string().is_empty() { + query_args.push(("time_period".to_string(), time_period.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/activity?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); @@ -702,37 +801,65 @@ impl Repos { .await } /** - * Get branch protection. + * List repository activities. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/activity` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * As opposed to `list_activities`, this function returns all the pages of the request at once. * - * FROM: + * Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. * - * **Parameters:** + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * FROM: */ - pub async fn get_branch_protection( + pub async fn list_all_activities( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + direction: crate::types::Order, + before: &str, + after: &str, + ref_: &str, + actor: &str, + time_period: crate::types::ReposListActivitiesTimePeriod, + activity_type: crate::types::ActivityType, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !activity_type.to_string().is_empty() { + query_args.push(("activity_type".to_string(), activity_type.to_string())); + } + if !actor.is_empty() { + query_args.push(("actor".to_string(), actor.to_string())); + } + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !time_period.to_string().is_empty() { + query_args.push(("time_period".to_string(), time_period.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/activity?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -742,44 +869,39 @@ impl Repos { .await } /** - * Update branch protection. - * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection` endpoint. + * Create an attestation. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `POST` to the `/repos/{owner}/{repo}/attestations` endpoint. * - * Protecting a branch requires admin or owner permissions to the repository. + * Store an artifact attestation and associate it with a repository. * - * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * The authenticated user must have write permission to the repository and, if using a fine-grained access token, the `attestations:write` permission is required. * - * **Note**: The list of users, apps, and teams in total is limited to 100 items. + * Artifact attestations are meant to be created using the [attest action](https://github.com/actions/attest). For more information, see our guide on [using artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn update_branch_protection( + pub async fn create_attestation( &self, owner: &str, repo: &str, - branch: &str, - body: &crate::types::ReposUpdateBranchProtectionRequest, - ) -> ClientResult> { + body: &crate::types::ReposCreateAttestationRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/attestations", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .put( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -789,37 +911,66 @@ impl Repos { .await } /** - * Delete branch protection. + * List attestations. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/attestations/{subject_digest}` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * List a collection of artifact attestations with a given subject digest that are associated with a repository. * - * FROM: + * The authenticated user making the request must have read access to the repository. In addition, when using a fine-grained access token the `attestations:read` permission is required. + * + * **Please note:** in order to offer meaningful security benefits, an attestation's signature and timestamps **must** be cryptographically verified, and the identity of the attestation signer **must** be validated. Attestations can be verified using the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify). For more information, see [our guide on how to use artifact attestations to establish a build's provenance](https://docs.github.com/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `subject_digest: &str` -- The parameter should be set to the attestation's subject's SHA256 digest, in the form `sha256:HEX_DIGEST`. + * * `predicate_type: &str` -- Optional filter for fetching attestations with a given predicate type. + * This option accepts `provenance`, `sbom`, `release`, or freeform text + * for custom predicate types. */ - pub async fn delete_branch_protection( + pub async fn list_attestations( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + per_page: i64, + before: &str, + after: &str, + subject_digest: &str, + predicate_type: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !predicate_type.is_empty() { + query_args.push(("predicate_type".to_string(), predicate_type.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/attestations/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&subject_digest.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -829,32 +980,31 @@ impl Repos { .await } /** - * Get admin branch protection. + * Get all autolinks of a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/autolinks` endpoint. + * + * Gets all autolinks that are configured for a repository. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Information about autolinks are only available to repository administrators. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn get_admin_branch_protection( + pub async fn list_autolinks( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/enforce_admins", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/autolinks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -869,39 +1019,33 @@ impl Repos { .await } /** - * Set admin branch protection. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins` endpoint. + * Get all autolinks of a repository. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `GET` to the `/repos/{owner}/{repo}/autolinks` endpoint. * - * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * As opposed to `list_autolinks`, this function returns all the pages of the request at once. * - * FROM: + * Gets all autolinks that are configured for a repository. * - * **Parameters:** + * Information about autolinks are only available to repository administrators. * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * FROM: */ - pub async fn set_admin_branch_protection( + pub async fn list_all_autolinks( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/enforce_admins", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/autolinks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .post( + .get_all_pages( &url, crate::Message { body: None, @@ -911,74 +1055,72 @@ impl Repos { .await } /** - * Delete admin branch protection. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins` endpoint. + * Create an autolink reference for a repository. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `POST` to the `/repos/{owner}/{repo}/autolinks` endpoint. * - * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * Users with admin access to the repository can create an autolink. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn delete_admin_branch_protection( + pub async fn create_autolink( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + body: &crate::types::ReposCreateAutolinkRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/enforce_admins", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/autolinks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .delete( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get pull request review protection. + * Get an autolink reference of a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/autolinks/{autolink_id}` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `autolink_id: i64` -- The unique identifier of the autolink. */ - pub async fn get_pull_request_review_protection( + pub async fn get_autolink( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + autolink_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_pull_request_reviews", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/autolinks/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&autolink_id.to_string()), ), None, ); @@ -993,32 +1135,34 @@ impl Repos { .await } /** - * Delete pull request review protection. + * Delete an autolink reference from a repository. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/autolinks/{autolink_id}` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `autolink_id: i64` -- The unique identifier of the autolink. */ - pub async fn delete_pull_request_review_protection( + pub async fn delete_autolink( &self, owner: &str, repo: &str, - branch: &str, + autolink_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_pull_request_reviews", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/autolinks/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&autolink_id.to_string()), ), None, ); @@ -1033,86 +1177,71 @@ impl Repos { .await } /** - * Update pull request review protection. - * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews` endpoint. - * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Check if Dependabot security updates are enabled for a repository. * - * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * This function performs a `GET` to the `/repos/{owner}/{repo}/automated-security-fixes` endpoint. * - * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * Shows whether Dependabot security updates are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn update_pull_request_review_protection( + pub async fn check_automated_security_fixes( &self, owner: &str, repo: &str, - branch: &str, - body: &crate::types::ReposUpdatePullRequestReviewProtection, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_pull_request_reviews", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/automated-security-fixes", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .patch( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get commit signature protection. + * Enable Dependabot security updates. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures` endpoint. - * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://help.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/automated-security-fixes` endpoint. * - * **Note**: You must enable branch protection to require signed commits. + * Enables Dependabot security updates for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn get_commit_signature_protection( + pub async fn enable_automated_security_fixes( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_signatures", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/automated-security-fixes", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { body: None, @@ -1122,39 +1251,34 @@ impl Repos { .await } /** - * Create commit signature protection. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures` endpoint. + * Disable Dependabot security updates. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/automated-security-fixes` endpoint. * - * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + * Disables Dependabot security updates for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring Dependabot security updates](https://docs.github.com/articles/configuring-automated-security-fixes)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn create_commit_signature_protection( + pub async fn disable_automated_security_fixes( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_signatures", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/automated-security-fixes", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .post( + .delete( &url, crate::Message { body: None, @@ -1164,39 +1288,52 @@ impl Repos { .await } /** - * Delete commit signature protection. + * List branches. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `protected: bool` -- Setting to `true` returns only branches protected by branch protections or rulesets. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn delete_commit_signature_protection( + pub async fn list_branches( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + protected: bool, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if protected { + query_args.push(("protected".to_string(), protected.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_signatures", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -1206,37 +1343,38 @@ impl Repos { .await } /** - * Get status checks protection. + * List branches. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * As opposed to `list_branches`, this function returns all the pages of the request at once. * - * FROM: * - * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * FROM: */ - pub async fn get_status_checks_protection( + pub async fn list_all_branches( &self, owner: &str, repo: &str, - branch: &str, - ) -> ClientResult> { + protected: bool, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if protected { + query_args.push(("protected".to_string(), protected.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -1246,37 +1384,37 @@ impl Repos { .await } /** - * Remove status check protection. + * Get a branch. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn remove_status_check_protection( + pub async fn get_branch( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -1286,116 +1424,126 @@ impl Repos { .await } /** - * Update status check protection. - * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks` endpoint. + * Get branch protection. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection` endpoint. * - * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn update_status_check_protection( + pub async fn get_branch_protection( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposUpdateStatusCheckProtectionRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .patch( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get all status check contexts. + * Update branch protection. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection` endpoint. + * + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * > [!NOTE] + * > Passing new arrays of `users` and `teams` replaces their previous values. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * > [!NOTE] + * > The list of users, apps, and teams in total is limited to 100 items. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_all_status_check_contexts( + pub async fn update_branch_protection( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + body: &crate::types::ReposUpdateBranchProtectionRequestData, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get all status check contexts. + * Delete branch protection. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection` endpoint. * - * As opposed to `get_all_status_check_contexts`, this function returns all the pages of the request at once. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * FROM: * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_all_all_status_check_contexts( + pub async fn delete_branch_protection( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -1405,74 +1553,74 @@ impl Repos { .await } /** - * Set status check contexts. + * Get admin branch protection. * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn set_status_check_contexts( + pub async fn get_admin_branch_protection( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddStatusCheckContextsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/enforce_admins", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Add status check contexts. + * Set admin branch protection. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn add_status_check_contexts( + pub async fn set_admin_branch_protection( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddStatusCheckContextsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/enforce_admins", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); @@ -1480,40 +1628,41 @@ impl Repos { .post( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove status check contexts. + * Delete admin branch protection. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins` endpoint. + * + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn remove_status_check_contexts( + pub async fn delete_admin_branch_protection( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddStatusCheckContextsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/enforce_admins", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); @@ -1521,43 +1670,39 @@ impl Repos { .delete( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get access restrictions. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions` endpoint. - * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Get pull request review protection. * - * Lists who has access to this protected branch. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews` endpoint. * - * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_access_restrictions( + pub async fn get_pull_request_review_protection( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_pull_request_reviews", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); @@ -1572,23 +1717,21 @@ impl Repos { .await } /** - * Delete access restrictions. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions` endpoint. + * Delete pull request review protection. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews` endpoint. * - * Disables the ability to restrict who can push to this branch. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn delete_access_restrictions( + pub async fn delete_pull_request_review_protection( &self, owner: &str, repo: &str, @@ -1596,10 +1739,10 @@ impl Repos { ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_pull_request_reviews", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); @@ -1614,77 +1757,88 @@ impl Repos { .await } /** - * Get apps with access to the protected branch. + * Update pull request review protection. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews` endpoint. + * + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. * - * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * > [!NOTE] + * > Passing new arrays of `users` and `teams` replaces their previous values. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_apps_with_access_to_protected_branch( + pub async fn update_pull_request_review_protection( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + body: &crate::types::ReposUpdatePullRequestReviewProtection, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/apps", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_pull_request_reviews", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .patch( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get apps with access to the protected branch. + * Get commit signature protection. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures` endpoint. * - * As opposed to `get_apps_with_access_to_protected_branch`, this function returns all the pages of the request at once. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * > [!NOTE] + * > You must enable branch protection to require signed commits. * - * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * FROM: * - * FROM: + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_all_apps_with_access_to_protected_branch( + pub async fn get_commit_signature_protection( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/apps", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_signatures", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -1694,180 +1848,161 @@ impl Repos { .await } /** - * Set app access restrictions. - * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. + * Create commit signature protection. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures` endpoint. * - * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * | Type | Description | - * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | - * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn set_app_access_restrictions( + pub async fn create_commit_signature_protection( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddAppAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/apps", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_signatures", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .put( + .post( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Add app access restrictions. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. + * Delete commit signature protection. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures` endpoint. * - * Grants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * | Type | Description | - * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | - * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn add_app_access_restrictions( + pub async fn delete_commit_signature_protection( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddAppAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/apps", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_signatures", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .post( + .delete( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove app access restrictions. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. - * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Get status checks protection. * - * Removes the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks` endpoint. * - * | Type | Description | - * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | - * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn remove_app_access_restrictions( + pub async fn get_status_checks_protection( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddAppAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/apps", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get teams with access to the protected branch. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. + * Remove status check protection. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks` endpoint. * - * Lists the teams who have push access to this branch. The list includes child teams. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_teams_with_access_to_protected_branch( + pub async fn remove_status_check_protection( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/teams", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -1877,176 +2012,157 @@ impl Repos { .await } /** - * Get teams with access to the protected branch. + * Update status check protection. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks` endpoint. * - * As opposed to `get_teams_with_access_to_protected_branch`, this function returns all the pages of the request at once. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * FROM: * - * Lists the teams who have push access to this branch. The list includes child teams. + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_all_teams_with_access_to_protected_branch( + pub async fn update_status_check_protection( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + body: &crate::types::ReposUpdateStatusCheckProtectionRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/teams", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get_all_pages( + .patch( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Set team access restrictions. - * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. - * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Get all status check contexts. * - * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. * - * | Type | Description | - * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | - * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn set_team_access_restrictions( + pub async fn get_all_status_check_contexts( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddTeamAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/teams", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Add team access restrictions. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. - * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * Grants the specified teams push access for this branch. You can also give push access to child teams. + * Get all status check contexts. * - * | Type | Description | - * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | - * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. * - * FROM: + * As opposed to `get_all_status_check_contexts`, this function returns all the pages of the request at once. * - * **Parameters:** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * FROM: */ - pub async fn add_team_access_restrictions( + pub async fn get_all_all_status_check_contexts( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddTeamAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/teams", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .post( + .get_all_pages( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove team access restrictions. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. - * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Set status check contexts. * - * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. * - * | Type | Description | - * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | - * | `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn remove_team_access_restrictions( + pub async fn set_status_check_contexts( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddTeamAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + body: &crate::types::ReposAddStatusCheckContextsRequestOneOf, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/teams", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -2056,509 +2172,455 @@ impl Repos { .await } /** - * Get users with access to the protected branch. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. + * Add status check contexts. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. * - * Lists the people who have push access to this branch. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_users_with_access_to_protected_branch( + pub async fn add_status_check_contexts( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + body: &crate::types::ReposAddStatusCheckContextsRequestOneOf, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/users", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get users with access to the protected branch. + * Remove status check contexts. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts` endpoint. * - * As opposed to `get_users_with_access_to_protected_branch`, this function returns all the pages of the request at once. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * FROM: * - * Lists the people who have push access to this branch. + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_all_users_with_access_to_protected_branch( + pub async fn remove_status_check_contexts( &self, owner: &str, repo: &str, branch: &str, - ) -> ClientResult>> { + body: &crate::types::ReposAddStatusCheckContextsRequestOneOf, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/users", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/required_status_checks/contexts", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Set user access restrictions. + * Get access restrictions. * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions` endpoint. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * Lists who has access to this protected branch. * - * | Type | Description | - * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | - * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * > [!NOTE] + * > Users, apps, and teams `restrictions` are only available for organization-owned repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn set_user_access_restrictions( + pub async fn get_access_restrictions( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddUserAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/users", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/restrictions", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Add user access restrictions. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. + * Delete access restrictions. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions` endpoint. * - * Grants the specified people push access for this branch. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * | Type | Description | - * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | - * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * Disables the ability to restrict who can push to this branch. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn add_user_access_restrictions( + pub async fn delete_access_restrictions( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddUserAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/users", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/restrictions", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .post( + .delete( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove user access restrictions. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. + * Get apps with access to the protected branch. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. * - * Removes the ability of a user to push to this branch. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * | Type | Description | - * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | - * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn remove_user_access_restrictions( + pub async fn get_apps_with_access_to_protected_branch( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposAddUserAccessRestrictionsRequestOneOf, - ) -> ClientResult>> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/protection/restrictions/users", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/restrictions/apps", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Rename a branch. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/rename` endpoint. - * - * Renames a branch in a repository. - * - * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". - * - * The permissions required to use this endpoint depends on whether you are renaming the default branch. - * - * To rename a non-default branch: - * - * * Users must have push access. - * * GitHub Apps must have the `contents:write` repository permission. + * Get apps with access to the protected branch. * - * To rename the default branch: + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. * - * * Users must have admin or owner permissions. - * * GitHub Apps must have the `administration:write` repository permission. + * As opposed to `get_apps_with_access_to_protected_branch`, this function returns all the pages of the request at once. * - * FROM: + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * **Parameters:** + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. * - * * `owner: &str` - * * `repo: &str` - * * `branch: &str` -- The name of the branch. + * FROM: */ - pub async fn rename_branch( + pub async fn get_all_apps_with_access_to_protected_branch( &self, owner: &str, repo: &str, branch: &str, - body: &crate::types::ReposRenameBranchRequest, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/branches/{}/rename", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(branch), + "/repos/{}/{}/branches/{}/protection/restrictions/apps", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .post( + .get_all_pages( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List repository collaborators. + * Set app access restrictions. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. * - * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Team members will include the members of child teams. + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `affiliation: crate::types::Affiliation` -- Filters the collaborators by their affiliation. Can be one of: - * \\* `outside`: Outside collaborators of a project that are not a member of the project's organization. - * \\* `direct`: Collaborators with permissions to a project, regardless of organization membership status. - * \\* `all`: All collaborators the authenticated user can see. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn list_collaborators( + pub async fn set_app_access_restrictions( &self, owner: &str, repo: &str, - affiliation: crate::types::Affiliation, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !affiliation.to_string().is_empty() { - query_args.push(("affiliation".to_string(), affiliation.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + branch: &str, + body: &crate::types::ReposAddAppAccessRestrictionsRequest, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/collaborators?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/branches/{}/protection/restrictions/apps", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List repository collaborators. + * Add app access restrictions. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. * - * As opposed to `list_collaborators`, this function returns all the pages of the request at once. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. * - * Team members will include the members of child teams. + * FROM: + * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn list_all_collaborators( + pub async fn add_app_access_restrictions( &self, owner: &str, repo: &str, - affiliation: crate::types::Affiliation, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !affiliation.to_string().is_empty() { - query_args.push(("affiliation".to_string(), affiliation.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + branch: &str, + body: &crate::types::ReposAddAppAccessRestrictionsRequest, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/collaborators?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/branches/{}/protection/restrictions/apps", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get_all_pages( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Check if a user is a repository collaborator. + * Remove app access restrictions. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators/{username}` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps` endpoint. * - * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Team members will include the members of child teams. + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `username: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn check_collaborator( + pub async fn remove_app_access_restrictions( &self, owner: &str, repo: &str, - username: &str, - ) -> ClientResult> { + branch: &str, + body: &crate::types::ReposAddAppAccessRestrictionsRequest, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/collaborators/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(username), + "/repos/{}/{}/branches/{}/protection/restrictions/apps", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Add a repository collaborator. + * Get teams with access to the protected branch. * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/collaborators/{username}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * For more information the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". - * - * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." - * - * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations). - * - * **Rate limits** - * - * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + * Lists the teams who have push access to this branch. The list includes child teams. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `username: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn add_collaborator( + pub async fn get_teams_with_access_to_protected_branch( &self, owner: &str, repo: &str, - username: &str, - body: &crate::types::ReposAddCollaboratorRequest, - ) -> ClientResult> { + branch: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/collaborators/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(username), + "/repos/{}/{}/branches/{}/protection/restrictions/teams", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .put( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Remove a repository collaborator. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/collaborators/{username}` endpoint. + * Get teams with access to the protected branch. * + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. * + * As opposed to `get_teams_with_access_to_protected_branch`, this function returns all the pages of the request at once. * - * FROM: + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * **Parameters:** + * Lists the teams who have push access to this branch. The list includes child teams. * - * * `owner: &str` - * * `repo: &str` - * * `username: &str` + * FROM: */ - pub async fn remove_collaborator( + pub async fn get_all_teams_with_access_to_protected_branch( &self, owner: &str, repo: &str, - username: &str, - ) -> ClientResult> { + branch: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/collaborators/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(username), + "/repos/{}/{}/branches/{}/protection/restrictions/teams", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -2568,160 +2630,163 @@ impl Repos { .await } /** - * Get repository permissions for a user. + * Set team access restrictions. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators/{username}/permission` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. * - * Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * FROM: + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `username: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_collaborator_permission_level( + pub async fn set_team_access_restrictions( &self, owner: &str, repo: &str, - username: &str, - ) -> ClientResult> { + branch: &str, + body: &crate::types::ReposAddTeamAccessRestrictionsRequestOneOf, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/collaborators/{}/permission", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(username), + "/repos/{}/{}/branches/{}/protection/restrictions/teams", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List commit comments for a repository. + * Add team access restrictions. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/comments` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. * - * Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/). + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Comments are ordered by ascending ID. + * Grants the specified teams push access for this branch. You can also give push access to child teams. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn list_commit_comments_for_repo( + pub async fn add_team_access_restrictions( &self, owner: &str, repo: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + branch: &str, + body: &crate::types::ReposAddTeamAccessRestrictionsRequestOneOf, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/branches/{}/protection/restrictions/teams", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List commit comments for a repository. + * Remove team access restrictions. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/comments` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams` endpoint. * - * As opposed to `list_commit_comments_for_repo`, this function returns all the pages of the request at once. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/). + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + * + * FROM: * - * Comments are ordered by ascending ID. + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn list_all_commit_comments_for_repo( + pub async fn remove_team_access_restrictions( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + branch: &str, + body: &crate::types::ReposAddTeamAccessRestrictionsRequestOneOf, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/comments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/branches/{}/protection/restrictions/teams", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get a commit comment. + * Get users with access to the protected branch. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/comments/{comment_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. * + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * + * Lists the people who have push access to this branch. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn get_commit_comment( + pub async fn get_users_with_access_to_protected_branch( &self, owner: &str, repo: &str, - comment_id: i64, - ) -> ClientResult> { + branch: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&comment_id.to_string()), + "/repos/{}/{}/branches/{}/protection/restrictions/users", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); @@ -2736,37 +2801,35 @@ impl Repos { .await } /** - * Delete a commit comment. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/comments/{comment_id}` endpoint. + * Get users with access to the protected branch. * + * This function performs a `GET` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. * + * As opposed to `get_users_with_access_to_protected_branch`, this function returns all the pages of the request at once. * - * FROM: + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * **Parameters:** + * Lists the people who have push access to this branch. * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * FROM: */ - pub async fn delete_commit_comment( + pub async fn get_all_users_with_access_to_protected_branch( &self, owner: &str, repo: &str, - comment_id: i64, - ) -> ClientResult> { + branch: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&comment_id.to_string()), + "/repos/{}/{}/branches/{}/protection/restrictions/users", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .delete( + .get_all_pages( &url, crate::Message { body: None, @@ -2776,38 +2839,44 @@ impl Repos { .await } /** - * Update a commit comment. + * Set user access restrictions. * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/comments/{comment_id}` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. * + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `comment_id: i64` -- comment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn update_commit_comment( + pub async fn set_user_access_restrictions( &self, owner: &str, repo: &str, - comment_id: i64, - body: &crate::types::PullsUpdateReviewRequest, - ) -> ClientResult> { + branch: &str, + body: &crate::types::ReposAddUserAccessRestrictionsRequest, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/comments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&comment_id.to_string()), + "/repos/{}/{}/branches/{}/protection/restrictions/users", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .patch( + .put( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -2817,263 +2886,188 @@ impl Repos { .await } /** - * List commits. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits` endpoint. - * - * **Signature verification object** + * Add user access restrictions. * - * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. * - * | Name | Type | Description | - * | ---- | ---- | ----------- | - * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | - * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | - * | `signature` | `string` | The signature that was extracted from the commit. | - * | `payload` | `string` | The value that was signed. | + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * These are the possible values for `reason` in the `verification` object: + * Grants the specified people push access for this branch. * - * | Value | Description | - * | ----- | ----------- | - * | `expired_key` | The key that made the signature is expired. | - * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | - * | `gpgverify_error` | There was an error communicating with the signature verification service. | - * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | - * | `unsigned` | The object does not include a signature. | - * | `unknown_signature_type` | A non-PGP signature was found in the commit. | - * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | - * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | - * | `unknown_key` | The key that made the signature has not been registered with any user's account. | - * | `malformed_signature` | There was an error parsing the signature. | - * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | - * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `sha: &str` -- SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`). - * * `path: &str` -- Only commits containing this file path will be returned. - * * `author: &str` -- GitHub login or email address by which to filter by commit author. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `until: chrono::DateTime` -- Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn list_commits( + pub async fn add_user_access_restrictions( &self, owner: &str, repo: &str, - sha: &str, - path: &str, - author: &str, - since: Option>, - until: Option>, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !author.is_empty() { - query_args.push(("author".to_string(), author.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if !path.is_empty() { - query_args.push(("path".to_string(), path.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - if !sha.is_empty() { - query_args.push(("sha".to_string(), sha.to_string())); - } - if let Some(date) = since { - query_args.push(("since".to_string(), date.to_rfc3339())); - } - if let Some(date) = until { - query_args.push(("until".to_string(), date.to_rfc3339())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + branch: &str, + body: &crate::types::ReposAddUserAccessRestrictionsRequest, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/commits?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/branches/{}/protection/restrictions/users", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List commits. + * Remove user access restrictions. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users` endpoint. * - * As opposed to `list_commits`, this function returns all the pages of the request at once. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * **Signature verification object** + * Removes the ability of a user to push to this branch. * - * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | * - * | Name | Type | Description | - * | ---- | ---- | ----------- | - * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | - * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | - * | `signature` | `string` | The signature that was extracted from the commit. | - * | `payload` | `string` | The value that was signed. | - * - * These are the possible values for `reason` in the `verification` object: + * FROM: * - * | Value | Description | - * | ----- | ----------- | - * | `expired_key` | The key that made the signature is expired. | - * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | - * | `gpgverify_error` | There was an error communicating with the signature verification service. | - * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | - * | `unsigned` | The object does not include a signature. | - * | `unknown_signature_type` | A non-PGP signature was found in the commit. | - * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | - * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | - * | `unknown_key` | The key that made the signature has not been registered with any user's account. | - * | `malformed_signature` | There was an error parsing the signature. | - * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | - * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn list_all_commits( + pub async fn remove_user_access_restrictions( &self, owner: &str, repo: &str, - sha: &str, - path: &str, - author: &str, - since: Option>, - until: Option>, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !author.is_empty() { - query_args.push(("author".to_string(), author.to_string())); - } - if !path.is_empty() { - query_args.push(("path".to_string(), path.to_string())); - } - if !sha.is_empty() { - query_args.push(("sha".to_string(), sha.to_string())); - } - if let Some(date) = since { - query_args.push(("since".to_string(), date.to_rfc3339())); - } - if let Some(date) = until { - query_args.push(("until".to_string(), date.to_rfc3339())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + branch: &str, + body: &crate::types::ReposAddUserAccessRestrictionsRequest, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/commits?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/branches/{}/protection/restrictions/users", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List branches for HEAD commit. + * Rename a branch. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/branches/{branch}/rename` endpoint. + * + * Renames a branch in a repository. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * > [!NOTE] + * > Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". * - * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. * - * FROM: + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `commit_sha: &str` -- commit_sha parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ - pub async fn list_branches_for_head_commit( + pub async fn rename_branch( &self, owner: &str, repo: &str, - commit_sha: &str, - ) -> ClientResult>> { + branch: &str, + body: &crate::types::ReposRenameBranchRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/branches-where-head", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), + "/repos/{}/{}/branches/{}/rename", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List branches for HEAD commit. + * List CODEOWNERS errors. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/codeowners/errors` endpoint. * - * As opposed to `list_branches_for_head_commit`, this function returns all the pages of the request at once. + * List any syntax errors that are detected in the CODEOWNERS + * file. * - * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." * - * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + * FROM: + * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- A branch, tag or commit name used to determine which version of the CODEOWNERS file to use. Default: the repository's default branch (e.g. `main`). */ - pub async fn list_all_branches_for_head_commit( + pub async fn codeowners_errors( &self, owner: &str, repo: &str, - commit_sha: &str, - ) -> ClientResult>> { + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/branches-where-head", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), + "/repos/{}/{}/codeowners/errors?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -3083,44 +3077,58 @@ impl Repos { .await } /** - * List commit comments. + * List repository collaborators. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/comments` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators` endpoint. + * + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * The `permissions` hash returned in the response contains the base role permissions of the collaborator. The `role_name` is the highest role assigned to the collaborator after considering all sources of grants, including: repo, teams, organization, and enterprise. + * There is presently not a way to differentiate between an organization level grant and a repository level grant from this endpoint response. + * + * Team members will include the members of child teams. * - * Use the `:commit_sha` to specify the commit that will have its comments listed. + * The authenticated user must have write, maintain, or admin privileges on the repository to use this endpoint. For organization-owned repositories, the authenticated user needs to be a member of the organization. + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `commit_sha: &str` -- commit_sha parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `affiliation: crate::types::Affiliation` -- Filter collaborators returned by their affiliation. `outside` means all outside collaborators of an organization-owned repository. `direct` means all collaborators with permissions to an organization-owned repository, regardless of organization membership status. `all` means all collaborators the authenticated user can see. + * * `permission: crate::types::ReposListCollaboratorsPermission` -- Filter collaborators by the permissions they have on the repository. If not specified, all collaborators will be returned. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_comments_for_commit( + pub async fn list_collaborators( &self, owner: &str, repo: &str, - commit_sha: &str, + affiliation: crate::types::Affiliation, + permission: crate::types::ReposListCollaboratorsPermission, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !affiliation.to_string().is_empty() { + query_args.push(("affiliation".to_string(), affiliation.to_string())); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if !permission.to_string().is_empty() { + query_args.push(("permission".to_string(), permission.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/comments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), + "/repos/{}/{}/collaborators?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -3136,28 +3144,44 @@ impl Repos { .await } /** - * List commit comments. + * List repository collaborators. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/comments` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators` endpoint. * - * As opposed to `list_comments_for_commit`, this function returns all the pages of the request at once. + * As opposed to `list_collaborators`, this function returns all the pages of the request at once. + * + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * The `permissions` hash returned in the response contains the base role permissions of the collaborator. The `role_name` is the highest role assigned to the collaborator after considering all sources of grants, including: repo, teams, organization, and enterprise. + * There is presently not a way to differentiate between an organization level grant and a repository level grant from this endpoint response. + * + * Team members will include the members of child teams. * - * Use the `:commit_sha` to specify the commit that will have its comments listed. + * The authenticated user must have write, maintain, or admin privileges on the repository to use this endpoint. For organization-owned repositories, the authenticated user needs to be a member of the organization. + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. * - * FROM: + * FROM: */ - pub async fn list_all_comments_for_commit( + pub async fn list_all_collaborators( &self, owner: &str, repo: &str, - commit_sha: &str, - ) -> ClientResult>> { + affiliation: crate::types::Affiliation, + permission: crate::types::ReposListCollaboratorsPermission, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !affiliation.to_string().is_empty() { + query_args.push(("affiliation".to_string(), affiliation.to_string())); + } + if !permission.to_string().is_empty() { + query_args.push(("permission".to_string(), permission.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/comments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), + "/repos/{}/{}/collaborators?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); @@ -3172,129 +3196,169 @@ impl Repos { .await } /** - * Create a commit comment. + * Check if a user is a repository collaborator. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/commits/{commit_sha}/comments` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators/{username}` endpoint. * - * Create a comment for a commit using its `:commit_sha`. + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `commit_sha: &str` -- commit_sha parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn create_commit_comment( + pub async fn check_collaborator( &self, owner: &str, repo: &str, - commit_sha: &str, - body: &crate::types::ReposCreateCommitCommentRequest, - ) -> ClientResult> { + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/comments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), + "/repos/{}/{}/collaborators/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List pull requests associated with a commit. + * Add a repository collaborator. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/pulls` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/collaborators/{username}` endpoint. + * + * Add a user to a repository with a specified level of access. If the repository is owned by an organization, this API does not add the user to the organization - a user that has repository access without being an organization member is called an "outside collaborator" (if they are not an Enterprise Managed User) or a "repository collaborator" if they are an Enterprise Managed User. These users are exempt from some organization policies - see "[Adding outside collaborators to repositories](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization)" to learn more about these collaborator types. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). * - * Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests) endpoint. + * Adding an outside collaborator may be restricted by enterprise and organization administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)" and "[Setting permissions for adding outside collaborators](https://docs.github.com/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators)" for organization settings. * - * FROM: + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the role being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * For Enterprise Managed Users, this endpoint does not send invitations - these users are automatically added to organizations and repositories. Enterprise Managed Users can only be added to organizations and repositories within their enterprise. + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `commit_sha: &str` -- commit_sha parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_pull_requests_associated_with_commit( + pub async fn add_collaborator( &self, owner: &str, repo: &str, - commit_sha: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + username: &str, + body: &crate::types::ReposAddCollaboratorRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/pulls?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), - query_ + "/repos/{}/{}/collaborators/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List pull requests associated with a commit. + * Remove a repository collaborator. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/pulls` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/collaborators/{username}` endpoint. * - * As opposed to `list_pull_requests_associated_with_commit`, this function returns all the pages of the request at once. + * Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations sent by the collaborator + * - Unassigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * > [!NOTE] + * > A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". * - * Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests) endpoint. + * FROM: * - * FROM: + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_all_pull_requests_associated_with_commit( + pub async fn remove_collaborator( &self, owner: &str, repo: &str, - commit_sha: &str, - ) -> ClientResult>> { + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/pulls", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(commit_sha), + "/repos/{}/{}/collaborators/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get_all_pages( + .delete( &url, crate::Message { body: None, @@ -3304,80 +3368,40 @@ impl Repos { .await } /** - * Get a commit. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}` endpoint. - * - * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. - * - * **Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * Get repository permissions for a user. * - * You can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property. + * This function performs a `GET` to the `/repos/{owner}/{repo}/collaborators/{username}/permission` endpoint. * - * To return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * Checks the repository permission and role of a collaborator. * - * **Signature verification object** + * The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. + * The `role_name` attribute provides the name of the assigned role, including custom roles. The + * `permission` can also be used to determine which base level of access the collaborator has to the repository. * - * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * The calculated permissions are the highest role assigned to the collaborator after considering all sources of grants, including: repo, teams, organization, and enterprise. + * There is presently not a way to differentiate between an organization level grant and a repository level grant from this endpoint response. * - * | Name | Type | Description | - * | ---- | ---- | ----------- | - * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | - * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | - * | `signature` | `string` | The signature that was extracted from the commit. | - * | `payload` | `string` | The value that was signed. | + * FROM: * - * These are the possible values for `reason` in the `verification` object: + * **Parameters:** * - * | Value | Description | - * | ----- | ----------- | - * | `expired_key` | The key that made the signature is expired. | - * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | - * | `gpgverify_error` | There was an error communicating with the signature verification service. | - * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | - * | `unsigned` | The object does not include a signature. | - * | `unknown_signature_type` | A non-PGP signature was found in the commit. | - * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | - * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | - * | `unknown_key` | The key that made the signature has not been registered with any user's account. | - * | `malformed_signature` | There was an error parsing the signature. | - * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | - * | `valid` | None of the above errors applied, so the signature is considered to be verified. | - * - * FROM: - * - * **Parameters:** - * - * * `owner: &str` - * * `repo: &str` - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). - * * `ref_: &str` -- ref parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn get_commit( + pub async fn get_collaborator_permission_level( &self, owner: &str, repo: &str, - page: i64, - per_page: i64, - ref_: &str, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), - query_ + "/repos/{}/{}/collaborators/{}/permission", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -3392,38 +3416,35 @@ impl Repos { .await } /** - * Get the combined status for a specific reference. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/status` endpoint. + * List commit comments for a repository. * - * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * This function performs a `GET` to the `/repos/{owner}/{repo}/comments` endpoint. * - * The most recent status for each context is returned, up to 100. This field [paginates](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination) if there are over 100 contexts. + * Lists the commit comments for a specified repository. Comments are ordered by ascending ID. * - * Additionally, a combined `state` is returned. The `state` is one of: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * * **failure** if any of the contexts report as `error` or `failure` - * * **pending** if there are no statuses or a context is `pending` - * * **success** if the latest status for all contexts is `success` + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_combined_status_for_ref( + pub async fn list_commit_comments_for_repo( &self, owner: &str, repo: &str, - ref_: &str, per_page: i64, page: i64, - ) -> ClientResult> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -3434,10 +3455,9 @@ impl Repos { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/status?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + "/repos/{}/{}/comments?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -3453,52 +3473,38 @@ impl Repos { .await } /** - * List commit statuses for a reference. + * List commit comments for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/statuses` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/comments` endpoint. * - * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * As opposed to `list_commit_comments_for_repo`, this function returns all the pages of the request at once. * - * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + * Lists the commit comments for a specified repository. Comments are ordered by ascending ID. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * **Parameters:** + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- ref parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * FROM: */ - pub async fn list_commit_statuses_for_ref( + pub async fn list_all_commit_comments_for_repo( &self, owner: &str, repo: &str, - ref_: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/statuses?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), - query_ + "/repos/{}/{}/comments", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -3508,35 +3514,44 @@ impl Repos { .await } /** - * List commit statuses for a reference. + * Get a commit comment. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/statuses` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/comments/{comment_id}` endpoint. * - * As opposed to `list_commit_statuses_for_ref`, this function returns all the pages of the request at once. + * Gets a specified commit comment. * - * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * + * FROM: * - * FROM: + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ - pub async fn list_all_commit_statuses_for_ref( + pub async fn get_commit_comment( &self, owner: &str, repo: &str, - ref_: &str, - ) -> ClientResult>> { + comment_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/commits/{}/statuses", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + "/repos/{}/{}/comments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -3546,45 +3561,37 @@ impl Repos { .await } /** - * Get community profile metrics. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/community/profile` endpoint. + * Delete a commit comment. * - * This endpoint will return all community profile metrics, including an - * overall health score, repository description, the presence of documentation, detected - * code of conduct, detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, - * README, and CONTRIBUTING files. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/comments/{comment_id}` endpoint. * - * The `health_percentage` score is defined as a percentage of how many of - * these four documents are present: README, CONTRIBUTING, LICENSE, and - * CODE_OF_CONDUCT. For example, if all four documents are present, then - * the `health_percentage` is `100`. If only one is present, then the - * `health_percentage` is `25`. * - * `content_reports_enabled` is only returned for organization-owned repositories. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. */ - pub async fn get_community_profile_metrics( + pub async fn delete_commit_comment( &self, owner: &str, repo: &str, - ) -> ClientResult> { + comment_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/community/profile", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/comments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&comment_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -3594,21 +3601,57 @@ impl Repos { .await } /** - * Compare two commits. + * Update a commit comment. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/compare/{basehead}` endpoint. + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/comments/{comment_id}` endpoint. * - * The `basehead` param is comprised of two parts: `base` and `head`. Both must be branch names in `repo`. To compare branches across other repositories in the same network as `repo`, use the format `:branch`. + * Updates the contents of a specified commit comment. * - * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * **Working with large comparisons** + * FROM: * - * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `comment_id: i64` -- The unique identifier of the comment. + */ + pub async fn update_commit_comment( + &self, + owner: &str, + repo: &str, + comment_id: i64, + body: &crate::types::PullsUpdateReviewRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/comments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&comment_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List commits. * - * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits` endpoint. * * **Signature verification object** * @@ -3620,6 +3663,7 @@ impl Repos { * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | * | `signature` | `string` | The signature that was extracted from the commit. | * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | * * These are the possible values for `reason` in the `verification` object: * @@ -3632,45 +3676,72 @@ impl Repos { * | `unsigned` | The object does not include a signature. | * | `unknown_signature_type` | A non-PGP signature was found in the commit. | * | `no_user` | No user was associated with the `committer` email address in the commit. | - * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | * | `unknown_key` | The key that made the signature has not been registered with any user's account. | * | `malformed_signature` | There was an error parsing the signature. | * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | * | `valid` | None of the above errors applied, so the signature is considered to be verified. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). - * * `basehead: &str` -- The base branch and head branch to compare. This parameter expects the format `{base}...{head}`. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `sha: &str` -- SHA or branch to start listing commits from. Default: the repository’s default branch (usually `main`). + * * `path: &str` -- Only commits containing this file path will be returned. + * * `author: &str` -- GitHub username or email address to use to filter by commit author. + * * `committer: &str` -- GitHub username or email address to use to filter by commit committer. + * * `since: chrono::DateTime` -- Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Due to limitations of Git, timestamps must be between 1970-01-01 and 2099-12-31 (inclusive) or unexpected results may be returned. + * * `until: chrono::DateTime` -- Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Due to limitations of Git, timestamps must be between 1970-01-01 and 2099-12-31 (inclusive) or unexpected results may be returned. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn compare_commits( + pub async fn list_commits( &self, owner: &str, repo: &str, - page: i64, + sha: &str, + path: &str, + author: &str, + committer: &str, + since: Option>, + until: Option>, per_page: i64, - basehead: &str, - ) -> ClientResult> { + page: i64, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !author.is_empty() { + query_args.push(("author".to_string(), author.to_string())); + } + if !committer.is_empty() { + query_args.push(("committer".to_string(), committer.to_string())); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } + if !path.is_empty() { + query_args.push(("path".to_string(), path.to_string())); + } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if !sha.is_empty() { + query_args.push(("sha".to_string(), sha.to_string())); + } + if let Some(date) = since { + query_args.push(("since".to_string(), date.to_rfc3339())); + } + if let Some(date) = until { + query_args.push(("until".to_string(), date.to_rfc3339())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/compare/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(basehead), + "/repos/{}/{}/commits?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -3686,76 +3757,86 @@ impl Repos { .await } /** - * Get repository content. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. - * - * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit - * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. - * - * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for - * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media - * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent - * object format. + * List commits. * - * **Note**: - * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). - * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees - * API](https://docs.github.com/rest/reference/git#get-a-tree). - * * This API supports files up to 1 megabyte in size. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits` endpoint. * - * #### If the content is a directory - * The response will be an array of objects, one object for each item in the directory. - * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value - * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). - * In the next major version of the API, the type will be returned as "submodule". + * As opposed to `list_commits`, this function returns all the pages of the request at once. * - * #### If the content is a symlink - * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the - * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object - * describing the symlink itself. + * **Signature verification object** * - * #### If the content is a submodule - * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific - * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out - * the submodule at that specific commit. + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: * - * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the - * github.com URLs (`html_url` and `_links["html"]`) will have null values. + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | * - * FROM: + * These are the possible values for `reason` in the `verification` object: * - * **Parameters:** + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | * - * * `owner: &str` - * * `repo: &str` - * * `path: &str` -- path parameter. - * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`). + * FROM: */ - pub async fn get_content_vec_entries( + pub async fn list_all_commits( &self, owner: &str, repo: &str, + sha: &str, path: &str, - ref_: &str, - ) -> ClientResult>> { + author: &str, + committer: &str, + since: Option>, + until: Option>, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); + if !author.is_empty() { + query_args.push(("author".to_string(), author.to_string())); + } + if !committer.is_empty() { + query_args.push(("committer".to_string(), committer.to_string())); + } + if !path.is_empty() { + query_args.push(("path".to_string(), path.to_string())); + } + if !sha.is_empty() { + query_args.push(("sha".to_string(), sha.to_string())); + } + if let Some(date) = since { + query_args.push(("since".to_string(), date.to_rfc3339())); + } + if let Some(date) = until { + query_args.push(("until".to_string(), date.to_rfc3339())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/contents/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(path), + "/repos/{}/{}/commits?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -3765,71 +3846,34 @@ impl Repos { .await } /** - * Get repository content. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. - * - * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit - * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. - * - * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for - * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media - * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent - * object format. - * - * **Note**: - * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). - * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees - * API](https://docs.github.com/rest/reference/git#get-a-tree). - * * This API supports files up to 1 megabyte in size. - * - * #### If the content is a directory - * The response will be an array of objects, one object for each item in the directory. - * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value - * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). - * In the next major version of the API, the type will be returned as "submodule". + * List branches for HEAD commit. * - * #### If the content is a symlink - * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the - * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object - * describing the symlink itself. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head` endpoint. * - * #### If the content is a submodule - * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific - * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out - * the submodule at that specific commit. + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the - * github.com URLs (`html_url` and `_links["html"]`) will have null values. + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `path: &str` -- path parameter. - * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`). + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `commit_sha: &str` -- The SHA of the commit. */ - pub async fn get_content_file( + pub async fn list_branches_for_head_commit( &self, owner: &str, repo: &str, - path: &str, - ref_: &str, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + commit_sha: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/contents/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(path), - query_ + "/repos/{}/{}/commits/{}/branches-where-head", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), ), None, ); @@ -3844,76 +3888,35 @@ impl Repos { .await } /** - * Get repository content. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. - * - * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit - * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. - * - * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for - * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media - * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent - * object format. - * - * **Note**: - * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). - * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees - * API](https://docs.github.com/rest/reference/git#get-a-tree). - * * This API supports files up to 1 megabyte in size. - * - * #### If the content is a directory - * The response will be an array of objects, one object for each item in the directory. - * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value - * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). - * In the next major version of the API, the type will be returned as "submodule". - * - * #### If the content is a symlink - * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the - * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object - * describing the symlink itself. + * List branches for HEAD commit. * - * #### If the content is a submodule - * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific - * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out - * the submodule at that specific commit. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head` endpoint. * - * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the - * github.com URLs (`html_url` and `_links["html"]`) will have null values. + * As opposed to `list_branches_for_head_commit`, this function returns all the pages of the request at once. * - * FROM: + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * **Parameters:** + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. * - * * `owner: &str` - * * `repo: &str` - * * `path: &str` -- path parameter. - * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`). + * FROM: */ - pub async fn get_content_symlink( + pub async fn list_all_branches_for_head_commit( &self, owner: &str, repo: &str, - path: &str, - ref_: &str, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + commit_sha: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/contents/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(path), - query_ + "/repos/{}/{}/commits/{}/branches-where-head", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -3923,70 +3926,51 @@ impl Repos { .await } /** - * Get repository content. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. - * - * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit - * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. - * - * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for - * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media - * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent - * object format. - * - * **Note**: - * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). - * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees - * API](https://docs.github.com/rest/reference/git#get-a-tree). - * * This API supports files up to 1 megabyte in size. + * List commit comments. * - * #### If the content is a directory - * The response will be an array of objects, one object for each item in the directory. - * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value - * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). - * In the next major version of the API, the type will be returned as "submodule". + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/comments` endpoint. * - * #### If the content is a symlink - * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the - * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object - * describing the symlink itself. + * Lists the comments for a specified commit. * - * #### If the content is a submodule - * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific - * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out - * the submodule at that specific commit. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the - * github.com URLs (`html_url` and `_links["html"]`) will have null values. + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `path: &str` -- path parameter. - * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`). + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `commit_sha: &str` -- The SHA of the commit. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_content_submodule( + pub async fn list_comments_for_commit( &self, owner: &str, repo: &str, - path: &str, - ref_: &str, - ) -> ClientResult> { + commit_sha: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/contents/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(path), + "/repos/{}/{}/commits/{}/comments?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), query_ ), None, @@ -4002,76 +3986,40 @@ impl Repos { .await } /** - * Get repository content. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. - * - * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit - * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. - * - * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for - * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media - * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent - * object format. - * - * **Note**: - * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). - * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees - * API](https://docs.github.com/rest/reference/git#get-a-tree). - * * This API supports files up to 1 megabyte in size. - * - * #### If the content is a directory - * The response will be an array of objects, one object for each item in the directory. - * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value - * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). - * In the next major version of the API, the type will be returned as "submodule". + * List commit comments. * - * #### If the content is a symlink - * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the - * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object - * describing the symlink itself. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/comments` endpoint. * - * #### If the content is a submodule - * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific - * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out - * the submodule at that specific commit. + * As opposed to `list_comments_for_commit`, this function returns all the pages of the request at once. * - * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the - * github.com URLs (`html_url` and `_links["html"]`) will have null values. + * Lists the comments for a specified commit. * - * FROM: + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * **Parameters:** + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * * `owner: &str` - * * `repo: &str` - * * `path: &str` -- path parameter. - * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`). + * FROM: */ - pub async fn get_content( + pub async fn list_all_comments_for_commit( &self, owner: &str, repo: &str, - path: &str, - ref_: &str, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + commit_sha: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/contents/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(path), - query_ + "/repos/{}/{}/commits/{}/comments", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -4081,85 +4029,47 @@ impl Repos { .await } /** - * Create or update file contents. - * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. - * - * Creates a new file or replaces an existing file in a repository. - * - * FROM: - * - * **Parameters:** - * - * * `owner: &str` - * * `repo: &str` - * * `path: &str` -- path parameter. - */ - pub async fn create_or_update_file_contents( - &self, - owner: &str, - repo: &str, - path: &str, - body: &crate::types::ReposCreateUpdateFileContentsRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/repos/{}/{}/contents/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(path), - ), - None, - ); - self.client - .put( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Delete a file. + * Create a commit comment. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/commits/{commit_sha}/comments` endpoint. * - * Deletes a file in a repository. + * Create a comment for a commit using its `:commit_sha`. * - * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." * - * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `path: &str` -- path parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `commit_sha: &str` -- The SHA of the commit. */ - pub async fn delete_file( + pub async fn create_commit_comment( &self, owner: &str, repo: &str, - path: &str, - body: &crate::types::ReposDeleteFileRequest, - ) -> ClientResult> { + commit_sha: &str, + body: &crate::types::ReposCreateCommitCommentRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/contents/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(path), + "/repos/{}/{}/commits/{}/comments", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), ), None, ); self.client - .delete( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -4169,36 +4079,33 @@ impl Repos { .await } /** - * List repository contributors. + * List pull requests associated with a commit. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/contributors` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/pulls` endpoint. * - * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, it will return merged and open pull requests associated with the commit. * - * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `anon: &str` -- Set to `1` or `true` to include anonymous contributors in results. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `commit_sha: &str` -- The SHA of the commit. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_contributors( + pub async fn list_pull_requests_associated_with_commit( &self, owner: &str, repo: &str, - anon: &str, + commit_sha: &str, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !anon.is_empty() { - query_args.push(("anon".to_string(), anon.to_string())); - } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } @@ -4208,9 +4115,10 @@ impl Repos { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/contributors?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/commits/{}/pulls?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), query_ ), None, @@ -4226,35 +4134,30 @@ impl Repos { .await } /** - * List repository contributors. + * List pull requests associated with a commit. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/contributors` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{commit_sha}/pulls` endpoint. * - * As opposed to `list_contributors`, this function returns all the pages of the request at once. + * As opposed to `list_pull_requests_associated_with_commit`, this function returns all the pages of the request at once. * - * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, it will return merged and open pull requests associated with the commit. * - * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. * - * FROM: + * FROM: */ - pub async fn list_all_contributors( + pub async fn list_all_pull_requests_associated_with_commit( &self, owner: &str, repo: &str, - anon: &str, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !anon.is_empty() { - query_args.push(("anon".to_string(), anon.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + commit_sha: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/contributors?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/commits/{}/pulls", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&commit_sha.to_string()), ), None, ); @@ -4269,67 +4172,2707 @@ impl Repos { .await } /** - * List deployments. + * Get a commit. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}` endpoint. * - * Simple filtering of deployments is available via query parameters: + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * > [!NOTE] + * > If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `sha: &str` -- The SHA recorded at creation time. - * * `ref_: &str` -- The name of the ref. This can be a branch, tag, or SHA. - * * `task: &str` -- The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). - * * `environment: &str` -- The name of the environment that was deployed to (e.g., `staging` or `production`). - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `ref_: &str` -- The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ - pub async fn list_deployments( + pub async fn get_commit( &self, owner: &str, repo: &str, - sha: &str, - ref_: &str, - task: &str, - environment: &str, - per_page: i64, page: i64, - ) -> ClientResult>> { + per_page: i64, + ref_: &str, + ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); - if !environment.is_empty() { - query_args.push(("environment".to_string(), environment.to_string())); - } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); - } - if !sha.is_empty() { + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/commits/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get the combined status for a specific reference. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/status` endpoint. + * + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn get_combined_status_for_ref( + &self, + owner: &str, + repo: &str, + ref_: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/commits/{}/status?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List commit statuses for a reference. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/statuses` endpoint. + * + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_commit_statuses_for_ref( + &self, + owner: &str, + repo: &str, + ref_: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/commits/{}/statuses?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List commit statuses for a reference. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/commits/{ref}/statuses` endpoint. + * + * As opposed to `list_commit_statuses_for_ref`, this function returns all the pages of the request at once. + * + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + * + * FROM: + */ + pub async fn list_all_commit_statuses_for_ref( + &self, + owner: &str, + repo: &str, + ref_: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/commits/{}/statuses", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get community profile metrics. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/community/profile` endpoint. + * + * Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_community_profile_metrics( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/community/profile", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Compare two commits. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/compare/{basehead}` endpoint. + * + * Compares two commits against one another. You can compare refs (branches or tags) and commit SHAs in the same repository, or you can compare refs and commit SHAs that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, and it includes up to 300 changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * | `verified_at` | `string` | The date the signature was verified by GitHub. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `basehead: &str` -- The base branch and head branch to compare. This parameter expects the format `BASE...HEAD`. Both must be branch names in `repo`. To compare with a branch that exists in a different repository in the same network as `repo`, the `basehead` parameter expects the format `USERNAME:BASE...USERNAME:HEAD`. + */ + pub async fn compare_commits( + &self, + owner: &str, + repo: &str, + page: i64, + per_page: i64, + basehead: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/compare/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&basehead.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get repository content. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * + * Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `path: &str` -- path parameter. + * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch. + */ + pub async fn get_content_vec_directory( + &self, + owner: &str, + repo: &str, + path: &str, + ref_: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/contents/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&path.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get repository content. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * + * Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `path: &str` -- path parameter. + * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch. + */ + pub async fn get_content_file( + &self, + owner: &str, + repo: &str, + path: &str, + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/contents/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&path.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get repository content. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * + * Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `path: &str` -- path parameter. + * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch. + */ + pub async fn get_content_symlink( + &self, + owner: &str, + repo: &str, + path: &str, + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/contents/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&path.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get repository content. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * + * Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `path: &str` -- path parameter. + * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch. + */ + pub async fn get_content_submodule( + &self, + owner: &str, + repo: &str, + path: &str, + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/contents/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&path.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get repository content. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * + * Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `path: &str` -- path parameter. + * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch. + */ + pub async fn get_content( + &self, + owner: &str, + repo: &str, + path: &str, + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/contents/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&path.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update file contents. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * + * Creates a new file or replaces an existing file in a repository. + * + * > [!NOTE] + * > If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `path: &str` -- path parameter. + */ + pub async fn create_or_update_file_contents( + &self, + owner: &str, + repo: &str, + path: &str, + body: &crate::types::ReposCreateUpdateFileContentsRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/contents/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&path.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete a file. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/contents/{path}` endpoint. + * + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * > [!NOTE] + * > If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `path: &str` -- path parameter. + */ + pub async fn delete_file( + &self, + owner: &str, + repo: &str, + path: &str, + body: &crate::types::ReposDeleteFileRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/contents/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&path.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List repository contributors. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/contributors` endpoint. + * + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `anon: &str` -- Set to `1` or `true` to include anonymous contributors in results. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_contributors( + &self, + owner: &str, + repo: &str, + anon: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !anon.is_empty() { + query_args.push(("anon".to_string(), anon.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/contributors?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository contributors. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/contributors` endpoint. + * + * As opposed to `list_contributors`, this function returns all the pages of the request at once. + * + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + * + * FROM: + */ + pub async fn list_all_contributors( + &self, + owner: &str, + repo: &str, + anon: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !anon.is_empty() { + query_args.push(("anon".to_string(), anon.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/contributors?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List deployments. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments` endpoint. + * + * Simple filtering of deployments is available via query parameters: + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `sha: &str` -- The SHA recorded at creation time. + * * `ref_: &str` -- The name of the ref. This can be a branch, tag, or SHA. + * * `task: &str` -- The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). + * * `environment: &str` -- The name of the environment that was deployed to (e.g., `staging` or `production`). + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_deployments( + &self, + owner: &str, + repo: &str, + sha: &str, + ref_: &str, + task: &str, + environment: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !environment.is_empty() { + query_args.push(("environment".to_string(), environment.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !sha.is_empty() { + query_args.push(("sha".to_string(), sha.to_string())); + } + if !task.is_empty() { + query_args.push(("task".to_string(), task.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List deployments. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments` endpoint. + * + * As opposed to `list_deployments`, this function returns all the pages of the request at once. + * + * Simple filtering of deployments is available via query parameters: + * + * FROM: + */ + pub async fn list_all_deployments( + &self, + owner: &str, + repo: &str, + sha: &str, + ref_: &str, + task: &str, + environment: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !environment.is_empty() { + query_args.push(("environment".to_string(), environment.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !sha.is_empty() { query_args.push(("sha".to_string(), sha.to_string())); } - if !task.is_empty() { - query_args.push(("task".to_string(), task.to_string())); + if !task.is_empty() { + query_args.push(("task".to_string(), task.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a deployment. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/deployments` endpoint. + * + * Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_deployment( + &self, + owner: &str, + repo: &str, + body: &crate::types::ReposCreateDeploymentRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a deployment. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}` endpoint. + * + * + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `deployment_id: i64` -- deployment_id parameter. + */ + pub async fn get_deployment( + &self, + owner: &str, + repo: &str, + deployment_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&deployment_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a deployment. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/deployments/{deployment_id}` endpoint. + * + * If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `deployment_id: i64` -- deployment_id parameter. + */ + pub async fn delete_deployment( + &self, + owner: &str, + repo: &str, + deployment_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&deployment_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List deployment statuses. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses` endpoint. + * + * Users with pull access can view deployment statuses for a deployment: + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `deployment_id: i64` -- deployment_id parameter. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_deployment_statuses( + &self, + owner: &str, + repo: &str, + deployment_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments/{}/statuses?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&deployment_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List deployment statuses. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses` endpoint. + * + * As opposed to `list_deployment_statuses`, this function returns all the pages of the request at once. + * + * Users with pull access can view deployment statuses for a deployment: + * + * FROM: + */ + pub async fn list_all_deployment_statuses( + &self, + owner: &str, + repo: &str, + deployment_id: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments/{}/statuses", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&deployment_id.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a deployment status. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses` endpoint. + * + * Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `deployment_id: i64` -- deployment_id parameter. + */ + pub async fn create_deployment_status( + &self, + owner: &str, + repo: &str, + deployment_id: i64, + body: &crate::types::ReposCreateDeploymentStatusRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments/{}/statuses", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&deployment_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a deployment status. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}` endpoint. + * + * Users with pull access can view a deployment status for a deployment: + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `deployment_id: i64` -- deployment_id parameter. + * * `status_id: i64` + */ + pub async fn get_deployment_status( + &self, + owner: &str, + repo: &str, + deployment_id: i64, + status_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/deployments/{}/statuses/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&deployment_id.to_string()), + crate::progenitor_support::encode_path(&status_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a repository dispatch event. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/dispatches` endpoint. + * + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_dispatch_event( + &self, + owner: &str, + repo: &str, + body: &crate::types::ReposCreateDispatchEventRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/dispatches", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List environments. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments` endpoint. + * + * Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn get_all_environments( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/environments?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get an environment. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}` endpoint. + * + * > [!NOTE] + * > To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + */ + pub async fn get_environment( + &self, + owner: &str, + repo: &str, + environment_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create or update an environment. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/environments/{environment_name}` endpoint. + * + * Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * > [!NOTE] + * > To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * > [!NOTE] + * > To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + */ + pub async fn create_or_update_environment( + &self, + owner: &str, + repo: &str, + environment_name: &str, + body: &crate::types::ReposCreateUpdateEnvironmentRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete an environment. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/environments/{environment_name}` endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + */ + pub async fn delete_an_environment( + &self, + owner: &str, + repo: &str, + environment_name: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List deployment branch policies. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies` endpoint. + * + * Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_deployment_branch_policies( + &self, + owner: &str, + repo: &str, + environment_name: &str, + per_page: i64, + page: i64, + ) -> ClientResult> + { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment-branch-policies?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a deployment branch policy. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies` endpoint. + * + * Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + */ + pub async fn create_deployment_branch_policy( + &self, + owner: &str, + repo: &str, + environment_name: &str, + body: &crate::types::DeploymentBranchTagPolicyNamePattern, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment-branch-policies", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a deployment branch policy. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}` endpoint. + * + * Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `branch_policy_id: i64` -- The unique identifier of the branch policy. + */ + pub async fn get_deployment_branch_policy( + &self, + owner: &str, + repo: &str, + environment_name: &str, + branch_policy_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment-branch-policies/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&branch_policy_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a deployment branch policy. + * + * This function performs a `PUT` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}` endpoint. + * + * Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `branch_policy_id: i64` -- The unique identifier of the branch policy. + */ + pub async fn update_deployment_branch_policy( + &self, + owner: &str, + repo: &str, + environment_name: &str, + branch_policy_id: i64, + body: &crate::types::DeploymentBranchPolicyNamePattern, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment-branch-policies/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&branch_policy_id.to_string()), + ), + None, + ); + self.client + .put( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Delete a deployment branch policy. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}` endpoint. + * + * Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `branch_policy_id: i64` -- The unique identifier of the branch policy. + */ + pub async fn delete_deployment_branch_policy( + &self, + owner: &str, + repo: &str, + environment_name: &str, + branch_policy_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment-branch-policies/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&branch_policy_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get all deployment protection rules for an environment. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules` endpoint. + * + * Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + */ + pub async fn get_all_deployment_protection_rules( + &self, + environment_name: &str, + repo: &str, + owner: &str, + ) -> ClientResult> + { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment_protection_rules", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a custom deployment protection rule on an environment. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules` endpoint. + * + * Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app), as well as the [guide to creating custom deployment protection rules](https://docs.github.com/actions/managing-workflow-runs-and-deployments/managing-deployments/creating-custom-deployment-protection-rules). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + */ + pub async fn create_deployment_protection_rule( + &self, + environment_name: &str, + repo: &str, + owner: &str, + body: &crate::types::ReposCreateDeploymentProtectionRuleRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment_protection_rules", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List custom deployment rule integrations available for an environment. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps` endpoint. + * + * Gets all custom deployment protection rule integrations that are available for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_custom_deployment_rule_integrations( + &self, + environment_name: &str, + repo: &str, + owner: &str, + page: i64, + per_page: i64, + ) -> ClientResult< + crate::Response, + > { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment_protection_rules/apps?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a custom deployment protection rule. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}` endpoint. + * + * Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `protection_rule_id: i64` -- The unique identifier of the protection rule. + */ + pub async fn get_custom_deployment_protection_rule( + &self, + owner: &str, + repo: &str, + environment_name: &str, + protection_rule_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment_protection_rules/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&protection_rule_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Disable a custom protection rule for an environment. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}` endpoint. + * + * Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `environment_name: &str` -- The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `protection_rule_id: i64` -- The unique identifier of the protection rule. + */ + pub async fn disable_deployment_protection_rule( + &self, + environment_name: &str, + repo: &str, + owner: &str, + protection_rule_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/environments/{}/deployment_protection_rules/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&environment_name.to_string()), + crate::progenitor_support::encode_path(&protection_rule_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List forks. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/forks` endpoint. + * + * + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `sort: crate::types::ReposListForksSort` -- The sort order. `stargazers` will sort by star count. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_forks( + &self, + owner: &str, + repo: &str, + sort: crate::types::ReposListForksSort, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/forks?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List forks. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/forks` endpoint. + * + * As opposed to `list_forks`, this function returns all the pages of the request at once. + * + * + * + * FROM: + */ + pub async fn list_all_forks( + &self, + owner: &str, + repo: &str, + sort: crate::types::ReposListForksSort, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/forks?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a fork. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/forks` endpoint. + * + * Create a fork for the authenticated user. + * + * > [!NOTE] + * > Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * > [!NOTE] + * > Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_fork( + &self, + owner: &str, + repo: &str, + body: &crate::types::ReposCreateForkRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/forks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List repository webhooks. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks` endpoint. + * + * Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_webhooks( + &self, + owner: &str, + repo: &str, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository webhooks. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks` endpoint. + * + * As opposed to `list_webhooks`, this function returns all the pages of the request at once. + * + * Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + * + * FROM: + */ + pub async fn list_all_webhooks( + &self, + owner: &str, + repo: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a repository webhook. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks` endpoint. + * + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_webhook( + &self, + owner: &str, + repo: &str, + body: &crate::types::ReposCreateWebhookRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a repository webhook. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}` endpoint. + * + * Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn get_webhook( + &self, + owner: &str, + repo: &str, + hook_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Delete a repository webhook. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/hooks/{hook_id}` endpoint. + * + * Delete a webhook for an organization. + * + * The authenticated user must be a repository owner, or have admin access in the repository, to delete the webhook. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn delete_webhook( + &self, + owner: &str, + repo: &str, + hook_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a repository webhook. + * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/hooks/{hook_id}` endpoint. + * + * Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn update_webhook( + &self, + owner: &str, + repo: &str, + hook_id: i64, + body: &crate::types::ReposUpdateWebhookRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a webhook configuration for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/config` endpoint. + * + * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn get_webhook_config_for_repo( + &self, + owner: &str, + repo: &str, + hook_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}/config", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a webhook configuration for a repository. + * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/hooks/{hook_id}/config` endpoint. + * + * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn update_webhook_config_for_repo( + &self, + owner: &str, + repo: &str, + hook_id: i64, + body: &crate::types::AppsUpdateWebhookConfigAppRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}/config", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * List deliveries for a repository webhook. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries` endpoint. + * + * Returns a list of webhook deliveries for a webhook configured in a repository. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `cursor: &str` -- Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. + */ + pub async fn list_webhook_deliveries( + &self, + owner: &str, + repo: &str, + hook_id: i64, + per_page: i64, + cursor: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !cursor.is_empty() { + query_args.push(("cursor".to_string(), cursor.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}/deliveries?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List deliveries for a repository webhook. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries` endpoint. + * + * As opposed to `list_webhook_deliveries`, this function returns all the pages of the request at once. + * + * Returns a list of webhook deliveries for a webhook configured in a repository. + * + * FROM: + */ + pub async fn list_all_webhook_deliveries( + &self, + owner: &str, + repo: &str, + hook_id: i64, + cursor: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !cursor.is_empty() { + query_args.push(("cursor".to_string(), cursor.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/deployments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/hooks/{}/deliveries?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -4339,50 +6882,40 @@ impl Repos { .await } /** - * List deployments. + * Get a delivery for a repository webhook. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}` endpoint. * - * As opposed to `list_deployments`, this function returns all the pages of the request at once. + * Returns a delivery for a webhook configured in a repository. * - * Simple filtering of deployments is available via query parameters: + * FROM: + * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + * * `delivery_id: i64` */ - pub async fn list_all_deployments( + pub async fn get_webhook_delivery( &self, owner: &str, repo: &str, - sha: &str, - ref_: &str, - task: &str, - environment: &str, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !environment.is_empty() { - query_args.push(("environment".to_string(), environment.to_string())); - } - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); - } - if !sha.is_empty() { - query_args.push(("sha".to_string(), sha.to_string())); - } - if !task.is_empty() { - query_args.push(("task".to_string(), task.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + hook_id: i64, + delivery_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/deployments?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/hooks/{}/deliveries/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + crate::progenitor_support::encode_path(&delivery_id.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -4392,74 +6925,118 @@ impl Repos { .await } /** - * Create a deployment. + * Redeliver a delivery for a repository webhook. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/deployments` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts` endpoint. * - * Deployments offer a few configurable parameters with certain defaults. + * Redeliver a webhook delivery for a webhook configured in a repository. * - * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them - * before we merge a pull request. + * FROM: * - * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have - * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter - * makes it easier to track which environments have requested deployments. The default environment is `production`. + * **Parameters:** * - * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If - * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, - * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will - * return a failure response. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + * * `delivery_id: i64` + */ + pub async fn redeliver_webhook_delivery( + &self, + owner: &str, + repo: &str, + hook_id: i64, + delivery_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}/deliveries/{}/attempts", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + crate::progenitor_support::encode_path(&delivery_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Ping a repository webhook. * - * By default, [commit statuses](https://docs.github.com/rest/reference/repos#statuses) for every submitted context must be in a `success` - * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to - * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do - * not require any contexts or create any commit statuses, the deployment will always succeed. + * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks/{hook_id}/pings` endpoint. * - * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text - * field that will be passed on when a deployment event is dispatched. + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. * - * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might - * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an - * application with debugging enabled. + * FROM: * - * Users with `repo` or `repo_deployment` scopes can create a deployment for a given ref. + * **Parameters:** * - * #### Merged branch response - * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating - * a deployment. This auto-merge happens when: - * * Auto-merge option is enabled in the repository - * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example - * * There are no merge conflicts + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. + */ + pub async fn ping_webhook( + &self, + owner: &str, + repo: &str, + hook_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/hooks/{}/pings", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Test the push repository webhook. * - * If there are no new commits in the base branch, a new request to create a deployment should give a successful - * response. + * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks/{hook_id}/tests` endpoint. * - * #### Merge conflict response - * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't - * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. * - * #### Failed commit status checks - * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` - * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * > [!NOTE] + * > Previously `/repos/:owner/:repo/hooks/:hook_id/test` * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `hook_id: i64` -- The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. */ - pub async fn create_deployment( + pub async fn test_push_webhook( &self, owner: &str, repo: &str, - body: &crate::types::ReposCreateDeploymentRequest, - ) -> ClientResult> { + hook_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/deployments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/hooks/{}/tests", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&hook_id.to_string()), ), None, ); @@ -4467,39 +7044,37 @@ impl Repos { .post( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a deployment. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}` endpoint. + * Check if immutable releases are enabled for a repository. * + * This function performs a `GET` to the `/repos/{owner}/{repo}/immutable-releases` endpoint. * + * Shows whether immutable releases are enabled or disabled. Also identifies whether immutability is being + * enforced by the repository owner. The authenticated user must have admin read access to the repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `deployment_id: i64` -- deployment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn get_deployment( + pub async fn check_immutable_releases( &self, owner: &str, repo: &str, - deployment_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/deployments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&deployment_id.to_string()), + "/repos/{}/{}/immutable-releases", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -4514,44 +7089,34 @@ impl Repos { .await } /** - * Delete a deployment. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/deployments/{deployment_id}` endpoint. - * - * To ensure there can always be an active deployment, you can only delete an _inactive_ deployment. Anyone with `repo` or `repo_deployment` scopes can delete an inactive deployment. + * Enable immutable releases. * - * To set a deployment as inactive, you must: - * - * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. - * * Mark the active deployment as inactive by adding any non-successful deployment status. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/immutable-releases` endpoint. * - * For more information, see "[Create a deployment](https://docs.github.com/rest/reference/repos/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status)." + * Enables immutable releases for a repository. The authenticated user must have admin access to the repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `deployment_id: i64` -- deployment_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn delete_deployment( + pub async fn enable_immutable_releases( &self, owner: &str, repo: &str, - deployment_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/deployments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&deployment_id.to_string()), + "/repos/{}/{}/immutable-releases", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { body: None, @@ -4561,50 +7126,34 @@ impl Repos { .await } /** - * List deployment statuses. + * Disable immutable releases. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/immutable-releases` endpoint. * - * Users with pull access can view deployment statuses for a deployment: + * Disables immutable releases for a repository. The authenticated user must have admin access to the repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `deployment_id: i64` -- deployment_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_deployment_statuses( + pub async fn disable_immutable_releases( &self, owner: &str, repo: &str, - deployment_id: i64, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/deployments/{}/statuses?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&deployment_id.to_string()), - query_ + "/repos/{}/{}/immutable-releases", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -4614,33 +7163,47 @@ impl Repos { .await } /** - * List deployment statuses. + * List repository invitations. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/invitations` endpoint. * - * As opposed to `list_deployment_statuses`, this function returns all the pages of the request at once. + * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. * - * Users with pull access can view deployment statuses for a deployment: + * FROM: + * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_all_deployment_statuses( + pub async fn list_invitations( &self, owner: &str, repo: &str, - deployment_id: i64, - ) -> ClientResult>> { + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/deployments/{}/statuses", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&deployment_id.to_string()), + "/repos/{}/{}/invitations?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -4650,83 +7213,71 @@ impl Repos { .await } /** - * Create a deployment status. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses` endpoint. - * - * Users with `push` access can create deployment statuses for a given deployment. + * List repository invitations. * - * GitHub Apps require `read & write` access to "Deployments" and `read-only` access to "Repo contents" (for private repos). OAuth Apps require the `repo_deployment` scope. + * This function performs a `GET` to the `/repos/{owner}/{repo}/invitations` endpoint. * - * FROM: + * As opposed to `list_invitations`, this function returns all the pages of the request at once. * - * **Parameters:** + * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. * - * * `owner: &str` - * * `repo: &str` - * * `deployment_id: i64` -- deployment_id parameter. + * FROM: */ - pub async fn create_deployment_status( + pub async fn list_all_invitations( &self, owner: &str, repo: &str, - deployment_id: i64, - body: &crate::types::ReposCreateDeploymentStatusRequest, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/deployments/{}/statuses", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&deployment_id.to_string()), + "/repos/{}/{}/invitations", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .post( + .get_all_pages( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a deployment status. + * Delete a repository invitation. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/invitations/{invitation_id}` endpoint. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}` endpoint. * - * Users with pull access can view a deployment status for a deployment: * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `deployment_id: i64` -- deployment_id parameter. - * * `status_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `invitation_id: i64` -- The unique identifier of the invitation. */ - pub async fn get_deployment_status( + pub async fn delete_invitation( &self, owner: &str, repo: &str, - deployment_id: i64, - status_id: i64, - ) -> ClientResult> { + invitation_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/deployments/{}/statuses/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&deployment_id.to_string()), - crate::progenitor_support::encode_path(&status_id.to_string()), + "/repos/{}/{}/invitations/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&invitation_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -4736,44 +7287,38 @@ impl Repos { .await } /** - * Create a repository dispatch event. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/dispatches` endpoint. - * - * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." - * - * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * Update a repository invitation. * - * This endpoint requires write access to the repository by providing either: + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/invitations/{invitation_id}` endpoint. * - * - Personal access tokens with `repo` scope. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)" in the GitHub Help documentation. - * - GitHub Apps with both `metadata:read` and `contents:read&write` permissions. * - * This input example shows how you can use the `client_payload` as a test to debug your workflow. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `invitation_id: i64` -- The unique identifier of the invitation. */ - pub async fn create_dispatch_event( + pub async fn update_invitation( &self, owner: &str, repo: &str, - body: &crate::types::ReposCreateDispatchEventRequest, - ) -> ClientResult> { + invitation_id: i64, + body: &crate::types::ReposUpdateInvitationRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/dispatches", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/invitations/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&invitation_id.to_string()), ), None, ); self.client - .post( + .patch( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -4783,31 +7328,42 @@ impl Repos { .await } /** - * Get all environments. + * List deploy keys. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/environments` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/keys` endpoint. * - * Get all environments for a repository. * - * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_all_environments( + pub async fn list_deploy_keys( &self, owner: &str, repo: &str, - ) -> ClientResult> { + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/environments", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/keys?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); @@ -4822,37 +7378,31 @@ impl Repos { .await } /** - * Get an environment. + * List deploy keys. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/environments/{environment_name}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/keys` endpoint. * - * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + * As opposed to `list_deploy_keys`, this function returns all the pages of the request at once. * - * FROM: * - * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `environment_name: &str` -- The name of the environment. + * FROM: */ - pub async fn get_environment( + pub async fn list_all_deploy_keys( &self, owner: &str, repo: &str, - environment_name: &str, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/environments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(environment_name), + "/repos/{}/{}/keys", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -4862,44 +7412,35 @@ impl Repos { .await } /** - * Create or update an environment. - * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/environments/{environment_name}` endpoint. - * - * Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." - * - * **Note:** Although you can use this operation to specify that only branches that match specified name patterns can deploy to this environment, you must use the UI to set the name patterns. For more information, see "[Environments](/actions/reference/environments#deployment-branches)." + * Create a deploy key. * - * **Note:** To create or update secrets for an environment, see "[Secrets](/rest/reference/actions#secrets)." + * This function performs a `POST` to the `/repos/{owner}/{repo}/keys` endpoint. * - * You must authenticate using an access token with the repo scope to use this endpoint. + * You can create a read-only deploy key. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `environment_name: &str` -- The name of the environment. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn create_or_update_environment( + pub async fn create_deploy_key( &self, owner: &str, repo: &str, - environment_name: &str, - body: &crate::types::ReposCreateUpdateEnvironmentRequest, - ) -> ClientResult> { + body: &crate::types::ReposCreateDeployKeyRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/environments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(environment_name), + "/repos/{}/{}/keys", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .put( + .post( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -4909,37 +7450,37 @@ impl Repos { .await } /** - * Delete an environment. + * Get a deploy key. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/environments/{environment_name}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/keys/{key_id}` endpoint. * - * You must authenticate using an access token with the repo scope to use this endpoint. * - * FROM: + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `environment_name: &str` -- The name of the environment. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `key_id: i64` -- The unique identifier of the key. */ - pub async fn delete_an_environment( + pub async fn get_deploy_key( &self, owner: &str, repo: &str, - environment_name: &str, - ) -> ClientResult> { + key_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/environments/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(environment_name), + "/repos/{}/{}/keys/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&key_id.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -4949,52 +7490,37 @@ impl Repos { .await } /** - * List forks. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/forks` endpoint. + * Delete a deploy key. * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/keys/{key_id}` endpoint. * + * Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `sort: crate::types::ReposListForksSort` -- The sort order. Can be either `newest`, `oldest`, or `stargazers`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `key_id: i64` -- The unique identifier of the key. */ - pub async fn list_forks( + pub async fn delete_deploy_key( &self, owner: &str, repo: &str, - sort: crate::types::ReposListForksSort, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - if !sort.to_string().is_empty() { - query_args.push(("sort".to_string(), sort.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + key_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/forks?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/keys/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&key_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -5004,38 +7530,34 @@ impl Repos { .await } /** - * List forks. + * List repository languages. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/forks` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/languages` endpoint. * - * As opposed to `list_forks`, this function returns all the pages of the request at once. + * Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. * + * FROM: * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_all_forks( + pub async fn list_languages( &self, owner: &str, repo: &str, - sort: crate::types::ReposListForksSort, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !sort.to_string().is_empty() { - query_args.push(("sort".to_string(), sort.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/forks?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/languages", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -5045,32 +7567,30 @@ impl Repos { .await } /** - * Create a fork. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/forks` endpoint. + * Sync a fork branch with the upstream repository. * - * Create a fork for the authenticated user. + * This function performs a `POST` to the `/repos/{owner}/{repo}/merge-upstream` endpoint. * - * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=rest-api). + * Sync a branch of a forked repository to keep it up-to-date with the upstream repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn create_fork( + pub async fn merge_upstream( &self, owner: &str, repo: &str, - body: &crate::types::ReposCreateForkRequest, - ) -> ClientResult> { + body: &crate::types::ReposMergeUpstreamRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/forks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/merge-upstream", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -5085,81 +7605,74 @@ impl Repos { .await } /** - * List repository webhooks. + * Merge a branch. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/merges` endpoint. * * * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_webhooks( + pub async fn merge( &self, owner: &str, repo: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + body: &crate::types::ReposMergeRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/merges", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List repository webhooks. + * Get a GitHub Pages site. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/pages` endpoint. * - * As opposed to `list_webhooks`, this function returns all the pages of the request at once. + * Gets information about a GitHub Pages site. * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * + * FROM: + * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_all_webhooks( + pub async fn get_pages( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/pages", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -5169,36 +7682,39 @@ impl Repos { .await } /** - * Create a repository webhook. + * Update information about a GitHub Pages site. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/pages` endpoint. * - * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can - * share the same `config` as long as those webhooks do not have any `events` that overlap. + * Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn create_webhook( + pub async fn update_information_about_pages_site( &self, owner: &str, repo: &str, - body: &crate::types::ReposCreateWebhookRequest, - ) -> ClientResult> { + body: &crate::types::ReposUpdateInformationAboutPagesSiteRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/pages", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .post( + .put( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -5208,72 +7724,75 @@ impl Repos { .await } /** - * Get a repository webhook. + * Create a GitHub Pages site. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/pages` endpoint. + * + * Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. * - * Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn get_webhook( + pub async fn create_pages_site( &self, owner: &str, repo: &str, - hook_id: i64, - ) -> ClientResult> { + body: &crate::types::ReposCreatePagesSiteRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/repos/{}/{}/pages", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Delete a repository webhook. + * Delete a GitHub Pages site. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/hooks/{hook_id}` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/pages` endpoint. + * + * Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn delete_webhook( + pub async fn delete_pages_site( &self, owner: &str, repo: &str, - hook_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/repos/{}/{}/pages", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -5288,80 +7807,85 @@ impl Repos { .await } /** - * Update a repository webhook. + * List GitHub Pages builds. * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/hooks/{hook_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds` endpoint. * - * Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository)." + * Lists builts of a GitHub Pages site. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn update_webhook( + pub async fn list_pages_builds( &self, owner: &str, repo: &str, - hook_id: i64, - body: &crate::types::ReposUpdateWebhookRequest, - ) -> ClientResult> { + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/repos/{}/{}/pages/builds?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .patch( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a webhook configuration for a repository. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/config` endpoint. + * List GitHub Pages builds. * - * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook)." + * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds` endpoint. * - * Access tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission. + * As opposed to `list_pages_builds`, this function returns all the pages of the request at once. * - * FROM: + * Lists builts of a GitHub Pages site. * - * **Parameters:** + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` + * FROM: */ - pub async fn get_webhook_config_for_repo( + pub async fn list_all_pages_builds( &self, owner: &str, repo: &str, - hook_id: i64, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/config", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/repos/{}/{}/pages/builds", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -5371,88 +7895,70 @@ impl Repos { .await } /** - * Update a webhook configuration for a repository. + * Request a GitHub Pages build. * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/hooks/{hook_id}/config` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/pages/builds` endpoint. * - * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook)." + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. * - * Access tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission. + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn update_webhook_config_for_repo( + pub async fn request_pages_build( &self, owner: &str, repo: &str, - hook_id: i64, - body: &crate::types::AppsUpdateWebhookConfigAppRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/config", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/repos/{}/{}/pages/builds", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .patch( + .post( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List deliveries for a repository webhook. + * Get latest Pages build. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds/latest` endpoint. * - * Returns a list of webhook deliveries for a webhook configured in a repository. + * Gets information about the single most recent build of a GitHub Pages site. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `cursor: &str` -- Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_webhook_deliveries( + pub async fn get_latest_pages_build( &self, owner: &str, repo: &str, - hook_id: i64, - per_page: i64, - cursor: &str, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !cursor.is_empty() { - query_args.push(("cursor".to_string(), cursor.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/deliveries?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), - query_ + "/repos/{}/{}/pages/builds/latest", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -5467,40 +7973,39 @@ impl Repos { .await } /** - * List deliveries for a repository webhook. + * Get GitHub Pages build. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds/{build_id}` endpoint. * - * As opposed to `list_webhook_deliveries`, this function returns all the pages of the request at once. + * Gets information about a GitHub Pages build. * - * Returns a list of webhook deliveries for a webhook configured in a repository. + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `build_id: i64` */ - pub async fn list_all_webhook_deliveries( + pub async fn get_pages_build( &self, owner: &str, repo: &str, - hook_id: i64, - cursor: &str, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !cursor.is_empty() { - query_args.push(("cursor".to_string(), cursor.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + build_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/deliveries?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), - query_ + "/repos/{}/{}/pages/builds/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&build_id.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -5510,83 +8015,79 @@ impl Repos { .await } /** - * Get a delivery for a repository webhook. + * Create a GitHub Pages deployment. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/pages/deployments` endpoint. * - * Returns a delivery for a webhook configured in a repository. + * Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` - * * `delivery_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn get_webhook_delivery( + pub async fn create_pages_deployment( &self, owner: &str, repo: &str, - hook_id: i64, - delivery_id: i64, - ) -> ClientResult> { + body: &crate::types::ReposCreatePagesDeploymentRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/deliveries/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), - crate::progenitor_support::encode_path(&delivery_id.to_string()), + "/repos/{}/{}/pages/deployments", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Redeliver a delivery for a repository webhook. + * Get the status of a GitHub Pages deployment. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}` endpoint. * - * Redeliver a webhook delivery for a webhook configured in a repository. + * Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` - * * `delivery_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pages_deployment_id: &str` -- The ID of the Pages deployment. You can also give the commit SHA of the deployment. */ - pub async fn redeliver_webhook_delivery( + pub async fn get_pages_deployment( &self, owner: &str, repo: &str, - hook_id: i64, - delivery_id: i64, - ) -> ClientResult> { + pages_deployment_id: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/deliveries/{}/attempts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), - crate::progenitor_support::encode_path(&delivery_id.to_string()), + "/repos/{}/{}/pages/deployments/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&pages_deployment_id.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { body: None, @@ -5596,32 +8097,34 @@ impl Repos { .await } /** - * Ping a repository webhook. + * Cancel a GitHub Pages deployment. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks/{hook_id}/pings` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel` endpoint. * - * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + * Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `pages_deployment_id: &str` -- The ID of the Pages deployment. You can also give the commit SHA of the deployment. */ - pub async fn ping_webhook( + pub async fn cancel_pages_deployment( &self, owner: &str, repo: &str, - hook_id: i64, - ) -> ClientResult> { + pages_deployment_id: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/pings", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/repos/{}/{}/pages/deployments/{}/cancel", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&pages_deployment_id.to_string()), ), None, ); @@ -5636,39 +8139,40 @@ impl Repos { .await } /** - * Test the push repository webhook. + * Get a DNS health check for GitHub Pages. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/hooks/{hook_id}/tests` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/health` endpoint. * - * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. * - * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `hook_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn test_push_webhook( + pub async fn get_pages_health_check( &self, owner: &str, repo: &str, - hook_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/hooks/{}/tests", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&hook_id.to_string()), + "/repos/{}/{}/pages/health", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { body: None, @@ -5678,42 +8182,29 @@ impl Repos { .await } /** - * List repository invitations. + * Check if private vulnerability reporting is enabled for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/invitations` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/private-vulnerability-reporting` endpoint. * - * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + * Returns a boolean indicating whether or not private vulnerability reporting is enabled for the repository. For more information, see "[Evaluating the security settings of a repository](https://docs.github.com/code-security/security-advisories/working-with-repository-security-advisories/evaluating-the-security-settings-of-a-repository)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_invitations( + pub async fn check_private_vulnerability_reporting( &self, owner: &str, repo: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/invitations?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/private-vulnerability-reporting", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -5728,31 +8219,34 @@ impl Repos { .await } /** - * List repository invitations. + * Enable private vulnerability reporting for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/invitations` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/private-vulnerability-reporting` endpoint. * - * As opposed to `list_invitations`, this function returns all the pages of the request at once. + * Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." * - * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + * FROM: + * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_all_invitations( + pub async fn enable_private_vulnerability_reporting( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/invitations", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/private-vulnerability-reporting", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get_all_pages( + .put( &url, crate::Message { body: None, @@ -5762,32 +8256,29 @@ impl Repos { .await } /** - * Delete a repository invitation. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/invitations/{invitation_id}` endpoint. + * Disable private vulnerability reporting for a repository. * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/private-vulnerability-reporting` endpoint. * + * Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `invitation_id: i64` -- invitation_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn delete_invitation( + pub async fn disable_private_vulnerability_reporting( &self, owner: &str, repo: &str, - invitation_id: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/invitations/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&invitation_id.to_string()), + "/repos/{}/{}/private-vulnerability-reporting", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -5802,88 +8293,70 @@ impl Repos { .await } /** - * Update a repository invitation. - * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/invitations/{invitation_id}` endpoint. + * Get all custom property values for a repository. * + * This function performs a `GET` to the `/repos/{owner}/{repo}/properties/values` endpoint. * + * Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `invitation_id: i64` -- invitation_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn update_invitation( + pub async fn custom_properties_for_repos_get_repository_values( &self, owner: &str, repo: &str, - invitation_id: i64, - body: &crate::types::ReposUpdateInvitationRequest, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/invitations/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&invitation_id.to_string()), + "/repos/{}/{}/properties/values", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .patch( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } - /** - * List deploy keys. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/keys` endpoint. - * + /** + * Get all custom property values for a repository. * + * This function performs a `GET` to the `/repos/{owner}/{repo}/properties/values` endpoint. * - * FROM: + * As opposed to `custom_properties_for_repos_get_repository_values`, this function returns all the pages of the request at once. * - * **Parameters:** + * Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * FROM: */ - pub async fn list_deploy_keys( + pub async fn custom_properties_for_repos_get_all_repository_values( &self, owner: &str, repo: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/keys?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/properties/values", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -5893,104 +8366,136 @@ impl Repos { .await } /** - * List deploy keys. + * Create or update custom property values for a repository. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/keys` endpoint. + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/properties/values` endpoint. * - * As opposed to `list_deploy_keys`, this function returns all the pages of the request at once. + * Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. * + * FROM: * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_all_deploy_keys( + pub async fn custom_properties_for_repos_create_or_update_repository_values( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + body: &crate::types::ReposCustomPropertiesCreateUpdateRepositoryValuesRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/keys", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/properties/values", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get_all_pages( + .patch( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Create a deploy key. + * Get a repository README. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/keys` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/readme` endpoint. * - * You can create a read-only deploy key. + * Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * - * FROM: + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch. */ - pub async fn create_deploy_key( + pub async fn get_readme( &self, owner: &str, repo: &str, - body: &crate::types::ReposCreateDeployKeyRequest, - ) -> ClientResult> { + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/keys", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/readme?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a deploy key. + * Get a repository README for a directory. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/keys/{key_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/readme/{dir}` endpoint. + * + * Gets the README from a repository directory. * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `key_id: i64` -- key_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `dir: &str` -- The alternate path to look for a README file. + * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch. */ - pub async fn get_deploy_key( + pub async fn get_readme_in_directory( &self, owner: &str, repo: &str, - key_id: i64, - ) -> ClientResult> { + dir: &str, + ref_: &str, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/keys/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&key_id.to_string()), + "/repos/{}/{}/readme/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&dir.to_string()), + query_ ), None, ); @@ -6005,37 +8510,49 @@ impl Repos { .await } /** - * Delete a deploy key. + * List releases. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/keys/{key_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases` endpoint. * - * Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `key_id: i64` -- key_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn delete_deploy_key( + pub async fn list_releases( &self, owner: &str, repo: &str, - key_id: i64, - ) -> ClientResult> { + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/keys/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&key_id.to_string()), + "/repos/{}/{}/releases?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -6045,34 +8562,33 @@ impl Repos { .await } /** - * List repository languages. + * List releases. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/languages` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases` endpoint. * - * Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + * As opposed to `list_releases`, this function returns all the pages of the request at once. * - * FROM: + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). * - * **Parameters:** + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. * - * * `owner: &str` - * * `repo: &str` + * FROM: */ - pub async fn list_languages( + pub async fn list_all_releases( &self, owner: &str, repo: &str, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/languages", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -6082,30 +8598,32 @@ impl Repos { .await } /** - * Merge a branch. + * Create a release. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/merges` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/releases` endpoint. * + * Users with push access to the repository can create a release. * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn merge( + pub async fn create_release( &self, owner: &str, repo: &str, - body: &crate::types::ReposMergeRequest, - ) -> ClientResult> { + body: &crate::types::ReposCreateReleaseRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/merges", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -6120,29 +8638,38 @@ impl Repos { .await } /** - * Get a GitHub Pages site. + * Get a release asset. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/pages` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/assets/{asset_id}` endpoint. * + * To download the asset's binary content: * + * - If within a browser, fetch the location specified in the `browser_download_url` key provided in the response. + * - Alternatively, set the `Accept` header of the request to + * [`application/octet-stream`](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types). + * The API will either redirect the client to the location, or stream it directly if possible. + * API clients should handle both a `200` or `302` response. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `asset_id: i64` -- The unique identifier of the asset. */ - pub async fn get_pages( + pub async fn get_release_asset( &self, owner: &str, repo: &str, - ) -> ClientResult> { + asset_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/assets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&asset_id.to_string()), ), None, ); @@ -6157,73 +8684,78 @@ impl Repos { .await } /** - * Update information about a GitHub Pages site. + * Delete a release asset. * - * This function performs a `PUT` to the `/repos/{owner}/{repo}/pages` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/releases/assets/{asset_id}` endpoint. * - * Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). * - * FROM: + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `asset_id: i64` -- The unique identifier of the asset. */ - pub async fn update_information_about_pages_site( + pub async fn delete_release_asset( &self, owner: &str, repo: &str, - body: &crate::types::ReposUpdateInformationAboutPagesSiteRequest, + asset_id: i64, ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/assets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&asset_id.to_string()), ), None, ); self.client - .put( + .delete( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Create a GitHub Pages site. + * Update a release asset. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/pages` endpoint. + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/releases/assets/{asset_id}` endpoint. * - * Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * Users with push access to the repository can edit a release asset. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `asset_id: i64` -- The unique identifier of the asset. */ - pub async fn create_pages_site( + pub async fn update_release_asset( &self, owner: &str, repo: &str, - body: &crate::types::ReposCreatePagesSiteRequest, - ) -> ClientResult> { + asset_id: i64, + body: &crate::types::ReposUpdateReleaseAssetRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/assets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&asset_id.to_string()), ), None, ); self.client - .post( + .patch( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -6233,79 +8765,69 @@ impl Repos { .await } /** - * Delete a GitHub Pages site. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/pages` endpoint. + * Generate release notes content for a release. * + * This function performs a `POST` to the `/repos/{owner}/{repo}/releases/generate-notes` endpoint. * + * Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn delete_pages_site( + pub async fn generate_release_notes( &self, owner: &str, repo: &str, - ) -> ClientResult> { + body: &crate::types::ReposGenerateReleaseNotesRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/generate-notes", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .delete( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * List GitHub Pages builds. + * Get the latest release. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/latest` endpoint. * + * View the latest published full release for the repository. * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn list_pages_builds( + pub async fn get_latest_release( &self, owner: &str, repo: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages/builds?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/releases/latest", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -6320,31 +8842,37 @@ impl Repos { .await } /** - * List GitHub Pages builds. + * Get a release by tag name. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/tags/{tag}` endpoint. * - * As opposed to `list_pages_builds`, this function returns all the pages of the request at once. + * Get a published release with the specified tag. * + * FROM: * + * **Parameters:** * - * FROM: + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `tag: &str` -- tag parameter. */ - pub async fn list_all_pages_builds( + pub async fn get_release_by_tag( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + tag: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages/builds", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/tags/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&tag.to_string()), ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -6354,36 +8882,40 @@ impl Repos { .await } /** - * Request a GitHub Pages build. + * Get a release. * - * This function performs a `POST` to the `/repos/{owner}/{repo}/pages/builds` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}` endpoint. * - * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * Gets a public release with the specified release ID. * - * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + * > [!NOTE] + * > This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource. For more information, see "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. */ - pub async fn request_pages_build( + pub async fn get_release( &self, owner: &str, repo: &str, - ) -> ClientResult> { + release_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages/builds", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), ), None, ); self.client - .post( + .get( &url, crate::Message { body: None, @@ -6393,34 +8925,37 @@ impl Repos { .await } /** - * Get latest Pages build. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds/latest` endpoint. + * Delete a release. * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/releases/{release_id}` endpoint. * + * Users with push access to the repository can delete a release. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. */ - pub async fn get_latest_pages_build( + pub async fn delete_release( &self, owner: &str, repo: &str, - ) -> ClientResult> { + release_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages/builds/latest", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -6430,73 +8965,86 @@ impl Repos { .await } /** - * Get GitHub Pages build. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/builds/{build_id}` endpoint. + * Update a release. * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/releases/{release_id}` endpoint. * + * Users with push access to the repository can edit a release. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `build_id: i64` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. */ - pub async fn get_pages_build( + pub async fn update_release( &self, owner: &str, repo: &str, - build_id: i64, - ) -> ClientResult> { + release_id: i64, + body: &crate::types::ReposUpdateReleaseRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/pages/builds/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&build_id.to_string()), + "/repos/{}/{}/releases/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), ), None, ); self.client - .get( + .patch( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Get a DNS health check for GitHub Pages. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/pages/health` endpoint. + * List release assets. * - * Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}/assets` endpoint. * - * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. * - * Users must have admin or owner permissions. GitHub Apps must have the `pages:write` and `administration:write` permission to use this endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn get_pages_health_check( + pub async fn list_release_assets( &self, owner: &str, repo: &str, - ) -> ClientResult> { + release_id: i64, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/pages/health", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/releases/{}/assets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), + query_ ), None, ); @@ -6511,44 +9059,33 @@ impl Repos { .await } /** - * Get a repository README. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/readme` endpoint. + * List release assets. * - * Gets the preferred README for a repository. + * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}/assets` endpoint. * - * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + * As opposed to `list_release_assets`, this function returns all the pages of the request at once. * - * FROM: * - * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`). + * FROM: */ - pub async fn get_readme( + pub async fn list_all_release_assets( &self, owner: &str, repo: &str, - ref_: &str, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + release_id: i64, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/readme?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - query_ + "/repos/{}/{}/releases/{}/assets", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -6558,80 +9095,105 @@ impl Repos { .await } /** - * Get a repository README for a directory. + * Upload a release asset. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/readme/{dir}` endpoint. + * This function performs a `POST` to the `/repos/{owner}/{repo}/releases/{release_id}/assets` endpoint. * - * Gets the README from a repository directory. + * This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. * - * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `dir: &str` -- The alternate path to look for a README file. - * * `ref_: &str` -- The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`). + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `release_id: i64` -- The unique identifier of the release. + * * `name: &str` + * * `label: &str` */ - pub async fn get_readme_in_directory( + pub async fn upload_release_asset>( &self, owner: &str, repo: &str, - dir: &str, - ref_: &str, - ) -> ClientResult> { + release_id: i64, + name: &str, + label: &str, + body: B, + ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); - if !ref_.is_empty() { - query_args.push(("ref".to_string(), ref_.to_string())); + if !label.is_empty() { + query_args.push(("label".to_string(), label.to_string())); + } + if !name.is_empty() { + query_args.push(("name".to_string(), name.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/readme/{}?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(dir), + "/repos/{}/{}/releases/{}/assets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&release_id.to_string()), query_ ), - None, + Some(ReposUploadReleaseAssetDefaultServer::default().default_url()), ); self.client - .get( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(body.into()), + content_type: Some("application/octet-stream".to_string()), }, ) .await } /** - * List releases. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases` endpoint. + * Get rules for a branch. * - * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags). + * This function performs a `GET` to the `/repos/{owner}/{repo}/rules/branches/{branch}` endpoint. * - * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + * Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `branch: &str` -- The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_releases( + pub async fn get_branch_rules( &self, owner: &str, repo: &str, + branch: &str, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -6642,9 +9204,10 @@ impl Repos { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/releases?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/rules/branches/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), query_ ), None, @@ -6660,28 +9223,31 @@ impl Repos { .await } /** - * List releases. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases` endpoint. + * Get rules for a branch. * - * As opposed to `list_releases`, this function returns all the pages of the request at once. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rules/branches/{branch}` endpoint. * - * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags). + * As opposed to `get_branch_rules`, this function returns all the pages of the request at once. * - * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + * Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. * - * FROM: + * FROM: */ - pub async fn list_all_releases( + pub async fn get_all_branch_rules( &self, owner: &str, repo: &str, - ) -> ClientResult>> { + branch: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/releases", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/rules/branches/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&branch.to_string()), ), None, ); @@ -6696,77 +9262,105 @@ impl Repos { .await } /** - * Create a release. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/releases` endpoint. + * Get all repository rulesets. * - * Users with push access to the repository can create a release. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * Get all the rulesets for a repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `includes_parents: bool` -- Include rulesets configured at higher levels that apply to this repository. + * * `targets: &str` -- A comma-separated list of rule targets to filter by. + * If provided, only rulesets that apply to the specified targets will be returned. + * For example, `branch,tag,push`. + * . */ - pub async fn create_release( + pub async fn get_repo_rulesets( &self, owner: &str, repo: &str, - body: &crate::types::ReposCreateReleaseRequest, - ) -> ClientResult> { + per_page: i64, + page: i64, + includes_parents: bool, + targets: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if includes_parents { + query_args.push(("includes_parents".to_string(), includes_parents.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !targets.is_empty() { + query_args.push(("targets".to_string(), targets.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/releases", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/rulesets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a release asset. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/assets/{asset_id}` endpoint. + * Get all repository rulesets. * - * To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets` endpoint. * - * FROM: + * As opposed to `get_repo_rulesets`, this function returns all the pages of the request at once. * - * **Parameters:** + * Get all the rulesets for a repository. * - * * `owner: &str` - * * `repo: &str` - * * `asset_id: i64` -- asset_id parameter. + * FROM: */ - pub async fn get_release_asset( + pub async fn get_all_repo_rulesets( &self, owner: &str, repo: &str, - asset_id: i64, - ) -> ClientResult> { + includes_parents: bool, + targets: &str, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if includes_parents { + query_args.push(("includes_parents".to_string(), includes_parents.to_string())); + } + if !targets.is_empty() { + query_args.push(("targets".to_string(), targets.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/releases/assets/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&asset_id.to_string()), + "/repos/{}/{}/rulesets?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -6776,117 +9370,168 @@ impl Repos { .await } /** - * Delete a release asset. - * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/releases/assets/{asset_id}` endpoint. + * Create a repository ruleset. * + * This function performs a `POST` to the `/repos/{owner}/{repo}/rulesets` endpoint. * + * Create a ruleset for a repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `asset_id: i64` -- asset_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn delete_release_asset( + pub async fn create_repo_ruleset( &self, owner: &str, repo: &str, - asset_id: i64, - ) -> ClientResult> { + body: &crate::types::ReposCreateRepoRulesetRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/releases/assets/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&asset_id.to_string()), + "/repos/{}/{}/rulesets", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .delete( + .post( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Update a release asset. + * List repository rule suites. * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/releases/assets/{asset_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets/rule-suites` endpoint. * - * Users with push access to the repository can edit a release asset. + * Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `asset_id: i64` -- asset_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ref_: &str` -- The name of the ref. Cannot contain wildcard characters. Optionally prefix with `refs/heads/` to limit to branches or `refs/tags/` to limit to tags. Omit the prefix to search across all refs. When specified, only rule evaluations triggered for this ref will be returned. + * * `time_period: crate::types::TimePeriodData` -- The time period to filter by. + * + * For example, `day` will filter for rule suites that occurred in the past 24 hours, and `week` will filter for rule suites that occurred in the past 7 days (168 hours). + * * `actor_name: &str` -- The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned. + * * `rule_suite_result: crate::types::RuleSuiteResult` -- The rule suite results to filter on. When specified, only suites with this result will be returned. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn update_release_asset( + pub async fn get_repo_rule_suites( &self, owner: &str, repo: &str, - asset_id: i64, - body: &crate::types::ReposUpdateReleaseAssetRequest, - ) -> ClientResult> { + ref_: &str, + time_period: crate::types::TimePeriodData, + actor_name: &str, + rule_suite_result: crate::types::RuleSuiteResult, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !actor_name.is_empty() { + query_args.push(("actor_name".to_string(), actor_name.to_string())); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !rule_suite_result.to_string().is_empty() { + query_args.push(( + "rule_suite_result".to_string(), + rule_suite_result.to_string(), + )); + } + if !time_period.to_string().is_empty() { + query_args.push(("time_period".to_string(), time_period.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/releases/assets/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&asset_id.to_string()), + "/repos/{}/{}/rulesets/rule-suites?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .patch( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get the latest release. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/latest` endpoint. + * List repository rule suites. * - * View the latest published full release for the repository. - * - * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets/rule-suites` endpoint. * - * FROM: + * As opposed to `get_repo_rule_suites`, this function returns all the pages of the request at once. * - * **Parameters:** + * Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." * - * * `owner: &str` - * * `repo: &str` + * FROM: */ - pub async fn get_latest_release( + pub async fn get_all_repo_rule_suites( &self, owner: &str, repo: &str, - ) -> ClientResult> { + ref_: &str, + time_period: crate::types::TimePeriodData, + actor_name: &str, + rule_suite_result: crate::types::RuleSuiteResult, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !actor_name.is_empty() { + query_args.push(("actor_name".to_string(), actor_name.to_string())); + } + if !ref_.is_empty() { + query_args.push(("ref".to_string(), ref_.to_string())); + } + if !rule_suite_result.to_string().is_empty() { + query_args.push(( + "rule_suite_result".to_string(), + rule_suite_result.to_string(), + )); + } + if !time_period.to_string().is_empty() { + query_args.push(("time_period".to_string(), time_period.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/releases/latest", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/rulesets/rule-suites?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -6896,32 +9541,36 @@ impl Repos { .await } /** - * Get a release by tag name. + * Get a repository rule suite. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/tags/{tag}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}` endpoint. * - * Get a published release with the specified tag. + * Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `tag: &str` -- tag parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `rule_suite_id: i64` -- The unique identifier of the rule suite result. + * To get this ID, you can use [GET /repos/{owner}/{repo}/rulesets/rule-suites](https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites) + * for repositories and [GET /orgs/{org}/rulesets/rule-suites](https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites) + * for organizations. */ - pub async fn get_release_by_tag( + pub async fn get_repo_rule_suite( &self, owner: &str, repo: &str, - tag: &str, - ) -> ClientResult> { + rule_suite_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/releases/tags/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(tag), + "/repos/{}/{}/rulesets/rule-suites/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&rule_suite_id.to_string()), ), None, ); @@ -6936,32 +9585,43 @@ impl Repos { .await } /** - * Get a release. + * Get a repository ruleset. * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}` endpoint. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets/{ruleset_id}` endpoint. + * + * Get a ruleset for a repository. * - * **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). + * **Note:** To prevent leaking sensitive information, the `bypass_actors` property is only returned if the user + * making the API request has write access to the ruleset. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `release_id: i64` -- release_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. + * * `includes_parents: bool` -- Include rulesets configured at higher levels that apply to this repository. */ - pub async fn get_release( + pub async fn get_repo_ruleset( &self, owner: &str, repo: &str, - release_id: i64, - ) -> ClientResult> { + ruleset_id: i64, + includes_parents: bool, + ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if includes_parents { + query_args.push(("includes_parents".to_string(), includes_parents.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/releases/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&release_id.to_string()), + "/repos/{}/{}/rulesets/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), + query_ ), None, ); @@ -6976,111 +9636,111 @@ impl Repos { .await } /** - * Delete a release. + * Update a repository ruleset. * - * This function performs a `DELETE` to the `/repos/{owner}/{repo}/releases/{release_id}` endpoint. + * This function performs a `PUT` to the `/repos/{owner}/{repo}/rulesets/{ruleset_id}` endpoint. * - * Users with push access to the repository can delete a release. + * Update a ruleset for a repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `release_id: i64` -- release_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. */ - pub async fn delete_release( + pub async fn update_repo_ruleset( &self, owner: &str, repo: &str, - release_id: i64, - ) -> ClientResult> { + ruleset_id: i64, + body: &crate::types::ReposUpdateRepoRulesetRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/releases/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&release_id.to_string()), + "/repos/{}/{}/rulesets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Update a release. + * Delete a repository ruleset. * - * This function performs a `PATCH` to the `/repos/{owner}/{repo}/releases/{release_id}` endpoint. + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/rulesets/{ruleset_id}` endpoint. * - * Users with push access to the repository can edit a release. + * Delete a ruleset for a repository. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `release_id: i64` -- release_id parameter. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. */ - pub async fn update_release( + pub async fn delete_repo_ruleset( &self, owner: &str, repo: &str, - release_id: i64, - body: &crate::types::ReposCreateReleaseRequest, - ) -> ClientResult> { + ruleset_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/releases/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&release_id.to_string()), + "/repos/{}/{}/rulesets/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), ), None, ); self.client - .patch( + .delete( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List release assets. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}/assets` endpoint. + * Get repository ruleset history. * + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets/{ruleset_id}/history` endpoint. * + * Get the history of a repository ruleset. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `release_id: i64` -- release_id parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `ruleset_id: i64` -- The ID of the ruleset. */ - pub async fn list_release_assets( + pub async fn get_repo_ruleset_history( &self, owner: &str, repo: &str, - release_id: i64, per_page: i64, page: i64, - ) -> ClientResult>> { + ruleset_id: i64, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); @@ -7091,10 +9751,10 @@ impl Repos { let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/releases/{}/assets?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&release_id.to_string()), + "/repos/{}/{}/rulesets/{}/history?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), query_ ), None, @@ -7110,28 +9770,28 @@ impl Repos { .await } /** - * List release assets. - * - * This function performs a `GET` to the `/repos/{owner}/{repo}/releases/{release_id}/assets` endpoint. + * Get repository ruleset history. * - * As opposed to `list_release_assets`, this function returns all the pages of the request at once. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets/{ruleset_id}/history` endpoint. * + * As opposed to `get_repo_ruleset_history`, this function returns all the pages of the request at once. * + * Get the history of a repository ruleset. * - * FROM: + * FROM: */ - pub async fn list_all_release_assets( + pub async fn get_all_repo_ruleset_history( &self, owner: &str, repo: &str, - release_id: i64, - ) -> ClientResult>> { + ruleset_id: i64, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/repos/{}/{}/releases/{}/assets", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&release_id.to_string()), + "/repos/{}/{}/rulesets/{}/history", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), ), None, ); @@ -7146,72 +9806,44 @@ impl Repos { .await } /** - * Upload a release asset. - * - * This function performs a `POST` to the `/repos/{owner}/{repo}/releases/{release_id}/assets` endpoint. - * - * This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in - * the response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset. - * - * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * Get repository ruleset version. * - * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: - * - * `application/zip` - * - * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, - * you'll still need to pass your authentication to be able to upload an asset. - * - * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * This function performs a `GET` to the `/repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}` endpoint. * - * **Notes:** - * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)" - * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=rest-api). - * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + * Get a version of a repository ruleset. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `release_id: i64` -- release_id parameter. - * * `name: &str` - * * `label: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ruleset_id: i64` -- The ID of the ruleset. + * * `version_id: i64` -- The ID of the version. */ - pub async fn upload_release_asset>( + pub async fn get_repo_ruleset_version( &self, owner: &str, repo: &str, - release_id: i64, - name: &str, - label: &str, - body: B, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !label.is_empty() { - query_args.push(("label".to_string(), label.to_string())); - } - if !name.is_empty() { - query_args.push(("name".to_string(), name.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ruleset_id: i64, + version_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( - "/repos/{}/{}/releases/{}/assets?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(&release_id.to_string()), - query_ + "/repos/{}/{}/rulesets/{}/history/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ruleset_id.to_string()), + crate::progenitor_support::encode_path(&version_id.to_string()), ), - Some(ReposUploadReleaseAssetDefaultServer::default().default_url()), + None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(body.into()), - content_type: Some("application/octet-stream".to_string()), + body: None, + content_type: None, }, ) .await @@ -7223,12 +9855,15 @@ impl Repos { * * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. * - * FROM: + * > [!NOTE] + * > This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains 10,000 or more commits, a 422 status code will be returned. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_code_frequency_stats( &self, @@ -7238,8 +9873,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/code_frequency", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7262,7 +9897,10 @@ impl Repos { * * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. * - * FROM: + * > [!NOTE] + * > This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains 10,000 or more commits, a 422 status code will be returned. + * + * FROM: */ pub async fn get_all_code_frequency_stats( &self, @@ -7272,8 +9910,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/code_frequency", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7294,12 +9932,12 @@ impl Repos { * * Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_commit_activity_stats( &self, @@ -7309,8 +9947,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/commit_activity", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7333,7 +9971,7 @@ impl Repos { * * Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. * - * FROM: + * FROM: */ pub async fn get_all_commit_activity_stats( &self, @@ -7343,8 +9981,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/commit_activity", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7366,17 +10004,20 @@ impl Repos { * * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: * - * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). * * `a` - Number of additions * * `d` - Number of deletions * * `c` - Number of commits * - * FROM: + * > [!NOTE] + * > This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_contributors_stats( &self, @@ -7386,8 +10027,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/contributors", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7411,12 +10052,15 @@ impl Repos { * * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: * - * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). * * `a` - Number of additions * * `d` - Number of deletions * * `c` - Number of commits * - * FROM: + * > [!NOTE] + * > This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + * + * FROM: */ pub async fn get_all_contributors_stats( &self, @@ -7426,8 +10070,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/contributors", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7450,12 +10094,14 @@ impl Repos { * * The array order is oldest week (index 0) to most recent week. * - * FROM: + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_participation_stats( &self, @@ -7465,8 +10111,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/participation", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7493,12 +10139,12 @@ impl Repos { * * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_punch_card_stats( &self, @@ -7508,8 +10154,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/punch_card", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7538,7 +10184,7 @@ impl Repos { * * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. * - * FROM: + * FROM: */ pub async fn get_all_punch_card_stats( &self, @@ -7548,8 +10194,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/stats/punch_card", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7572,12 +10218,12 @@ impl Repos { * * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `sha: &str` */ pub async fn create_commit_status( @@ -7590,9 +10236,9 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/statuses/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(sha), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&sha.to_string()), ), None, ); @@ -7613,14 +10259,14 @@ impl Repos { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_tags( &self, @@ -7640,8 +10286,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/tags?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -7665,7 +10311,7 @@ impl Repos { * * * - * FROM: + * FROM: */ pub async fn list_all_tags( &self, @@ -7675,8 +10321,89 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/tags", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Closing down - List tag protection states for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/tags/protection` endpoint. + * + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the "[Repository Rulesets](https://docs.github.com/rest/repos/rules#get-all-repository-rulesets)" endpoint instead. + * + * This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn list_tag_protection( + &self, + owner: &str, + repo: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/tags/protection", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Closing down - List tag protection states for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/tags/protection` endpoint. + * + * As opposed to `list_tag_protection`, this function returns all the pages of the request at once. + * + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the "[Repository Rulesets](https://docs.github.com/rest/repos/rules#get-all-repository-rulesets)" endpoint instead. + * + * This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + * + * FROM: + */ + pub async fn list_all_tag_protection( + &self, + owner: &str, + repo: &str, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/tags/protection", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7690,22 +10417,110 @@ impl Repos { ) .await } + /** + * Closing down - Create a tag protection state for a repository. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/tags/protection` endpoint. + * + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the "[Repository Rulesets](https://docs.github.com/rest/repos/rules#create-a-repository-ruleset)" endpoint instead. + * + * This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_tag_protection( + &self, + owner: &str, + repo: &str, + body: &crate::types::ReposCreateTagProtectionRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/tags/protection", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Closing down - Delete a tag protection state for a repository. + * + * This function performs a `DELETE` to the `/repos/{owner}/{repo}/tags/protection/{tag_protection_id}` endpoint. + * + * > [!WARNING] + * > **Closing down notice:** This operation is closing down and will be removed after August 30, 2024. Use the "[Repository Rulesets](https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset)" endpoint instead. + * + * This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `tag_protection_id: i64` -- The unique identifier of the tag protection. + */ + pub async fn delete_tag_protection( + &self, + owner: &str, + repo: &str, + tag_protection_id: i64, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/tags/protection/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&tag_protection_id.to_string()), + ), + None, + ); + self.client + .delete( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } /** * Download a repository archive (tar). * * This function performs a `GET` to the `/repos/{owner}/{repo}/tarball/{ref}` endpoint. * * Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually - * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use * the `Location` header to make a second `GET` request. - * **Note**: For private repositories, these links are temporary and expire after five minutes. * - * FROM: + * > [!NOTE] + * > For private repositories, these links are temporary and expire after five minutes. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `ref_: &str` */ pub async fn download_tarball_archive( @@ -7717,9 +10532,9 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/tarball/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), ), None, ); @@ -7738,16 +10553,20 @@ impl Repos { * * This function performs a `GET` to the `/repos/{owner}/{repo}/teams` endpoint. * + * Lists the teams that have access to the specified repository and that are also visible to the authenticated user. * + * For a public repository, a team is listed only if that team added the public repository explicitly. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_teams( &self, @@ -7767,8 +10586,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/teams?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -7790,9 +10609,13 @@ impl Repos { * * As opposed to `list_teams`, this function returns all the pages of the request at once. * + * Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. * - * FROM: + * FROM: */ pub async fn list_all_teams( &self, @@ -7802,8 +10625,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/teams", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7824,14 +10647,14 @@ impl Repos { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn get_all_topics( &self, @@ -7851,8 +10674,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/topics?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -7874,12 +10697,12 @@ impl Repos { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn replace_all_topics( &self, @@ -7890,8 +10713,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/topics", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7912,13 +10735,13 @@ impl Repos { * * Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per: crate::types::Per` -- Must be one of: `day`, `week`. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per: crate::types::Per` -- The time frame to display results for. */ pub async fn get_clones( &self, @@ -7934,8 +10757,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/traffic/clones?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -7957,12 +10780,12 @@ impl Repos { * * Get the top 10 popular contents over the last 14 days. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_top_paths( &self, @@ -7972,8 +10795,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/traffic/popular/paths", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -7996,7 +10819,7 @@ impl Repos { * * Get the top 10 popular contents over the last 14 days. * - * FROM: + * FROM: */ pub async fn get_all_top_paths( &self, @@ -8006,8 +10829,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/traffic/popular/paths", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -8028,12 +10851,12 @@ impl Repos { * * Get the top 10 referrers over the last 14 days. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn get_top_referrers( &self, @@ -8043,8 +10866,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/traffic/popular/referrers", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -8067,7 +10890,7 @@ impl Repos { * * Get the top 10 referrers over the last 14 days. * - * FROM: + * FROM: */ pub async fn get_all_top_referrers( &self, @@ -8077,8 +10900,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/traffic/popular/referrers", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -8099,13 +10922,13 @@ impl Repos { * * Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `per: crate::types::Per` -- Must be one of: `day`, `week`. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `per: crate::types::Per` -- The time frame to display results for. */ pub async fn get_views( &self, @@ -8121,8 +10944,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/traffic/views?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -8142,14 +10965,14 @@ impl Repos { * * This function performs a `POST` to the `/repos/{owner}/{repo}/transfer` endpoint. * - * A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://help.github.com/articles/about-repository-transfers/). + * A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn transfer( &self, @@ -8160,8 +10983,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/transfer", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -8180,14 +11003,14 @@ impl Repos { * * This function performs a `GET` to the `/repos/{owner}/{repo}/vulnerability-alerts` endpoint. * - * Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + * Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn check_vulnerability_alerts( &self, @@ -8197,8 +11020,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/vulnerability-alerts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -8217,14 +11040,14 @@ impl Repos { * * This function performs a `PUT` to the `/repos/{owner}/{repo}/vulnerability-alerts` endpoint. * - * Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + * Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn enable_vulnerability_alerts( &self, @@ -8234,8 +11057,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/vulnerability-alerts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -8254,14 +11077,16 @@ impl Repos { * * This function performs a `DELETE` to the `/repos/{owner}/{repo}/vulnerability-alerts` endpoint. * - * Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + * Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn disable_vulnerability_alerts( &self, @@ -8271,8 +11096,8 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/vulnerability-alerts", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -8292,16 +11117,18 @@ impl Repos { * This function performs a `GET` to the `/repos/{owner}/{repo}/zipball/{ref}` endpoint. * * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually - * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use * the `Location` header to make a second `GET` request. - * **Note**: For private repositories, these links are temporary and expire after five minutes. * - * FROM: + * > [!NOTE] + * > For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `ref_: &str` */ pub async fn download_zipball_archive( @@ -8313,9 +11140,9 @@ impl Repos { let url = self.client.url( &format!( "/repos/{}/{}/zipball/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - crate::progenitor_support::encode_path(ref_), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ref_.to_string()), ), None, ); @@ -8334,33 +11161,28 @@ impl Repos { * * This function performs a `POST` to the `/repos/{template_owner}/{template_repo}/generate` endpoint. * - * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. - * - * **OAuth scope requirements** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. * - * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. * - * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. - * * `repo` scope to create a private repository - * - * FROM: + * FROM: * * **Parameters:** * - * * `template_owner: &str` - * * `template_repo: &str` + * * `template_owner: &str` -- The account owner of the template repository. The name is not case sensitive. + * * `template_repo: &str` -- The name of the template repository without the `.git` extension. The name is not case sensitive. */ pub async fn create_using_template( &self, template_owner: &str, template_repo: &str, body: &crate::types::ReposCreateUsingTemplateRequest, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( "/repos/{}/{}/generate", - crate::progenitor_support::encode_path(template_owner), - crate::progenitor_support::encode_path(template_repo), + crate::progenitor_support::encode_path(&template_owner.to_string()), + crate::progenitor_support::encode_path(&template_repo.to_string()), ), None, ); @@ -8383,9 +11205,9 @@ impl Repos { * * Note: * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. - * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. * - * FROM: + * FROM: * * **Parameters:** * @@ -8422,9 +11244,9 @@ impl Repos { * * Note: * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. - * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. * - * FROM: + * FROM: */ pub async fn list_all_public( &self, @@ -8455,26 +11277,22 @@ impl Repos { * * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. * - * FROM: + * FROM: * * **Parameters:** * - * * `visibility: crate::types::ReposListVisibility` -- Can be one of `all`, `public`, or `private`. Note: For GitHub AE, can be one of `all`, `internal`, or `private`. + * * `visibility: crate::types::ReposListVisibility` -- Limit results to repositories with the specified visibility. * * `affiliation: &str` -- Comma-separated list of values. Can include: - * \* `owner`: Repositories that are owned by the authenticated user. - * \* `collaborator`: Repositories that the user has been added to as a collaborator. - * \* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. - * * `type_: crate::types::ReposListType` -- Can be one of `all`, `owner`, `public`, `private`, `member`. Note: For GitHub AE, can be one of `all`, `owner`, `internal`, `private`, `member`. Default: `all` - * - * Will cause a `422` error if used in the same request as \*\*visibility\*\* or \*\*affiliation\*\*. Will cause a `422` error if used in the same request as \*\*visibility\*\* or \*\*affiliation\*\*. - * * `sort: crate::types::ReposListOrgSort` -- Can be one of `created`, `updated`, `pushed`, `full_name`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - * * `since: chrono::DateTime` -- Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. - * * `before: chrono::DateTime` -- Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `owner`: Repositories that are owned by the authenticated user. + * * `collaborator`: Repositories that the user has been added to as a collaborator. + * * `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + * * `type_: crate::types::ReposListType` -- Limit results to repositories of the specified type. Will cause a `422` error if used in the same request as \*\*visibility\*\* or \*\*affiliation\*\*. + * * `sort: crate::types::ReposListOrgSort` -- The property to sort the results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `since: chrono::DateTime` -- Only show repositories updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + * * `before: chrono::DateTime` -- Only show repositories updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ pub async fn list_for_authenticated_user( &self, @@ -8539,7 +11357,7 @@ impl Repos { * * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. * - * FROM: + * FROM: */ pub async fn list_all_for_authenticated_user( &self, @@ -8592,20 +11410,15 @@ impl Repos { * * Creates a new repository for the authenticated user. * - * **OAuth scope requirements** - * - * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. * - * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. - * * `repo` scope to create a private repository. - * - * FROM: + * FROM: */ pub async fn create_for_authenticated_user( &self, body: &crate::types::ReposCreateRequest, - ) -> ClientResult> { - let url = self.client.url("/user/repos", None); + ) -> ClientResult> { + let url = self.client.url(&"/user/repos".to_string(), None); self.client .post( &url, @@ -8623,12 +11436,12 @@ impl Repos { * * When authenticating as a user, this endpoint will list all currently open repository invitations for that user. * - * FROM: + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_invitations_for_authenticated_user( &self, @@ -8665,12 +11478,14 @@ impl Repos { * * When authenticating as a user, this endpoint will list all currently open repository invitations for that user. * - * FROM: + * FROM: */ pub async fn list_all_invitations_for_authenticated_user( &self, ) -> ClientResult>> { - let url = self.client.url("/user/repository_invitations", None); + let url = self + .client + .url(&"/user/repository_invitations".to_string(), None); self.client .get_all_pages( &url, @@ -8688,13 +11503,13 @@ impl Repos { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `invitation_id: i64` -- invitation_id parameter. + * * `invitation_id: i64` -- The unique identifier of the invitation. */ - pub async fn decline_invitation( + pub async fn decline_invitation_for_authenticated_user( &self, invitation_id: i64, ) -> ClientResult> { @@ -8722,13 +11537,16 @@ impl Repos { * * * - * FROM: + * FROM: * * **Parameters:** * - * * `invitation_id: i64` -- invitation_id parameter. + * * `invitation_id: i64` -- The unique identifier of the invitation. */ - pub async fn accept_invitation(&self, invitation_id: i64) -> ClientResult> { + pub async fn accept_invitation_for_authenticated_user( + &self, + invitation_id: i64, + ) -> ClientResult> { let url = self.client.url( &format!( "/user/repository_invitations/{}", @@ -8751,20 +11569,18 @@ impl Repos { * * This function performs a `GET` to the `/users/{username}/repos` endpoint. * - * Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user. + * Lists public repositories for the specified user. * - * FROM: + * FROM: * * **Parameters:** * - * * `username: &str` - * * `type_: crate::types::ReposListUserType` -- Can be one of `all`, `owner`, `member`. - * * `sort: crate::types::ReposListOrgSort` -- Can be one of `created`, `updated`, `pushed`, `full_name`. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `username: &str` -- The handle for the GitHub user account. + * * `type_: crate::types::ReposListUserType` -- Limit results to repositories of the specified type. + * * `sort: crate::types::ReposListOrgSort` -- The property to sort the results by. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_user( &self, @@ -8795,7 +11611,7 @@ impl Repos { let url = self.client.url( &format!( "/users/{}/repos?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, @@ -8817,9 +11633,9 @@ impl Repos { * * As opposed to `list_for_user`, this function returns all the pages of the request at once. * - * Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user. + * Lists public repositories for the specified user. * - * FROM: + * FROM: */ pub async fn list_all_for_user( &self, @@ -8842,7 +11658,7 @@ impl Repos { let url = self.client.url( &format!( "/users/{}/repos?{}", - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), query_ ), None, diff --git a/github/src/search.rs b/github/src/search.rs index 1b50a0fe..2f0296bb 100644 --- a/github/src/search.rs +++ b/github/src/search.rs @@ -16,9 +16,9 @@ impl Search { * * This function performs a `GET` to the `/search/code` endpoint. * - * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). * - * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). * * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: * @@ -26,7 +26,7 @@ impl Search { * * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. * - * #### Considerations for code search + * Considerations for code search: * * Due to the complexity of searching code, there are a few restrictions on how searches are performed: * @@ -35,15 +35,17 @@ impl Search { * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. * - * FROM: + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + * + * FROM: * * **Parameters:** * - * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching code](https://help.github.com/articles/searching-code/)" for a detailed list of qualifiers. - * * `sort: crate::types::SearchCodeSort` -- Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results). - * * `order: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching code](https://docs.github.com/search-github/searching-on-github/searching-code)" for a detailed list of qualifiers. + * * `sort: crate::types::SearchCodeSort` -- \*\*This field is closing down.\*\* Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results). + * * `order: crate::types::Order` -- **This field is closing down.** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. . + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn code( &self, @@ -86,24 +88,24 @@ impl Search { * * This function performs a `GET` to the `/search/commits` endpoint. * - * Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). * * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match - * metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). * * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: * * `q=repo:octocat/Spoon-Knife+css` * - * FROM: + * FROM: * * **Parameters:** * - * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching commits](https://help.github.com/articles/searching-commits/)" for a detailed list of qualifiers. - * * `sort: crate::types::SearchCommitsSort` -- Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results). + * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching commits](https://docs.github.com/search-github/searching-on-github/searching-commits)" for a detailed list of qualifiers. + * * `sort: crate::types::SearchCommitsSort` -- Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results). * * `order: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn commits( &self, @@ -148,10 +150,10 @@ impl Search { * * This function performs a `GET` to the `/search/issues` endpoint. * - * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). * * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted - * search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). * * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. * @@ -159,17 +161,20 @@ impl Search { * * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. * - * **Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + * > [!NOTE] + * > For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." * - * FROM: + * FROM: * * **Parameters:** * - * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. - * * `sort: crate::types::SearchIssuesPullRequestsSort` -- Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results). + * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching issues and pull requests](https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests)" for a detailed list of qualifiers. + * * `sort: crate::types::SearchIssuesPullRequestsSort` -- Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results). * * `order: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `advanced_search: &str` -- Set to `true` to use advanced search. + * Example: `http://api.github.com/search/issues?q={query}&advanced_search=true`. */ pub async fn issues_and_pull_requests( &self, @@ -178,8 +183,12 @@ impl Search { order: crate::types::Order, per_page: i64, page: i64, + advanced_search: &str, ) -> ClientResult> { let mut query_args: Vec<(String, String)> = Default::default(); + if !advanced_search.is_empty() { + query_args.push(("advanced_search".to_string(), advanced_search.to_string())); + } if !order.to_string().is_empty() { query_args.push(("order".to_string(), order.to_string())); } @@ -212,9 +221,9 @@ impl Search { * * This function performs a `GET` to the `/search/labels` endpoint. * - * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). * - * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). * * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: * @@ -222,22 +231,22 @@ impl Search { * * The labels that best match the query appear first in the search results. * - * FROM: + * FROM: * * **Parameters:** * * * `repository_id: i64` -- The id of the repository. - * * `q: &str` -- The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). - * * `sort: crate::types::Sort` -- Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results). + * * `q: &str` -- The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + * * `sort: crate::types::SortData` -- Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results). * * `order: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn labels( &self, repository_id: i64, q: &str, - sort: crate::types::Sort, + sort: crate::types::SortData, order: crate::types::Order, per_page: i64, page: i64, @@ -278,9 +287,9 @@ impl Search { * * This function performs a `GET` to the `/search/repositories` endpoint. * - * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). * - * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). * * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: * @@ -288,19 +297,15 @@ impl Search { * * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. * - * When you include the `mercy` preview header, you can also search for multiple topics by adding more `topic:` instances. For example, your query might look like this: - * - * `q=topic:ruby+topic:rails` - * - * FROM: + * FROM: * * **Parameters:** * - * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. - * * `sort: crate::types::SearchReposSort` -- Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results). + * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. + * * `sort: crate::types::SearchReposSort` -- Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results). * * `order: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn repos( &self, @@ -345,9 +350,9 @@ impl Search { * * This function performs a `GET` to the `/search/topics` endpoint. * - * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See "[Searching topics](https://help.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. * - * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). * * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: * @@ -355,13 +360,13 @@ impl Search { * * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. * - * FROM: + * FROM: * * **Parameters:** * - * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn topics( &self, @@ -396,9 +401,9 @@ impl Search { * * This function performs a `GET` to the `/search/users` endpoint. * - * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). * - * When searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). * * For example, if you're looking for a list of popular users, you might try this query: * @@ -406,15 +411,17 @@ impl Search { * * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. * - * FROM: + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + * + * FROM: * * **Parameters:** * - * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching users](https://help.github.com/articles/searching-users/)" for a detailed list of qualifiers. - * * `sort: crate::types::SearchUsersSort` -- Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results). + * * `q: &str` -- The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching users](https://docs.github.com/search-github/searching-on-github/searching-users)" for a detailed list of qualifiers. + * * `sort: crate::types::SearchUsersSort` -- Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results). * * `order: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn users( &self, diff --git a/github/src/secret_scanning.rs b/github/src/secret_scanning.rs index 3e86d4fe..6d2ee557 100644 --- a/github/src/secret_scanning.rs +++ b/github/src/secret_scanning.rs @@ -11,25 +11,315 @@ impl SecretScanning { SecretScanning { client } } + /** + * List secret scanning alerts for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/secret-scanning/alerts` endpoint. + * + * Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `state: crate::types::SecretScanningAlertState` -- Sets the state of the secret scanning alert. You must provide `resolution` when you set the state to `resolved`. + * * `secret_type: &str` -- A comma-separated list of secret types to return. All default secret patterns are returned. To return generic patterns, pass the token name(s) in the parameter. See "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)" for a complete list of secret types. + * * `resolution: &str` -- A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. + * * `assignee: &str` -- Filters alerts by assignee. Use `*` to get all assigned alerts, `none` to get all unassigned alerts, or a GitHub username to get alerts assigned to a specific user. + * * `sort: crate::types::SortData` -- The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. + * * `validity: &str` -- A comma-separated list of validities that, when present, will return alerts that match the validities in this list. Valid options are `active`, `inactive`, and `unknown`. + * * `is_publicly_leaked: bool` -- A boolean value representing whether or not to filter alerts by the publicly-leaked tag being present. + * * `is_multi_repo: bool` -- A boolean value representing whether or not to filter alerts by the multi-repo tag being present. + * * `hide_secret: bool` -- A boolean value representing whether or not to hide literal secrets in the results. + */ + pub async fn list_alerts_for_org( + &self, + org: &str, + state: crate::types::SecretScanningAlertState, + secret_type: &str, + resolution: &str, + assignee: &str, + sort: crate::types::SortData, + direction: crate::types::Order, + page: i64, + per_page: i64, + before: &str, + after: &str, + validity: &str, + is_publicly_leaked: bool, + is_multi_repo: bool, + hide_secret: bool, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignee.is_empty() { + query_args.push(("assignee".to_string(), assignee.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if hide_secret { + query_args.push(("hide_secret".to_string(), hide_secret.to_string())); + } + if is_multi_repo { + query_args.push(("is_multi_repo".to_string(), is_multi_repo.to_string())); + } + if is_publicly_leaked { + query_args.push(( + "is_publicly_leaked".to_string(), + is_publicly_leaked.to_string(), + )); + } + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !resolution.is_empty() { + query_args.push(("resolution".to_string(), resolution.to_string())); + } + if !secret_type.is_empty() { + query_args.push(("secret_type".to_string(), secret_type.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + if !validity.is_empty() { + query_args.push(("validity".to_string(), validity.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/secret-scanning/alerts?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List secret scanning alerts for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/secret-scanning/alerts` endpoint. + * + * As opposed to `list_alerts_for_org`, this function returns all the pages of the request at once. + * + * Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + */ + pub async fn list_all_alerts_for_org( + &self, + org: &str, + state: crate::types::SecretScanningAlertState, + secret_type: &str, + resolution: &str, + assignee: &str, + sort: crate::types::SortData, + direction: crate::types::Order, + before: &str, + after: &str, + validity: &str, + is_publicly_leaked: bool, + is_multi_repo: bool, + hide_secret: bool, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignee.is_empty() { + query_args.push(("assignee".to_string(), assignee.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if hide_secret { + query_args.push(("hide_secret".to_string(), hide_secret.to_string())); + } + if is_multi_repo { + query_args.push(("is_multi_repo".to_string(), is_multi_repo.to_string())); + } + if is_publicly_leaked { + query_args.push(( + "is_publicly_leaked".to_string(), + is_publicly_leaked.to_string(), + )); + } + if !resolution.is_empty() { + query_args.push(("resolution".to_string(), resolution.to_string())); + } + if !secret_type.is_empty() { + query_args.push(("secret_type".to_string(), secret_type.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + if !validity.is_empty() { + query_args.push(("validity".to_string(), validity.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/secret-scanning/alerts?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List organization pattern configurations. + * + * This function performs a `GET` to the `/orgs/{org}/secret-scanning/pattern-configurations` endpoint. + * + * Lists the secret scanning pattern configurations for an organization. + * + * Personal access tokens (classic) need the `read:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn list_org_pattern_configs( + &self, + org: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/orgs/{}/secret-scanning/pattern-configurations", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update organization pattern configurations. + * + * This function performs a `PATCH` to the `/orgs/{org}/secret-scanning/pattern-configurations` endpoint. + * + * Updates the secret scanning pattern configurations for an organization. + * + * Personal access tokens (classic) need the `write:org` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + */ + pub async fn update_org_pattern_configs( + &self, + org: &str, + body: &crate::types::SecretScanningUpdateOrgPatternConfigsRequest, + ) -> ClientResult> + { + let url = self.client.url( + &format!( + "/orgs/{}/secret-scanning/pattern-configurations", + crate::progenitor_support::encode_path(&org.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } /** * List secret scanning alerts for a repository. * * This function performs a `GET` to the `/repos/{owner}/{repo}/secret-scanning/alerts` endpoint. * - * Lists all secret scanning alerts for a private repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. * - * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` - * * `state: crate::types::SecretScanningAlertState` -- Sets the state of the secret scanning alert. Can be either `open` or `resolved`. You must provide `resolution` when you set the state to `resolved`. - * * `secret_type: &str` -- A comma separated list of secret types to return. By default all secret types are returned. See "[About secret scanning for private repositories](https://docs.github.com/code-security/secret-security/about-secret-scanning#about-secret-scanning-for-private-repositories)" for a complete list of secret types (API slug). - * * `page: i64` -- Page number of the results to fetch. - * * `per_page: i64` -- Results per page (max 100). + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `state: crate::types::SecretScanningAlertState` -- Sets the state of the secret scanning alert. You must provide `resolution` when you set the state to `resolved`. + * * `secret_type: &str` -- A comma-separated list of secret types to return. All default secret patterns are returned. To return generic patterns, pass the token name(s) in the parameter. See "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)" for a complete list of secret types. + * * `resolution: &str` -- A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. + * * `assignee: &str` -- Filters alerts by assignee. Use `*` to get all assigned alerts, `none` to get all unassigned alerts, or a GitHub username to get alerts assigned to a specific user. + * * `sort: crate::types::SortData` -- The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. + * * `validity: &str` -- A comma-separated list of validities that, when present, will return alerts that match the validities in this list. Valid options are `active`, `inactive`, and `unknown`. + * * `is_publicly_leaked: bool` -- A boolean value representing whether or not to filter alerts by the publicly-leaked tag being present. + * * `is_multi_repo: bool` -- A boolean value representing whether or not to filter alerts by the multi-repo tag being present. + * * `hide_secret: bool` -- A boolean value representing whether or not to hide literal secrets in the results. */ pub async fn list_alerts_for_repo( &self, @@ -37,28 +327,71 @@ impl SecretScanning { repo: &str, state: crate::types::SecretScanningAlertState, secret_type: &str, + resolution: &str, + assignee: &str, + sort: crate::types::SortData, + direction: crate::types::Order, page: i64, per_page: i64, + before: &str, + after: &str, + validity: &str, + is_publicly_leaked: bool, + is_multi_repo: bool, + hide_secret: bool, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignee.is_empty() { + query_args.push(("assignee".to_string(), assignee.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if hide_secret { + query_args.push(("hide_secret".to_string(), hide_secret.to_string())); + } + if is_multi_repo { + query_args.push(("is_multi_repo".to_string(), is_multi_repo.to_string())); + } + if is_publicly_leaked { + query_args.push(( + "is_publicly_leaked".to_string(), + is_publicly_leaked.to_string(), + )); + } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } + if !resolution.is_empty() { + query_args.push(("resolution".to_string(), resolution.to_string())); + } if !secret_type.is_empty() { query_args.push(("secret_type".to_string(), secret_type.to_string())); } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } + if !validity.is_empty() { + query_args.push(("validity".to_string(), validity.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( "/repos/{}/{}/secret-scanning/alerts?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -80,11 +413,13 @@ impl SecretScanning { * * As opposed to `list_alerts_for_repo`, this function returns all the pages of the request at once. * - * Lists all secret scanning alerts for a private repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * Lists secret scanning alerts for an eligible repository, from newest to oldest. * - * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: */ pub async fn list_all_alerts_for_repo( &self, @@ -92,20 +427,63 @@ impl SecretScanning { repo: &str, state: crate::types::SecretScanningAlertState, secret_type: &str, + resolution: &str, + assignee: &str, + sort: crate::types::SortData, + direction: crate::types::Order, + before: &str, + after: &str, + validity: &str, + is_publicly_leaked: bool, + is_multi_repo: bool, + hide_secret: bool, ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !assignee.is_empty() { + query_args.push(("assignee".to_string(), assignee.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if hide_secret { + query_args.push(("hide_secret".to_string(), hide_secret.to_string())); + } + if is_multi_repo { + query_args.push(("is_multi_repo".to_string(), is_multi_repo.to_string())); + } + if is_publicly_leaked { + query_args.push(( + "is_publicly_leaked".to_string(), + is_publicly_leaked.to_string(), + )); + } + if !resolution.is_empty() { + query_args.push(("resolution".to_string(), resolution.to_string())); + } if !secret_type.is_empty() { query_args.push(("secret_type".to_string(), secret_type.to_string())); } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } if !state.to_string().is_empty() { query_args.push(("state".to_string(), state.to_string())); } + if !validity.is_empty() { + query_args.push(("validity".to_string(), validity.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( "/repos/{}/{}/secret-scanning/alerts?{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), query_ ), None, @@ -125,30 +503,40 @@ impl SecretScanning { * * This function performs a `GET` to the `/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}` endpoint. * - * Gets a single secret scanning alert detected in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * Gets a single secret scanning alert detected in an eligible repository. * - * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. + * * `hide_secret: bool` -- A boolean value representing whether or not to hide literal secrets in the results. */ pub async fn get_alert( &self, owner: &str, repo: &str, alert_number: i64, + hide_secret: bool, ) -> ClientResult> { + let mut query_args: Vec<(String, String)> = Default::default(); + if hide_secret { + query_args.push(("hide_secret".to_string(), hide_secret.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/repos/{}/{}/secret-scanning/alerts/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + "/repos/{}/{}/secret-scanning/alerts/{}?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&alert_number.to_string()), + query_ ), None, ); @@ -167,16 +555,20 @@ impl SecretScanning { * * This function performs a `PATCH` to the `/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}` endpoint. * - * Updates the status of a secret scanning alert in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * Updates the status of a secret scanning alert in an eligible repository. + * + * You can also use this endpoint to assign or unassign an alert to a user who has write access to the repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. * - * GitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint. + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. * - * FROM: + * FROM: * * **Parameters:** * - * * `owner: &str` - * * `repo: &str` + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ pub async fn update_alert( @@ -189,8 +581,8 @@ impl SecretScanning { let url = self.client.url( &format!( "/repos/{}/{}/secret-scanning/alerts/{}", - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), crate::progenitor_support::encode_path(&alert_number.to_string()), ), None, @@ -205,4 +597,185 @@ impl SecretScanning { ) .await } + /** + * List locations for a secret scanning alert. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations` endpoint. + * + * Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `alert_number: i64` -- The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + */ + pub async fn list_locations_for_alert( + &self, + owner: &str, + repo: &str, + alert_number: i64, + page: i64, + per_page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/secret-scanning/alerts/{}/locations?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&alert_number.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List locations for a secret scanning alert. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations` endpoint. + * + * As opposed to `list_locations_for_alert`, this function returns all the pages of the request at once. + * + * Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + */ + pub async fn list_all_locations_for_alert( + &self, + owner: &str, + repo: &str, + alert_number: i64, + ) -> ClientResult>> { + let url = self.client.url( + &format!( + "/repos/{}/{}/secret-scanning/alerts/{}/locations", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&alert_number.to_string()), + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a push protection bypass. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/secret-scanning/push-protection-bypasses` endpoint. + * + * Creates a bypass for a previously push protected secret. + * + * The authenticated user must be the original author of the committed secret. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_push_protection_bypass( + &self, + owner: &str, + repo: &str, + body: &crate::types::SecretScanningCreatePushProtectionBypassRequest, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/secret-scanning/push-protection-bypasses", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get secret scanning scan history for a repository. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/secret-scanning/scan-history` endpoint. + * + * Lists the latest default incremental and backfill scans by type for a repository. Scans from Copilot Secret Scanning are not included. + * + * > [!NOTE] + * > This endpoint requires [GitHub Advanced Security](https://docs.github.com/get-started/learning-about-github/about-github-advanced-security)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn get_scan_history( + &self, + owner: &str, + repo: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/secret-scanning/scan-history", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } } diff --git a/github/src/security_advisories.rs b/github/src/security_advisories.rs new file mode 100644 index 00000000..ff66752b --- /dev/null +++ b/github/src/security_advisories.rs @@ -0,0 +1,806 @@ +use crate::Client; +use crate::ClientResult; + +pub struct SecurityAdvisories { + pub client: Client, +} + +impl SecurityAdvisories { + #[doc(hidden)] + pub fn new(client: Client) -> Self { + SecurityAdvisories { client } + } + + /** + * List global security advisories. + * + * This function performs a `GET` to the `/advisories` endpoint. + * + * Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + * + * FROM: + * + * **Parameters:** + * + * * `ghsa_id: &str` -- If specified, only advisories with this GHSA (GitHub Security Advisory) identifier will be returned. + * * `type_: crate::types::Type` -- If specified, only advisories of this type will be returned. By default, a request with no other parameters defined will only return reviewed advisories that are not malware. + * * `cve_id: &str` -- If specified, only advisories with this CVE (Common Vulnerabilities and Exposures) identifier will be returned. + * * `ecosystem: crate::types::SecurityAdvisoryEcosystems` -- If specified, only advisories for these ecosystems will be returned. + * * `severity: crate::types::Severity` -- If specified, only advisories with these severities will be returned. + * * `cwes: &str` -- If specified, only advisories with these Common Weakness Enumerations (CWEs) will be returned. + * + * Example: `cwes=79,284,22` or `cwes[]=79&cwes[]=284&cwes[]=22`. + * * `is_withdrawn: bool` -- Whether to only return advisories that have been withdrawn. + * * `affects: &str` -- If specified, only return advisories that affect any of `package` or `package@version`. A maximum of 1000 packages can be specified. + * If the query parameter causes the URL to exceed the maximum URL length supported by your client, you must specify fewer packages. + * + * Example: `affects=package1,package2@1.0.0,package3@2.0.0` or `affects[]=package1&affects[]=package2@1.0.0`. + * * `published: &str` -- If specified, only return advisories that were published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).". + * * `updated: &str` -- If specified, only return advisories that were updated on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).". + * * `modified: &str` -- If specified, only show advisories that were updated or published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates).". + * * `epss_percentage: &str` -- If specified, only return advisories that have an EPSS percentage score that matches the provided value. + * The EPSS percentage represents the likelihood of a CVE being exploited. + * * `epss_percentile: &str` -- If specified, only return advisories that have an EPSS percentile score that matches the provided value. + * The EPSS percentile represents the relative rank of the CVE's likelihood of being exploited compared to other CVEs. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `sort: crate::types::SecurityAdvisoriesListGlobalSort` -- The property to sort the results by. + */ + pub async fn list_global_advisories( + &self, + ghsa_id: &str, + type_: crate::types::Type, + cve_id: &str, + ecosystem: crate::types::SecurityAdvisoryEcosystems, + severity: crate::types::Severity, + cwes: &str, + is_withdrawn: bool, + affects: &str, + published: &str, + updated: &str, + modified: &str, + epss_percentage: &str, + epss_percentile: &str, + before: &str, + after: &str, + direction: crate::types::Order, + per_page: i64, + sort: crate::types::SecurityAdvisoriesListGlobalSort, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !affects.is_empty() { + query_args.push(("affects".to_string(), affects.to_string())); + } + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !cve_id.is_empty() { + query_args.push(("cve_id".to_string(), cve_id.to_string())); + } + if !cwes.is_empty() { + query_args.push(("cwes".to_string(), cwes.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.to_string().is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !epss_percentile.is_empty() { + query_args.push(("epss_percentile".to_string(), epss_percentile.to_string())); + } + if !ghsa_id.is_empty() { + query_args.push(("ghsa_id".to_string(), ghsa_id.to_string())); + } + if is_withdrawn { + query_args.push(("is_withdrawn".to_string(), is_withdrawn.to_string())); + } + if !modified.is_empty() { + query_args.push(("modified".to_string(), modified.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !published.is_empty() { + query_args.push(("published".to_string(), published.to_string())); + } + if !severity.to_string().is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !type_.to_string().is_empty() { + query_args.push(("type".to_string(), type_.to_string())); + } + if !updated.is_empty() { + query_args.push(("updated".to_string(), updated.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url(&format!("/advisories?{}", query_), None); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List global security advisories. + * + * This function performs a `GET` to the `/advisories` endpoint. + * + * As opposed to `list_global_advisories`, this function returns all the pages of the request at once. + * + * Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + * + * FROM: + */ + pub async fn list_all_global_advisories( + &self, + ghsa_id: &str, + type_: crate::types::Type, + cve_id: &str, + ecosystem: crate::types::SecurityAdvisoryEcosystems, + severity: crate::types::Severity, + cwes: &str, + is_withdrawn: bool, + affects: &str, + published: &str, + updated: &str, + modified: &str, + epss_percentage: &str, + epss_percentile: &str, + before: &str, + after: &str, + direction: crate::types::Order, + sort: crate::types::SecurityAdvisoriesListGlobalSort, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !affects.is_empty() { + query_args.push(("affects".to_string(), affects.to_string())); + } + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !cve_id.is_empty() { + query_args.push(("cve_id".to_string(), cve_id.to_string())); + } + if !cwes.is_empty() { + query_args.push(("cwes".to_string(), cwes.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !ecosystem.to_string().is_empty() { + query_args.push(("ecosystem".to_string(), ecosystem.to_string())); + } + if !epss_percentage.is_empty() { + query_args.push(("epss_percentage".to_string(), epss_percentage.to_string())); + } + if !epss_percentile.is_empty() { + query_args.push(("epss_percentile".to_string(), epss_percentile.to_string())); + } + if !ghsa_id.is_empty() { + query_args.push(("ghsa_id".to_string(), ghsa_id.to_string())); + } + if is_withdrawn { + query_args.push(("is_withdrawn".to_string(), is_withdrawn.to_string())); + } + if !modified.is_empty() { + query_args.push(("modified".to_string(), modified.to_string())); + } + if !published.is_empty() { + query_args.push(("published".to_string(), published.to_string())); + } + if !severity.to_string().is_empty() { + query_args.push(("severity".to_string(), severity.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !type_.to_string().is_empty() { + query_args.push(("type".to_string(), type_.to_string())); + } + if !updated.is_empty() { + query_args.push(("updated".to_string(), updated.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url(&format!("/advisories?{}", query_), None); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Get a global security advisory. + * + * This function performs a `GET` to the `/advisories/{ghsa_id}` endpoint. + * + * Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * FROM: + * + * **Parameters:** + * + * * `ghsa_id: &str` -- The GHSA (GitHub Security Advisory) identifier of the advisory. + */ + pub async fn get_global_advisory( + &self, + ghsa_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/advisories/{}", + crate::progenitor_support::encode_path(&ghsa_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository security advisories for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/security-advisories` endpoint. + * + * Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `sort: crate::types::SecurityAdvisoriesListOrgRepositorySort` -- The property to sort the results by. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `state: crate::types::SecurityAdvisoriesListOrgRepositoryState` -- Filter by the state of the repository advisories. Only advisories of this state will be returned. + */ + pub async fn list_org_repository_advisories( + &self, + org: &str, + direction: crate::types::Order, + sort: crate::types::SecurityAdvisoriesListOrgRepositorySort, + before: &str, + after: &str, + per_page: i64, + state: crate::types::SecurityAdvisoriesListOrgRepositoryState, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/security-advisories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository security advisories for an organization. + * + * This function performs a `GET` to the `/orgs/{org}/security-advisories` endpoint. + * + * As opposed to `list_org_repository_advisories`, this function returns all the pages of the request at once. + * + * Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + * + * FROM: + */ + pub async fn list_all_org_repository_advisories( + &self, + org: &str, + direction: crate::types::Order, + sort: crate::types::SecurityAdvisoriesListOrgRepositorySort, + before: &str, + after: &str, + state: crate::types::SecurityAdvisoriesListOrgRepositoryState, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/orgs/{}/security-advisories?{}", + crate::progenitor_support::encode_path(&org.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository security advisories. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/security-advisories` endpoint. + * + * Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `direction: crate::types::Order` -- Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + * * `sort: crate::types::SecurityAdvisoriesListOrgRepositorySort` -- The property to sort the results by. + * * `before: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `after: &str` -- A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `per_page: i64` -- The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `state: crate::types::SecurityAdvisoriesListOrgRepositoryState` -- Filter by the state of the repository advisories. Only advisories of this state will be returned. + */ + pub async fn list_repository_advisories( + &self, + owner: &str, + repo: &str, + direction: crate::types::Order, + sort: crate::types::SecurityAdvisoriesListOrgRepositorySort, + before: &str, + after: &str, + per_page: i64, + state: crate::types::SecurityAdvisoriesListOrgRepositoryState, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * List repository security advisories. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/security-advisories` endpoint. + * + * As opposed to `list_repository_advisories`, this function returns all the pages of the request at once. + * + * Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + * + * FROM: + */ + pub async fn list_all_repository_advisories( + &self, + owner: &str, + repo: &str, + direction: crate::types::Order, + sort: crate::types::SecurityAdvisoriesListOrgRepositorySort, + before: &str, + after: &str, + state: crate::types::SecurityAdvisoriesListOrgRepositoryState, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !after.is_empty() { + query_args.push(("after".to_string(), after.to_string())); + } + if !before.is_empty() { + query_args.push(("before".to_string(), before.to_string())); + } + if !direction.to_string().is_empty() { + query_args.push(("direction".to_string(), direction.to_string())); + } + if !sort.to_string().is_empty() { + query_args.push(("sort".to_string(), sort.to_string())); + } + if !state.to_string().is_empty() { + query_args.push(("state".to_string(), state.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories?{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + query_ + ), + None, + ); + self.client + .get_all_pages( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a repository security advisory. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/security-advisories` endpoint. + * + * Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_repository_advisory( + &self, + owner: &str, + repo: &str, + body: &crate::types::RepositoryAdvisoryCreate, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Privately report a security vulnerability. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/security-advisories/reports` endpoint. + * + * Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + */ + pub async fn create_private_vulnerability_report( + &self, + owner: &str, + repo: &str, + body: &crate::types::PrivateVulnerabilityReportCreate, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories/reports", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Get a repository security advisory. + * + * This function performs a `GET` to the `/repos/{owner}/{repo}/security-advisories/{ghsa_id}` endpoint. + * + * Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ghsa_id: &str` -- The GHSA (GitHub Security Advisory) identifier of the advisory. + */ + pub async fn get_repository_advisory( + &self, + owner: &str, + repo: &str, + ghsa_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ghsa_id.to_string()), + ), + None, + ); + self.client + .get( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Update a repository security advisory. + * + * This function performs a `PATCH` to the `/repos/{owner}/{repo}/security-advisories/{ghsa_id}` endpoint. + * + * Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ghsa_id: &str` -- The GHSA (GitHub Security Advisory) identifier of the advisory. + */ + pub async fn update_repository_advisory( + &self, + owner: &str, + repo: &str, + ghsa_id: &str, + body: &crate::types::RepositoryAdvisoryUpdate, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories/{}", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ghsa_id.to_string()), + ), + None, + ); + self.client + .patch( + &url, + crate::Message { + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), + }, + ) + .await + } + /** + * Request a CVE for a repository security advisory. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve` endpoint. + * + * If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ghsa_id: &str` -- The GHSA (GitHub Security Advisory) identifier of the advisory. + */ + pub async fn create_repository_advisory_cve_request( + &self, + owner: &str, + repo: &str, + ghsa_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories/{}/cve", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ghsa_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } + /** + * Create a temporary private fork. + * + * This function performs a `POST` to the `/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks` endpoint. + * + * Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * > [!NOTE] + * > Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + * + * FROM: + * + * **Parameters:** + * + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. + * * `ghsa_id: &str` -- The GHSA (GitHub Security Advisory) identifier of the advisory. + */ + pub async fn create_fork( + &self, + owner: &str, + repo: &str, + ghsa_id: &str, + ) -> ClientResult> { + let url = self.client.url( + &format!( + "/repos/{}/{}/security-advisories/{}/forks", + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), + crate::progenitor_support::encode_path(&ghsa_id.to_string()), + ), + None, + ); + self.client + .post( + &url, + crate::Message { + body: None, + content_type: None, + }, + ) + .await + } +} diff --git a/github/src/teams.rs b/github/src/teams.rs index 5bfe8ac8..fcfaf964 100644 --- a/github/src/teams.rs +++ b/github/src/teams.rs @@ -11,57 +11,6 @@ impl Teams { Teams { client } } - /** - * List IdP groups for an organization. - * - * This function performs a `GET` to the `/orgs/{org}/team-sync/groups` endpoint. - * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * List IdP groups available in an organization. You can limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see "[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89)." - * - * The `per_page` parameter provides pagination for a list of IdP groups the authenticated user can access in an organization. For example, if the user `octocat` wants to see two groups per page in `octo-org` via cURL, it would look like this: - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: &str` -- Page token. - */ - pub async fn list_idp_groups_for_org( - &self, - org: &str, - per_page: i64, - page: &str, - ) -> ClientResult> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !page.is_empty() { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/team-sync/groups?{}", - crate::progenitor_support::encode_path(org), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } /** * List teams. * @@ -69,13 +18,13 @@ impl Teams { * * Lists all teams in an organization that are visible to the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list( &self, @@ -94,7 +43,7 @@ impl Teams { let url = self.client.url( &format!( "/orgs/{}/teams?{}", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), query_ ), None, @@ -118,7 +67,7 @@ impl Teams { * * Lists all teams in an organization that are visible to the authenticated user. * - * FROM: + * FROM: */ pub async fn list_all( &self, @@ -127,7 +76,7 @@ impl Teams { let url = self.client.url( &format!( "/orgs/{}/teams", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -146,15 +95,15 @@ impl Teams { * * This function performs a `POST` to the `/orgs/{org}/teams` endpoint. * - * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://help.github.com/en/articles/setting-team-creation-permissions-in-your-organization)." + * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." * - * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)". + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` + * * `org: &str` -- The organization name. The name is not case sensitive. */ pub async fn create( &self, @@ -164,7 +113,7 @@ impl Teams { let url = self.client.url( &format!( "/orgs/{}/teams", - crate::progenitor_support::encode_path(org), + crate::progenitor_support::encode_path(&org.to_string()), ), None, ); @@ -183,16 +132,17 @@ impl Teams { * * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}` endpoint. * - * Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`. + * Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. */ pub async fn get_by_name( &self, @@ -202,8 +152,8 @@ impl Teams { let url = self.client.url( &format!( "/orgs/{}/teams/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); @@ -226,14 +176,15 @@ impl Teams { * * If you are an organization owner, deleting a parent team will delete all of its child teams as well. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. */ pub async fn delete_in_org( &self, @@ -243,8 +194,8 @@ impl Teams { let url = self.client.url( &format!( "/orgs/{}/teams/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); @@ -265,14 +216,15 @@ impl Teams { * * To edit a team, the authenticated user must either be an organization owner or a team maintainer. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. */ pub async fn update_in_org( &self, @@ -283,8 +235,8 @@ impl Teams { let url = self.client.url( &format!( "/orgs/{}/teams/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); @@ -299,55 +251,44 @@ impl Teams { .await } /** - * List discussions. + * List pending team invitations. * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions` endpoint. + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/invitations` endpoint. * - * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - * * `pinned: &str` -- Pinned discussions only filter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_discussions_in_org( + pub async fn list_pending_invitations_in_org( &self, org: &str, team_slug: &str, - direction: crate::types::Order, per_page: i64, page: i64, - pinned: &str, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); - } if page > 0 { query_args.push(("page".to_string(), page.to_string())); } if per_page > 0 { query_args.push(("per_page".to_string(), per_page.to_string())); } - if !pinned.is_empty() { - query_args.push(("pinned".to_string(), pinned.to_string())); - } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), + "/orgs/{}/teams/{}/invitations?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), query_ ), None, @@ -363,39 +304,29 @@ impl Teams { .await } /** - * List discussions. + * List pending team invitations. * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions` endpoint. + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/invitations` endpoint. * - * As opposed to `list_discussions_in_org`, this function returns all the pages of the request at once. + * As opposed to `list_pending_invitations_in_org`, this function returns all the pages of the request at once. * - * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. * - * FROM: + * FROM: */ - pub async fn list_all_discussions_in_org( + pub async fn list_all_pending_invitations_in_org( &self, org: &str, team_slug: &str, - direction: crate::types::Order, - pinned: &str, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); - } - if !pinned.is_empty() { - query_args.push(("pinned".to_string(), pinned.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - query_ + "/orgs/{}/teams/{}/invitations", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); @@ -410,81 +341,97 @@ impl Teams { .await } /** - * Create a discussion. - * - * This function performs a `POST` to the `/orgs/{org}/teams/{team_slug}/discussions` endpoint. + * List team members. * - * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/members` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * Team members will include the members of child teams. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * To list members in a team, the team must be visible to the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `role: crate::types::TeamsListMembersInOrgRole` -- Filters members returned by their role in the team. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn create_discussion_in_org( + pub async fn list_members_in_org( &self, org: &str, team_slug: &str, - body: &crate::types::TeamsCreateDiscussionInOrgRequest, - ) -> ClientResult> { + role: crate::types::TeamsListMembersInOrgRole, + per_page: i64, + page: i64, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } + if !role.to_string().is_empty() { + query_args.push(("role".to_string(), role.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), + "/orgs/{}/teams/{}/members?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + query_ ), None, ); self.client - .post( + .get( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a discussion. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}` endpoint. + * List team members. * - * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/members` endpoint. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * As opposed to `list_members_in_org`, this function returns all the pages of the request at once. * - * FROM: + * Team members will include the members of child teams. * - * **Parameters:** + * To list members in a team, the team must be visible to the authenticated user. * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` + * FROM: */ - pub async fn get_discussion_in_org( + pub async fn list_all_members_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - ) -> ClientResult> { + role: crate::types::TeamsListMembersInOrgRole, + ) -> ClientResult>> { + let mut query_args: Vec<(String, String)> = Default::default(); + if !role.to_string().is_empty() { + query_args.push(("role".to_string(), role.to_string())); + } + let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), + "/orgs/{}/teams/{}/members?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + query_ ), None, ); self.client - .get( + .get_all_pages( &url, crate::Message { body: None, @@ -494,39 +441,47 @@ impl Teams { .await } /** - * Delete a discussion. + * Get team membership for a user. + * + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/memberships/{username}` endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. * - * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}` endpoint. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. * - * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * > [!NOTE] + * > The response contains the `state` of the membership and the member's `role`. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn delete_discussion_in_org( + pub async fn get_membership_for_user_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - ) -> ClientResult> { + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), + "/orgs/{}/teams/{}/memberships/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .delete( + .get( &url, crate::Message { body: None, @@ -536,40 +491,50 @@ impl Teams { .await } /** - * Update a discussion. + * Add or update team membership for a user. + * + * This function performs a `PUT` to the `/orgs/{org}/teams/{team_slug}/memberships/{username}` endpoint. + * + * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * This function performs a `PATCH` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}` endpoint. + * > [!NOTE] + * > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." * - * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn update_discussion_in_org( + pub async fn add_or_update_membership_for_user_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - body: &crate::types::TeamsUpdateDiscussionInOrgRequest, - ) -> ClientResult> { + username: &str, + body: &crate::types::TeamsAddUpdateMembershipUserInOrgRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), + "/orgs/{}/teams/{}/memberships/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .patch( + .put( &url, crate::Message { body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), @@ -579,59 +544,45 @@ impl Teams { .await } /** - * List discussion comments. + * Remove team membership for a user. + * + * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/memberships/{username}` endpoint. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments` endpoint. + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * - * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * > [!NOTE] + * > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `username: &str` -- The handle for the GitHub user account. */ - pub async fn list_discussion_comments_in_org( + pub async fn remove_membership_for_user_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - direction: crate::types::Order, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); + username: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}/comments?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - query_ + "/orgs/{}/teams/{}/memberships/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); self.client - .get( + .delete( &url, crate::Message { body: None, @@ -641,42 +592,50 @@ impl Teams { .await } /** - * List discussion comments. + * List team repositories. + * + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/repos` endpoint. * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments` endpoint. + * Lists a team's repositories visible to the authenticated user. * - * As opposed to `list_discussion_comments_in_org`, this function returns all the pages of the request at once. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. * - * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * FROM: * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * **Parameters:** * - * FROM: + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_all_discussion_comments_in_org( + pub async fn list_repos_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - direction: crate::types::Order, - ) -> ClientResult>> { + per_page: i64, + page: i64, + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); + if page > 0 { + query_args.push(("page".to_string(), page.to_string())); + } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}/comments?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), + "/orgs/{}/teams/{}/repos?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), query_ ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -686,82 +645,81 @@ impl Teams { .await } /** - * Create a discussion comment. - * - * This function performs a `POST` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments` endpoint. - * - * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * List team repositories. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/repos` endpoint. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * As opposed to `list_repos_in_org`, this function returns all the pages of the request at once. * - * FROM: + * Lists a team's repositories visible to the authenticated user. * - * **Parameters:** + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` + * FROM: */ - pub async fn create_discussion_comment_in_org( + pub async fn list_all_repos_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - body: &crate::types::PullsUpdateReviewRequest, - ) -> ClientResult> { + ) -> ClientResult>> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}/comments", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), + "/orgs/{}/teams/{}/repos", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); self.client - .post( + .get_all_pages( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a discussion comment. + * Check team permissions for a repository. + * + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}` endpoint. + * + * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types/) via the `application/vnd.github.v3.repository+json` accept header. * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}` endpoint. + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. * - * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `comment_number: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn get_discussion_comment_in_org( + pub async fn check_permissions_for_repo_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - comment_number: i64, - ) -> ClientResult> { + owner: &str, + repo: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}/comments/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), + "/orgs/{}/teams/{}/repos/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -776,1505 +734,145 @@ impl Teams { .await } /** - * Delete a discussion comment. + * Add or update team repository permissions. + * + * This function performs a `PUT` to the `/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}` endpoint. * - * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}` endpoint. + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." * - * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `comment_number: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn delete_discussion_comment_in_org( + pub async fn add_or_update_repo_permissions_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - comment_number: i64, + owner: &str, + repo: &str, + body: &crate::types::ReposAddCollaboratorRequest, ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}/comments/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), + "/orgs/{}/teams/{}/repos/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .delete( + .put( &url, crate::Message { - body: None, - content_type: None, + body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), + content_type: Some("application/json".to_string()), }, ) .await } /** - * Update a discussion comment. + * Remove a repository from a team. * - * This function performs a `PATCH` to the `/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}` endpoint. + * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}` endpoint. * - * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `discussion_number: i64` - * * `comment_number: i64` + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ - pub async fn update_discussion_comment_in_org( + pub async fn remove_repo_in_org( &self, org: &str, team_slug: &str, - discussion_number: i64, - comment_number: i64, - body: &crate::types::PullsUpdateReviewRequest, - ) -> ClientResult> { + owner: &str, + repo: &str, + ) -> ClientResult> { let url = self.client.url( &format!( - "/orgs/{}/teams/{}/discussions/{}/comments/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), + "/orgs/{}/teams/{}/repos/{}/{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); self.client - .patch( + .delete( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * List pending team invitations. + * List child teams. * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/invitations` endpoint. + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/teams` endpoint. * - * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * Lists the child teams of the team specified by `{team_slug}`. * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. * - * FROM: + * FROM: * * **Parameters:** * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `org: &str` -- The organization name. The name is not case sensitive. + * * `team_slug: &str` -- The slug of the team name. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ - pub async fn list_pending_invitations_in_org( + pub async fn list_child_in_org( &self, org: &str, team_slug: &str, per_page: i64, page: i64, - ) -> ClientResult>> { + ) -> ClientResult>> { let mut query_args: Vec<(String, String)> = Default::default(); if page > 0 { query_args.push(("page".to_string(), page.to_string())); } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/invitations?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List pending team invitations. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/invitations` endpoint. - * - * As opposed to `list_pending_invitations_in_org`, this function returns all the pages of the request at once. - * - * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. - * - * FROM: - */ - pub async fn list_all_pending_invitations_in_org( - &self, - org: &str, - team_slug: &str, - ) -> ClientResult>> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/invitations", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team members. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/members` endpoint. - * - * Team members will include the members of child teams. - * - * To list members in a team, the team must be visible to the authenticated user. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `role: crate::types::TeamsListMembersInOrgRole` -- Filters members returned by their role in the team. Can be one of: - * \\* `member` - normal members of the team. - * \\* `maintainer` - team maintainers. - * \\* `all` - all members of the team. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_members_in_org( - &self, - org: &str, - team_slug: &str, - role: crate::types::TeamsListMembersInOrgRole, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - if !role.to_string().is_empty() { - query_args.push(("role".to_string(), role.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/members?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team members. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/members` endpoint. - * - * As opposed to `list_members_in_org`, this function returns all the pages of the request at once. - * - * Team members will include the members of child teams. - * - * To list members in a team, the team must be visible to the authenticated user. - * - * FROM: - */ - pub async fn list_all_members_in_org( - &self, - org: &str, - team_slug: &str, - role: crate::types::TeamsListMembersInOrgRole, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !role.to_string().is_empty() { - query_args.push(("role".to_string(), role.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/members?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - query_ - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Get team membership for a user. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/memberships/{username}` endpoint. - * - * Team members will include the members of child teams. - * - * To get a user's membership with a team, the team must be visible to the authenticated user. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. - * - * **Note:** - * The response contains the `state` of the membership and the member's `role`. - * - * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `username: &str` - */ - pub async fn get_membership_for_user_in_org( - &self, - org: &str, - team_slug: &str, - username: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/memberships/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(username), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Add or update team membership for a user. - * - * This function performs a `PUT` to the `/orgs/{org}/teams/{team_slug}/memberships/{username}` endpoint. - * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. - * - * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." - * - * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. - * - * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `username: &str` - */ - pub async fn add_or_update_membership_for_user_in_org( - &self, - org: &str, - team_slug: &str, - username: &str, - body: &crate::types::TeamsAddUpdateMembershipUserInOrgRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/memberships/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(username), - ), - None, - ); - self.client - .put( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Remove team membership for a user. - * - * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/memberships/{username}` endpoint. - * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. - * - * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `username: &str` - */ - pub async fn remove_membership_for_user_in_org( - &self, - org: &str, - team_slug: &str, - username: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/memberships/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(username), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team projects. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/projects` endpoint. - * - * Lists the organization projects for a team. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_projects_in_org( - &self, - org: &str, - team_slug: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/projects?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team projects. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/projects` endpoint. - * - * As opposed to `list_projects_in_org`, this function returns all the pages of the request at once. - * - * Lists the organization projects for a team. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. - * - * FROM: - */ - pub async fn list_all_projects_in_org( - &self, - org: &str, - team_slug: &str, - ) -> ClientResult>> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/projects", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Check team permissions for a project. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/projects/{project_id}` endpoint. - * - * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `project_id: i64` - */ - pub async fn check_permissions_for_project_in_org( - &self, - org: &str, - team_slug: &str, - project_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/projects/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&project_id.to_string()), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Add or update team project permissions. - * - * This function performs a `PUT` to the `/orgs/{org}/teams/{team_slug}/projects/{project_id}` endpoint. - * - * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `project_id: i64` - */ - pub async fn add_or_update_project_permissions_in_org( - &self, - org: &str, - team_slug: &str, - project_id: i64, - body: &crate::types::ProjectsAddCollaboratorRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/projects/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&project_id.to_string()), - ), - None, - ); - self.client - .put( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Remove a project from a team. - * - * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/projects/{project_id}` endpoint. - * - * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `project_id: i64` - */ - pub async fn remove_project_in_org( - &self, - org: &str, - team_slug: &str, - project_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/projects/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(&project_id.to_string()), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team repositories. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/repos` endpoint. - * - * Lists a team's repositories visible to the authenticated user. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_repos_in_org( - &self, - org: &str, - team_slug: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/repos?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team repositories. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/repos` endpoint. - * - * As opposed to `list_repos_in_org`, this function returns all the pages of the request at once. - * - * Lists a team's repositories visible to the authenticated user. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. - * - * FROM: - */ - pub async fn list_all_repos_in_org( - &self, - org: &str, - team_slug: &str, - ) -> ClientResult>> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/repos", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Check team permissions for a repository. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}` endpoint. - * - * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. - * - * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. - * - * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `owner: &str` - * * `repo: &str` - */ - pub async fn check_permissions_for_repo_in_org( - &self, - org: &str, - team_slug: &str, - owner: &str, - repo: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/repos/{}/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Add or update team repository permissions. - * - * This function performs a `PUT` to the `/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}` endpoint. - * - * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. - * - * For more information about the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `owner: &str` - * * `repo: &str` - */ - pub async fn add_or_update_repo_permissions_in_org( - &self, - org: &str, - team_slug: &str, - owner: &str, - repo: &str, - body: &crate::types::TeamsAddUpdateRepoPermissionsInOrgRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/repos/{}/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - ), - None, - ); - self.client - .put( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Remove a repository from a team. - * - * This function performs a `DELETE` to the `/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}` endpoint. - * - * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `owner: &str` - * * `repo: &str` - */ - pub async fn remove_repo_in_org( - &self, - org: &str, - team_slug: &str, - owner: &str, - repo: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/repos/{}/{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List IdP groups for a team. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/team-sync/group-mappings` endpoint. - * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * List IdP groups connected to a team on GitHub. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - */ - pub async fn list_idp_groups_in_org( - &self, - org: &str, - team_slug: &str, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/team-sync/group-mappings", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Create or update IdP group connections. - * - * This function performs a `PATCH` to the `/orgs/{org}/teams/{team_slug}/team-sync/group-mappings` endpoint. - * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - */ - pub async fn create_or_update_idp_group_connections_in_org( - &self, - org: &str, - team_slug: &str, - body: &crate::types::TeamsCreateUpdateIdpGroupConnectionsInOrgRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/team-sync/group-mappings", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - ), - None, - ); - self.client - .patch( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * List child teams. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/teams` endpoint. - * - * Lists the child teams of the team specified by `{team_slug}`. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. - * - * FROM: - * - * **Parameters:** - * - * * `org: &str` - * * `team_slug: &str` -- team_slug parameter. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_child_in_org( - &self, - org: &str, - team_slug: &str, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/teams?{}", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List child teams. - * - * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/teams` endpoint. - * - * As opposed to `list_child_in_org`, this function returns all the pages of the request at once. - * - * Lists the child teams of the team specified by `{team_slug}`. - * - * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. - * - * FROM: - */ - pub async fn list_all_child_in_org( - &self, - org: &str, - team_slug: &str, - ) -> ClientResult>> { - let url = self.client.url( - &format!( - "/orgs/{}/teams/{}/teams", - crate::progenitor_support::encode_path(org), - crate::progenitor_support::encode_path(team_slug), - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Get a team (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/reference/teams#get-a-team-by-name) endpoint. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - */ - pub async fn get_legacy( - &self, - team_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Delete a team (Legacy). - * - * This function performs a `DELETE` to the `/teams/{team_id}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/reference/teams#delete-a-team) endpoint. - * - * To delete a team, the authenticated user must be an organization owner or team maintainer. - * - * If you are an organization owner, deleting a parent team will delete all of its child teams as well. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - */ - pub async fn delete_legacy(&self, team_id: i64) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Update a team (Legacy). - * - * This function performs a `PATCH` to the `/teams/{team_id}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/reference/teams#update-a-team) endpoint. - * - * To edit a team, the authenticated user must either be an organization owner or a team maintainer. - * - * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - */ - pub async fn update_legacy( - &self, - team_id: i64, - body: &crate::types::TeamsUpdateInOrgRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - ), - None, - ); - self.client - .patch( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * List discussions (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/reference/teams#list-discussions) endpoint. - * - * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_discussions_legacy( - &self, - team_id: i64, - direction: crate::types::Order, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/teams/{}/discussions?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List discussions (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions` endpoint. - * - * As opposed to `list_discussions_legacy`, this function returns all the pages of the request at once. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/reference/teams#list-discussions) endpoint. - * - * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - */ - pub async fn list_all_discussions_legacy( - &self, - team_id: i64, - direction: crate::types::Order, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/teams/{}/discussions?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - query_ - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Create a discussion (Legacy). - * - * This function performs a `POST` to the `/teams/{team_id}/discussions` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/reference/teams#create-a-discussion) endpoint. - * - * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - */ - pub async fn create_discussion_legacy( - &self, - team_id: i64, - body: &crate::types::TeamsCreateDiscussionInOrgRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/discussions", - crate::progenitor_support::encode_path(&team_id.to_string()), - ), - None, - ); - self.client - .post( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Get a discussion (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/reference/teams#get-a-discussion) endpoint. - * - * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `discussion_number: i64` - */ - pub async fn get_discussion_legacy( - &self, - team_id: i64, - discussion_number: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/discussions/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Delete a discussion (Legacy). - * - * This function performs a `DELETE` to the `/teams/{team_id}/discussions/{discussion_number}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/reference/teams#delete-a-discussion) endpoint. - * - * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `discussion_number: i64` - */ - pub async fn delete_discussion_legacy( - &self, - team_id: i64, - discussion_number: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/discussions/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Update a discussion (Legacy). - * - * This function performs a `PATCH` to the `/teams/{team_id}/discussions/{discussion_number}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/reference/teams#update-a-discussion) endpoint. - * - * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `discussion_number: i64` - */ - pub async fn update_discussion_legacy( - &self, - team_id: i64, - discussion_number: i64, - body: &crate::types::TeamsUpdateDiscussionInOrgRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/discussions/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - ), - None, - ); - self.client - .patch( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * List discussion comments (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}/comments` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/reference/teams#list-discussion-comments) endpoint. - * - * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `discussion_number: i64` - * * `direction: crate::types::Order` -- The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. - * - * The default is `desc`. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_discussion_comments_legacy( - &self, - team_id: i64, - discussion_number: i64, - direction: crate::types::Order, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); - } - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/teams/{}/discussions/{}/comments?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List discussion comments (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}/comments` endpoint. - * - * As opposed to `list_discussion_comments_legacy`, this function returns all the pages of the request at once. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/reference/teams#list-discussion-comments) endpoint. - * - * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). - * - * FROM: - */ - pub async fn list_all_discussion_comments_legacy( - &self, - team_id: i64, - discussion_number: i64, - direction: crate::types::Order, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if !direction.to_string().is_empty() { - query_args.push(("direction".to_string(), direction.to_string())); - } + if per_page > 0 { + query_args.push(("per_page".to_string(), per_page.to_string())); + } let query_ = serde_urlencoded::to_string(&query_args).unwrap(); let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), + "/orgs/{}/teams/{}/teams?{}", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), query_ ), None, ); self.client - .get_all_pages( + .get( &url, crate::Message { body: None, @@ -2284,76 +882,64 @@ impl Teams { .await } /** - * Create a discussion comment (Legacy). - * - * This function performs a `POST` to the `/teams/{team_id}/discussions/{discussion_number}/comments` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/reference/teams#create-a-discussion-comment) endpoint. + * List child teams. * - * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * This function performs a `GET` to the `/orgs/{org}/teams/{team_slug}/teams` endpoint. * - * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * As opposed to `list_child_in_org`, this function returns all the pages of the request at once. * - * FROM: + * Lists the child teams of the team specified by `{team_slug}`. * - * **Parameters:** + * > [!NOTE] + * > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. * - * * `team_id: i64` - * * `discussion_number: i64` + * FROM: */ - pub async fn create_discussion_comment_legacy( + pub async fn list_all_child_in_org( &self, - team_id: i64, - discussion_number: i64, - body: &crate::types::PullsUpdateReviewRequest, - ) -> ClientResult> { + org: &str, + team_slug: &str, + ) -> ClientResult>> { let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), + "/orgs/{}/teams/{}/teams", + crate::progenitor_support::encode_path(&org.to_string()), + crate::progenitor_support::encode_path(&team_slug.to_string()), ), None, ); self.client - .post( + .get_all_pages( &url, crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), + body: None, + content_type: None, }, ) .await } /** - * Get a discussion comment (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}` endpoint. + * Get a team (Legacy). * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/reference/teams#get-a-discussion-comment) endpoint. + * This function performs a `GET` to the `/teams/{team_id}` endpoint. * - * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `discussion_number: i64` - * * `comment_number: i64` + * * `team_id: i64` -- The unique identifier of the team. */ - pub async fn get_discussion_comment_legacy( + pub async fn get_legacy( &self, team_id: i64, - discussion_number: i64, - comment_number: i64, - ) -> ClientResult> { + ) -> ClientResult> { let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments/{}", + "/teams/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), ), None, ); @@ -2368,34 +954,28 @@ impl Teams { .await } /** - * Delete a discussion comment (Legacy). + * Delete a team (Legacy). + * + * This function performs a `DELETE` to the `/teams/{team_id}` endpoint. * - * This function performs a `DELETE` to the `/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}` endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/reference/teams#delete-a-discussion-comment) endpoint. + * To delete a team, the authenticated user must be an organization owner or team maintainer. * - * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `discussion_number: i64` - * * `comment_number: i64` + * * `team_id: i64` -- The unique identifier of the team. */ - pub async fn delete_discussion_comment_legacy( - &self, - team_id: i64, - discussion_number: i64, - comment_number: i64, - ) -> ClientResult> { + pub async fn delete_legacy(&self, team_id: i64) -> ClientResult> { let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments/{}", + "/teams/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), ), None, ); @@ -2410,35 +990,33 @@ impl Teams { .await } /** - * Update a discussion comment (Legacy). + * Update a team (Legacy). * - * This function performs a `PATCH` to the `/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}` endpoint. + * This function performs a `PATCH` to the `/teams/{team_id}` endpoint. + * + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/reference/teams#update-a-discussion-comment) endpoint. + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. * - * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * > [!NOTE] + * > With nested teams, the `privacy` for parent teams cannot be `secret`. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `discussion_number: i64` - * * `comment_number: i64` + * * `team_id: i64` -- The unique identifier of the team. */ - pub async fn update_discussion_comment_legacy( + pub async fn update_legacy( &self, team_id: i64, - discussion_number: i64, - comment_number: i64, - body: &crate::types::PullsUpdateReviewRequest, - ) -> ClientResult> { + body: &crate::types::TeamsUpdateLegacyRequest, + ) -> ClientResult> { let url = self.client.url( &format!( - "/teams/{}/discussions/{}/comments/{}", + "/teams/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&discussion_number.to_string()), - crate::progenitor_support::encode_path(&comment_number.to_string()), ), None, ); @@ -2457,17 +1035,18 @@ impl Teams { * * This function performs a `GET` to the `/teams/{team_id}/invitations` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/reference/teams#list-pending-team-invitations) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. * * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `team_id: i64` -- The unique identifier of the team. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_pending_invitations_legacy( &self, @@ -2508,11 +1087,12 @@ impl Teams { * * As opposed to `list_pending_invitations_legacy`, this function returns all the pages of the request at once. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/reference/teams#list-pending-team-invitations) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. * * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. * - * FROM: + * FROM: */ pub async fn list_all_pending_invitations_legacy( &self, @@ -2540,21 +1120,19 @@ impl Teams { * * This function performs a `GET` to the `/teams/{team_id}/members` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/reference/teams#list-team-members) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. * * Team members will include the members of child teams. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `role: crate::types::TeamsListMembersInOrgRole` -- Filters members returned by their role in the team. Can be one of: - * \\* `member` - normal members of the team. - * \\* `maintainer` - team maintainers. - * \\* `all` - all members of the team. - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `team_id: i64` -- The unique identifier of the team. + * * `role: crate::types::TeamsListMembersInOrgRole` -- Filters members returned by their role in the team. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_members_legacy( &self, @@ -2599,11 +1177,12 @@ impl Teams { * * As opposed to `list_members_legacy`, this function returns all the pages of the request at once. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/reference/teams#list-team-members) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. * * Team members will include the members of child teams. * - * FROM: + * FROM: */ pub async fn list_all_members_legacy( &self, @@ -2638,18 +1217,18 @@ impl Teams { * * This function performs a `GET` to the `/teams/{team_id}/members/{username}` endpoint. * - * The "Get team member" endpoint (described below) is deprecated. + * The "Get team member" endpoint (described below) is closing down. * - * We recommend using the [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. * * To list members in a team, the team must be visible to the authenticated user. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `username: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn get_member_legacy( &self, @@ -2660,7 +1239,7 @@ impl Teams { &format!( "/teams/{}/members/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -2679,24 +1258,25 @@ impl Teams { * * This function performs a `PUT` to the `/teams/{team_id}/members/{username}` endpoint. * - * The "Add team member" endpoint (described below) is deprecated. + * The "Add team member" endpoint (described below) is closing down. * - * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. * - * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * > [!NOTE] + * > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." * - * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `username: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn add_member_legacy( &self, @@ -2707,7 +1287,7 @@ impl Teams { &format!( "/teams/{}/members/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -2726,22 +1306,23 @@ impl Teams { * * This function performs a `DELETE` to the `/teams/{team_id}/members/{username}` endpoint. * - * The "Remove team member" endpoint (described below) is deprecated. + * The "Remove team member" endpoint (described below) is closing down. * - * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. * - * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * > [!NOTE] + * > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `username: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn remove_member_legacy( &self, @@ -2752,7 +1333,7 @@ impl Teams { &format!( "/teams/{}/members/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -2771,7 +1352,8 @@ impl Teams { * * This function performs a `GET` to the `/teams/{team_id}/memberships/{username}` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. * * Team members will include the members of child teams. * @@ -2780,14 +1362,14 @@ impl Teams { * **Note:** * The response contains the `state` of the membership and the member's `role`. * - * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `username: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn get_membership_for_user_legacy( &self, @@ -2798,7 +1380,7 @@ impl Teams { &format!( "/teams/{}/memberships/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -2817,24 +1399,26 @@ impl Teams { * * This function performs a `PUT` to the `/teams/{team_id}/memberships/{username}` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. * - * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * > [!NOTE] + * > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." * * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. * * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `username: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn add_or_update_membership_for_user_legacy( &self, @@ -2846,7 +1430,7 @@ impl Teams { &format!( "/teams/{}/memberships/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(username), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -2865,20 +1449,22 @@ impl Teams { * * This function performs a `DELETE` to the `/teams/{team_id}/memberships/{username}` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. * * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. * - * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * > [!NOTE] + * > When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `username: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `username: &str` -- The handle for the GitHub user account. */ pub async fn remove_membership_for_user_legacy( &self, @@ -2889,208 +1475,7 @@ impl Teams { &format!( "/teams/{}/memberships/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(username), - ), - None, - ); - self.client - .delete( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team projects (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/projects` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/reference/teams#list-team-projects) endpoint. - * - * Lists the organization projects for a team. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. - */ - pub async fn list_projects_legacy( - &self, - team_id: i64, - per_page: i64, - page: i64, - ) -> ClientResult>> { - let mut query_args: Vec<(String, String)> = Default::default(); - if page > 0 { - query_args.push(("page".to_string(), page.to_string())); - } - if per_page > 0 { - query_args.push(("per_page".to_string(), per_page.to_string())); - } - let query_ = serde_urlencoded::to_string(&query_args).unwrap(); - let url = self.client.url( - &format!( - "/teams/{}/projects?{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - query_ - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * List team projects (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/projects` endpoint. - * - * As opposed to `list_projects_legacy`, this function returns all the pages of the request at once. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/reference/teams#list-team-projects) endpoint. - * - * Lists the organization projects for a team. - * - * FROM: - */ - pub async fn list_all_projects_legacy( - &self, - team_id: i64, - ) -> ClientResult>> { - let url = self.client.url( - &format!( - "/teams/{}/projects", - crate::progenitor_support::encode_path(&team_id.to_string()), - ), - None, - ); - self.client - .get_all_pages( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Check team permissions for a project (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/projects/{project_id}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project) endpoint. - * - * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `project_id: i64` - */ - pub async fn check_permissions_for_project_legacy( - &self, - team_id: i64, - project_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/projects/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&project_id.to_string()), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Add or update team project permissions (Legacy). - * - * This function performs a `PUT` to the `/teams/{team_id}/projects/{project_id}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions) endpoint. - * - * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `project_id: i64` - */ - pub async fn add_or_update_project_permissions_legacy( - &self, - team_id: i64, - project_id: i64, - body: &crate::types::TeamsAddUpdateProjectPermissionsLegacyRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/projects/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&project_id.to_string()), - ), - None, - ); - self.client - .put( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } - /** - * Remove a project from a team (Legacy). - * - * This function performs a `DELETE` to the `/teams/{team_id}/projects/{project_id}` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team) endpoint. - * - * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - * * `project_id: i64` - */ - pub async fn remove_project_legacy( - &self, - team_id: i64, - project_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/projects/{}", - crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(&project_id.to_string()), + crate::progenitor_support::encode_path(&username.to_string()), ), None, ); @@ -3109,15 +1494,16 @@ impl Teams { * * This function performs a `GET` to the `/teams/{team_id}/repos` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/reference/teams#list-team-repositories) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `team_id: i64` -- The unique identifier of the team. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_repos_legacy( &self, @@ -3158,9 +1544,10 @@ impl Teams { * * As opposed to `list_repos_legacy`, this function returns all the pages of the request at once. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/reference/teams#list-team-repositories) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. * - * FROM: + * FROM: */ pub async fn list_all_repos_legacy( &self, @@ -3188,19 +1575,21 @@ impl Teams { * * This function performs a `GET` to the `/teams/{team_id}/repos/{owner}/{repo}` endpoint. * - * **Note**: Repositories inherited through a parent team will also be checked. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-repository) endpoint. + * > [!NOTE] + * > Repositories inherited through a parent team will also be checked. * - * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types/) via the `Accept` header: * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `owner: &str` - * * `repo: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn check_permissions_for_repo_legacy( &self, @@ -3212,8 +1601,8 @@ impl Teams { &format!( "/teams/{}/repos/{}/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -3232,19 +1621,20 @@ impl Teams { * * This function performs a `PUT` to the `/teams/{team_id}/repos/{owner}/{repo}` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-repository-permissions)" endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. * * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. * - * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `owner: &str` - * * `repo: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn add_or_update_repo_permissions_legacy( &self, @@ -3257,8 +1647,8 @@ impl Teams { &format!( "/teams/{}/repos/{}/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -3277,17 +1667,18 @@ impl Teams { * * This function performs a `DELETE` to the `/teams/{team_id}/repos/{owner}/{repo}` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/reference/teams#remove-a-repository-from-a-team) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. * * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `owner: &str` - * * `repo: &str` + * * `team_id: i64` -- The unique identifier of the team. + * * `owner: &str` -- The account owner of the repository. The name is not case sensitive. + * * `repo: &str` -- The name of the repository without the `.git` extension. The name is not case sensitive. */ pub async fn remove_repo_legacy( &self, @@ -3299,8 +1690,8 @@ impl Teams { &format!( "/teams/{}/repos/{}/{}", crate::progenitor_support::encode_path(&team_id.to_string()), - crate::progenitor_support::encode_path(owner), - crate::progenitor_support::encode_path(repo), + crate::progenitor_support::encode_path(&owner.to_string()), + crate::progenitor_support::encode_path(&repo.to_string()), ), None, ); @@ -3314,97 +1705,21 @@ impl Teams { ) .await } - /** - * List IdP groups for a team (Legacy). - * - * This function performs a `GET` to the `/teams/{team_id}/team-sync/group-mappings` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List IdP groups for a team`](https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team) endpoint. - * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * List IdP groups connected to a team on GitHub. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - */ - pub async fn list_idp_groups_for_legacy( - &self, - team_id: i64, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/team-sync/group-mappings", - crate::progenitor_support::encode_path(&team_id.to_string()), - ), - None, - ); - self.client - .get( - &url, - crate::Message { - body: None, - content_type: None, - }, - ) - .await - } - /** - * Create or update IdP group connections (Legacy). - * - * This function performs a `PATCH` to the `/teams/{team_id}/team-sync/group-mappings` endpoint. - * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create or update IdP group connections`](https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections) endpoint. - * - * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. - * - * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. - * - * FROM: - * - * **Parameters:** - * - * * `team_id: i64` - */ - pub async fn create_or_update_idp_group_connections_legacy( - &self, - team_id: i64, - body: &crate::types::TeamsCreateUpdateIdpGroupConnectionsLegacyRequest, - ) -> ClientResult> { - let url = self.client.url( - &format!( - "/teams/{}/team-sync/group-mappings", - crate::progenitor_support::encode_path(&team_id.to_string()), - ), - None, - ); - self.client - .patch( - &url, - crate::Message { - body: Some(reqwest::Body::from(serde_json::to_vec(body)?)), - content_type: Some("application/json".to_string()), - }, - ) - .await - } /** * List child teams (Legacy). * * This function performs a `GET` to the `/teams/{team_id}/teams` endpoint. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/reference/teams#list-child-teams) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. * - * FROM: + * FROM: * * **Parameters:** * - * * `team_id: i64` - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `team_id: i64` -- The unique identifier of the team. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_child_legacy( &self, @@ -3445,9 +1760,10 @@ impl Teams { * * As opposed to `list_child_legacy`, this function returns all the pages of the request at once. * - * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/reference/teams#list-child-teams) endpoint. + * > [!WARNING] + * > **Endpoint closing down notice:** This endpoint route is closing down and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. * - * FROM: + * FROM: */ pub async fn list_all_child_legacy( &self, @@ -3475,14 +1791,19 @@ impl Teams { * * This function performs a `GET` to the `/user/teams` endpoint. * - * List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/). + * List all of the teams across all of the organizations to which the authenticated + * user belongs. * - * FROM: + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + * + * FROM: * * **Parameters:** * - * * `per_page: i64` -- Results per page (max 100). - * * `page: i64` -- Page number of the results to fetch. + * * `per_page: i64` -- The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". + * * `page: i64` -- The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api).". */ pub async fn list_for_authenticated_user( &self, @@ -3515,14 +1836,19 @@ impl Teams { * * As opposed to `list_for_authenticated_user`, this function returns all the pages of the request at once. * - * List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/). + * List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. * - * FROM: + * FROM: */ pub async fn list_all_for_authenticated_user( &self, ) -> ClientResult>> { - let url = self.client.url("/user/teams", None); + let url = self.client.url(&"/user/teams".to_string(), None); self.client .get_all_pages( &url, diff --git a/github/src/types.rs b/github/src/types.rs index 8d96b9a5..2470b726 100644 --- a/github/src/types.rs +++ b/github/src/types.rs @@ -2,449 +2,429 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -/// Simple User #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct SimpleUser { +pub struct Root { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub avatar_url: String, + pub authorizations_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub email: String, + pub code_search_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub events_url: String, + pub commit_search_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub followers_url: String, + pub current_user_authorizations_html_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub following_url: String, + pub current_user_repositories_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub gists_url: String, + pub current_user_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub gravatar_id: String, + pub emails_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub html_url: String, - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub id: i64, + pub emojis_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub login: String, + pub events_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, + pub feeds_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub node_id: String, + pub followers_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub organizations_url: String, + pub following_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub received_events_url: String, + pub gists_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub repos_url: String, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub site_admin: bool, + pub hub_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub starred_at: String, + pub issue_search_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub starred_url: String, + pub issues_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub subscriptions_url: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize", - rename = "type" - )] - pub type_: String, + pub keys_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, -} - -/// The set of permissions for the GitHub app -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Permissions { + pub label_search_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub checks: String, + pub notifications_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub contents: String, + pub organization_repositories_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub deployments: String, + pub organization_teams_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub issues: String, + pub organization_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub metadata: String, -} - -/// GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct GitHubApp { + pub public_gists_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub client_id: String, + pub rate_limit_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub client_secret: String, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub created_at: Option>, + pub repository_search_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub description: String, - /** - * The list of events for the GitHub app - */ - #[serde( - default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" - )] - pub events: Vec, + pub repository_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub external_url: String, + pub starred_gists_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub html_url: String, - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub id: i64, - /** - * GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. - */ - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub installations_count: i64, + pub starred_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, + pub topic_search_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub node_id: String, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub owner: Option, + pub user_organizations_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub pem: String, - /** - * The set of permissions for the GitHub app - */ - pub permissions: Permissions, + pub user_repositories_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub slug: String, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub updated_at: Option>, + pub user_search_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub webhook_secret: String, + pub user_url: String, } -/// Basic Error +/** + * The package's language or package management ecosystem. + */ #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct BasicError { +pub enum SecurityAdvisoryEcosystems { + #[serde(rename = "actions")] + Actions, + #[serde(rename = "composer")] + Composer, + #[serde(rename = "erlang")] + Erlang, + #[serde(rename = "go")] + Go, + #[serde(rename = "maven")] + Maven, + #[serde(rename = "npm")] + Npm, + #[serde(rename = "nuget")] + Nuget, + #[serde(rename = "other")] + Other, + #[serde(rename = "pip")] + Pip, + #[serde(rename = "pub")] + Pub, + #[serde(rename = "rubygems")] + Rubygems, + #[serde(rename = "rust")] + Rust, + #[serde(rename = "swift")] + Swift, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for SecurityAdvisoryEcosystems { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + SecurityAdvisoryEcosystems::Actions => "actions", + SecurityAdvisoryEcosystems::Composer => "composer", + SecurityAdvisoryEcosystems::Erlang => "erlang", + SecurityAdvisoryEcosystems::Go => "go", + SecurityAdvisoryEcosystems::Maven => "maven", + SecurityAdvisoryEcosystems::Npm => "npm", + SecurityAdvisoryEcosystems::Nuget => "nuget", + SecurityAdvisoryEcosystems::Other => "other", + SecurityAdvisoryEcosystems::Pip => "pip", + SecurityAdvisoryEcosystems::Pub => "pub", + SecurityAdvisoryEcosystems::Rubygems => "rubygems", + SecurityAdvisoryEcosystems::Rust => "rust", + SecurityAdvisoryEcosystems::Swift => "swift", + SecurityAdvisoryEcosystems::Noop => "", + SecurityAdvisoryEcosystems::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for SecurityAdvisoryEcosystems { + fn default() -> SecurityAdvisoryEcosystems { + SecurityAdvisoryEcosystems::Noop + } +} +impl SecurityAdvisoryEcosystems { + pub fn is_noop(&self) -> bool { + matches!(self, SecurityAdvisoryEcosystems::Noop) + } +} + +/// The name of the package affected by the vulnerability. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Package { + /** + * The package's language or package management ecosystem. + */ + pub ecosystem: SecurityAdvisoryEcosystems, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub documentation_url: String, + pub name: String, +} + +/// A vulnerability describing the product and its affected versions within a GitHub Security Advisory. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Vulnerability { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub message: String, + pub first_patched_version: String, + /** + * The name of the package affected by the vulnerability. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub package: Option, + /** + * The functions in the package that are affected by the vulnerability. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" )] - pub status: String, + pub vulnerable_functions: Vec, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, + pub vulnerable_version_range: String, } -/// Validation Error Simple #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ValidationErrorSimple { - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub documentation_url: String, +pub struct Cvss { /** - * Validation Error Simple + * The CVSS 3 score. */ #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "crate::utils::zero_f64", + deserialize_with = "crate::utils::deserialize_null_f64::deserialize" )] - pub errors: Vec, + pub score: f64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub message: String, + pub vector_string: String, } -/// All of the following types: -/// -/// - `String` -/// - `f64` -/// -/// You can easily convert this enum to the inner value with `From` and `Into`, as both are implemented for each type. -/// #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -#[serde(untagged)] -pub enum WebhookConfigInsecureSslOneOf { - String(String), - F64(f64), -} - -impl WebhookConfigInsecureSslOneOf { - pub fn f64(&self) -> Option<&f64> { - if let WebhookConfigInsecureSslOneOf::F64(ref_) = self { - return Some(ref_); - } - None - } - - pub fn string(&self) -> Option<&String> { - if let WebhookConfigInsecureSslOneOf::String(ref_) = self { - return Some(ref_); - } - None - } -} - -impl std::convert::From for WebhookConfigInsecureSslOneOf { - fn from(f: f64) -> Self { - WebhookConfigInsecureSslOneOf::F64(f) - } -} - -impl std::convert::From for WebhookConfigInsecureSslOneOf { - fn from(f: String) -> Self { - WebhookConfigInsecureSslOneOf::String(f) - } +pub struct CvssSeverities { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "cvss_v3")] + pub cvss_v_3: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "cvss_v4")] + pub cvss_v_4: Option, } -impl std::convert::From for f64 { - fn from(f: WebhookConfigInsecureSslOneOf) -> Self { - *f.f64().unwrap() - } -} - -impl std::convert::From for String { - fn from(f: WebhookConfigInsecureSslOneOf) -> Self { - f.string().unwrap().clone() - } +/// The EPSS scores as calculated by the [Exploit Prediction Scoring System](https://www.first.org/epss). +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct SecurityAdvisoryEpss { + /** + * The CVSS 3 score. + */ + #[serde( + default, + skip_serializing_if = "crate::utils::zero_f64", + deserialize_with = "crate::utils::deserialize_null_f64::deserialize" + )] + pub percentage: f64, + /** + * The CVSS 3 score. + */ + #[serde( + default, + skip_serializing_if = "crate::utils::zero_f64", + deserialize_with = "crate::utils::deserialize_null_f64::deserialize" + )] + pub percentile: f64, } -/// Configuration object of the webhook +/// A GitHub user. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct WebhookConfig { +pub struct SimpleUser { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub content_type: String, + pub avatar_url: String, /** - * Configuration object of the webhook + * A GitHub user. */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub insecure_ssl: Option, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub secret: String, + pub email: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, -} - -/// Delivery made by a webhook, without request and response information. -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct HookDeliveryItem { + pub events_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub action: String, + pub followers_url: String, #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub delivered_at: Option>, + pub following_url: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_f64", - deserialize_with = "crate::utils::deserialize_null_f64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub duration: f64, + pub gists_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub event: String, + pub gravatar_id: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub guid: String, + pub html_url: String, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", @@ -453,328 +433,553 @@ pub struct HookDeliveryItem { pub id: i64, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub installation_id: i64, + pub login: String, + /** + * A GitHub user. + */ #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub redelivery: bool, + pub name: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub repository_id: i64, + pub node_id: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub status: String, + pub organizations_url: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub status_code: i64, -} - -/// Scim Error -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ScimError { + pub received_events_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub detail: String, + pub repos_url: String, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub site_admin: bool, + /** + * A GitHub user. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub documentation_url: String, + pub starred_at: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub message: String, - /** - * Scim Error - */ + pub starred_url: String, #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub schemas: Vec, + pub subscriptions_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize", - rename = "scimType" + rename = "type" )] - pub scim_type: String, + pub type_: String, + #[serde( + default, + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" + )] + pub url: String, /** - * Scim Error + * A GitHub user. */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub status: i64, + pub user_view_type: String, } -/// All of the following types: -/// -/// - `String` -/// - `i64` -/// - `Vec` -/// -/// You can easily convert this enum to the inner value with `From` and `Into`, as both are implemented for each type. -/// +/** + * The type of credit the user is receiving. + */ #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -#[serde(untagged)] -pub enum ValueOneOf { - String(String), - I64(i64), - /** - * The list of events for the GitHub app - */ - StringVector(Vec), +pub enum SecurityAdvisoryCreditTypes { + #[serde(rename = "analyst")] + Analyst, + #[serde(rename = "coordinator")] + Coordinator, + #[serde(rename = "finder")] + Finder, + #[serde(rename = "other")] + Other, + #[serde(rename = "remediation_developer")] + RemediationDeveloper, + #[serde(rename = "remediation_reviewer")] + RemediationReviewer, + #[serde(rename = "remediation_verifier")] + RemediationVerifier, + #[serde(rename = "reporter")] + Reporter, + #[serde(rename = "sponsor")] + Sponsor, + #[serde(rename = "tool")] + Tool, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, } -impl ValueOneOf { - pub fn i64(&self) -> Option<&i64> { - if let ValueOneOf::I64(ref_) = self { - return Some(ref_); +impl std::fmt::Display for SecurityAdvisoryCreditTypes { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + SecurityAdvisoryCreditTypes::Analyst => "analyst", + SecurityAdvisoryCreditTypes::Coordinator => "coordinator", + SecurityAdvisoryCreditTypes::Finder => "finder", + SecurityAdvisoryCreditTypes::Other => "other", + SecurityAdvisoryCreditTypes::RemediationDeveloper => "remediation_developer", + SecurityAdvisoryCreditTypes::RemediationReviewer => "remediation_reviewer", + SecurityAdvisoryCreditTypes::RemediationVerifier => "remediation_verifier", + SecurityAdvisoryCreditTypes::Reporter => "reporter", + SecurityAdvisoryCreditTypes::Sponsor => "sponsor", + SecurityAdvisoryCreditTypes::Tool => "tool", + SecurityAdvisoryCreditTypes::Noop => "", + SecurityAdvisoryCreditTypes::FallthroughString => "*", } - None + .fmt(f) } +} - pub fn string(&self) -> Option<&String> { - if let ValueOneOf::String(ref_) = self { - return Some(ref_); - } - None +impl Default for SecurityAdvisoryCreditTypes { + fn default() -> SecurityAdvisoryCreditTypes { + SecurityAdvisoryCreditTypes::Noop + } +} +impl SecurityAdvisoryCreditTypes { + pub fn is_noop(&self) -> bool { + matches!(self, SecurityAdvisoryCreditTypes::Noop) } +} - pub fn vec_string(&self) -> Option<&Vec> { - if let ValueOneOf::StringVector(ref_) = self { - return Some(ref_); +/** + * The type of advisory. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum Type { + #[serde(rename = "malware")] + Malware, + #[serde(rename = "reviewed")] + Reviewed, + #[serde(rename = "unreviewed")] + Unreviewed, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for Type { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Type::Malware => "malware", + Type::Reviewed => "reviewed", + Type::Unreviewed => "unreviewed", + Type::Noop => "", + Type::FallthroughString => "*", } - None + .fmt(f) } } -impl std::convert::From for ValueOneOf { - fn from(f: i64) -> Self { - ValueOneOf::I64(f) +impl Default for Type { + fn default() -> Type { + Type::Noop } } - -impl std::convert::From for ValueOneOf { - fn from(f: String) -> Self { - ValueOneOf::String(f) +impl Type { + pub fn is_noop(&self) -> bool { + matches!(self, Type::Noop) } } -impl std::convert::From> for ValueOneOf { - fn from(f: Vec) -> Self { - ValueOneOf::StringVector(f) +/** + * The severity of the advisory. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum Severity { + #[serde(rename = "critical")] + Critical, + #[serde(rename = "high")] + High, + #[serde(rename = "low")] + Low, + #[serde(rename = "medium")] + Medium, + #[serde(rename = "unknown")] + Unknown, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for Severity { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Severity::Critical => "critical", + Severity::High => "high", + Severity::Low => "low", + Severity::Medium => "medium", + Severity::Unknown => "unknown", + Severity::Noop => "", + Severity::FallthroughString => "*", + } + .fmt(f) } } -impl std::convert::From for i64 { - fn from(f: ValueOneOf) -> Self { - *f.i64().unwrap() +impl Default for Severity { + fn default() -> Severity { + Severity::Noop + } +} +impl Severity { + pub fn is_noop(&self) -> bool { + matches!(self, Severity::Noop) } } -impl std::convert::From for String { - fn from(f: ValueOneOf) -> Self { - f.string().unwrap().clone() +/** + * The type of identifier. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum GlobalAdvisoryIdentifiersType { + #[serde(rename = "CVE")] + Cve, + #[serde(rename = "GHSA")] + Ghsa, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for GlobalAdvisoryIdentifiersType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + GlobalAdvisoryIdentifiersType::Cve => "CVE", + GlobalAdvisoryIdentifiersType::Ghsa => "GHSA", + GlobalAdvisoryIdentifiersType::Noop => "", + GlobalAdvisoryIdentifiersType::FallthroughString => "*", + } + .fmt(f) } } -impl std::convert::From for Vec { - fn from(f: ValueOneOf) -> Self { - f.vec_string().unwrap().clone() +impl Default for GlobalAdvisoryIdentifiersType { + fn default() -> GlobalAdvisoryIdentifiersType { + GlobalAdvisoryIdentifiersType::Noop + } +} +impl GlobalAdvisoryIdentifiersType { + pub fn is_noop(&self) -> bool { + matches!(self, GlobalAdvisoryIdentifiersType::Noop) } } #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Errors { +pub struct Identifiers { + /** + * The type of identifier. + */ + #[serde( + default, + skip_serializing_if = "GlobalAdvisoryIdentifiersType::is_noop", + rename = "type" + )] + pub type_: GlobalAdvisoryIdentifiersType, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub code: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Cwes { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub field: String, + pub cwe_id: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub index: i64, + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" + )] + pub name: String, +} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Credits { + /** + * The type of credit the user is receiving. + */ + #[serde(rename = "type")] + pub type_: SecurityAdvisoryCreditTypes, + /** + * A GitHub user. + */ + pub user: SimpleUser, +} + +/// A GitHub Security Advisory. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct GlobalAdvisory { + /** + * The users who contributed to the advisory. + */ + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub credits: Vec, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub message: String, + pub cve_id: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cvss: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cvss_severities: Option, + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub cwes: Vec, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub resource: String, + pub description: String, + /** + * The EPSS scores as calculated by the [Exploit Prediction Scoring System](https://www.first.org/epss). + */ #[serde(default, skip_serializing_if = "Option::is_none")] - pub value: Option, -} - -/// Validation Error -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ValidationError { + pub epss: Option, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub documentation_url: String, + pub ghsa_id: String, /** - * Validation Error + * The date and time of when the advisory was published, in ISO 8601 format. */ #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub errors: Vec, + pub github_reviewed_at: Option>, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub message: String, -} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Data {} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Request { + pub html_url: String, + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub identifiers: Vec, /** - * The request headers sent with the webhook delivery. + * The date and time of when the advisory was published, in ISO 8601 format. */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub headers: Option, + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub nvd_published_at: Option>, /** - * The request headers sent with the webhook delivery. + * The date and time of when the advisory was published, in ISO 8601 format. */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub payload: Option, -} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Response { + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub published_at: Option>, /** - * The request headers sent with the webhook delivery. + * The functions in the package that are affected by the vulnerability. */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub headers: Option, + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub references: Vec, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub payload: String, -} - -/// Delivery made by a webhook. -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct HookDelivery { + pub repository_advisory_url: String, + /** + * The severity of the advisory. + */ + #[serde(default, skip_serializing_if = "Severity::is_noop")] + pub severity: Severity, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub action: String, + pub source_code_location: String, + #[serde( + default, + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" + )] + pub summary: String, + /** + * The type of advisory. + */ + #[serde(default, skip_serializing_if = "Type::is_noop", rename = "type")] + pub type_: Type, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub delivered_at: Option>, + pub updated_at: Option>, #[serde( default, - skip_serializing_if = "crate::utils::zero_f64", - deserialize_with = "crate::utils::deserialize_null_f64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub duration: f64, + pub url: String, + /** + * The products and respective version ranges affected by the advisory. + */ + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub vulnerabilities: Vec, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub withdrawn_at: Option>, +} + +/// Basic Error +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct BasicError { + /** + * Basic Error + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub event: String, + pub documentation_url: String, + /** + * Basic Error + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub guid: String, + pub message: String, + /** + * Basic Error + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub id: i64, + pub status: String, + /** + * Basic Error + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub installation_id: i64, + pub url: String, +} + +/// Validation Error Simple +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct ValidationErrorSimple { #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub redelivery: bool, + pub documentation_url: String, + /** + * The functions in the package that are affected by the vulnerability. + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" )] - pub repository_id: i64, - pub request: Request, - pub response: Response, + pub errors: Vec, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub status: String, - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub status_code: i64, + pub message: String, } -/// An enterprise account +/// An enterprise on GitHub. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] pub struct Enterprise { #[serde( @@ -783,12 +988,18 @@ pub struct Enterprise { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub avatar_url: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", deserialize_with = "crate::utils::date_time_format::deserialize" )] pub created_at: Option>, + /** + * An enterprise on GitHub. + */ #[serde( default, skip_serializing_if = "String::is_empty", @@ -825,12 +1036,18 @@ pub struct Enterprise { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub slug: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", deserialize_with = "crate::utils::date_time_format::deserialize" )] pub updated_at: Option>, + /** + * An enterprise on GitHub. + */ #[serde( default, skip_serializing_if = "String::is_empty", @@ -839,506 +1056,278 @@ pub struct Enterprise { pub website_url: String, } -/** - * The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. Can be one of: `read` or `write`. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum Pages { - #[serde(rename = "read")] - Read, - #[serde(rename = "write")] - Write, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for Pages { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Pages::Read => "read", - Pages::Write => "write", - Pages::Noop => "", - Pages::FallthroughString => "*", - } - .fmt(f) - } -} - -impl Pages { - pub fn is_noop(&self) -> bool { - matches!(self, Pages::Noop) - } -} - -/** - * The level of permission to grant the access token to manage repository projects, columns, and cards. Can be one of: `read`, `write`, or `admin`. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum RepositoryProjects { - #[serde(rename = "admin")] - Admin, - #[serde(rename = "read")] - Read, - #[serde(rename = "write")] - Write, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for RepositoryProjects { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - RepositoryProjects::Admin => "admin", - RepositoryProjects::Read => "read", - RepositoryProjects::Write => "write", - RepositoryProjects::Noop => "", - RepositoryProjects::FallthroughString => "*", - } - .fmt(f) - } -} - -impl RepositoryProjects { - pub fn is_noop(&self) -> bool { - matches!(self, RepositoryProjects::Noop) - } -} - -/** - * The level of permission to grant the access token for viewing an organization's plan. Can be one of: `read`. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum OrganizationPlan { - #[serde(rename = "read")] - Read, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for OrganizationPlan { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - OrganizationPlan::Read => "read", - OrganizationPlan::Noop => "", - OrganizationPlan::FallthroughString => "*", - } - .fmt(f) - } -} - -impl OrganizationPlan { - pub fn is_noop(&self) -> bool { - matches!(self, OrganizationPlan::Noop) - } -} - -/** - * The level of permission to grant the access token to update GitHub Actions workflow files. Can be one of: `write`. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum Workflows { - #[serde(rename = "write")] - Write, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for Workflows { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Workflows::Write => "write", - Workflows::Noop => "", - Workflows::FallthroughString => "*", - } - .fmt(f) - } -} - -impl Workflows { - pub fn is_noop(&self) -> bool { - matches!(self, Workflows::Noop) - } -} - -/// The permissions granted to the user-to-server access token. -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct AppPermissions { - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub actions: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub administration: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub checks: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub content_references: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub contents: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub deployments: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub environments: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub issues: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub members: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub metadata: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_administration: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_hooks: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_packages: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_plan: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_projects: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_secrets: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_self_hosted_runners: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization_user_blocking: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub packages: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub pages: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub pull_requests: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub repository_hooks: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub repository_projects: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub secret_scanning_alerts: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub secrets: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub security_events: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub single_file: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub statuses: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub team_discussions: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub vulnerability_alerts: Option, - /** - * The permissions granted to the user-to-server access token. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub workflows: Option, -} - -/// All of the following types are flattened into one object: +/// All of the following types: /// /// - `SimpleUser` /// - `Enterprise` /// +/// You can easily convert this enum to the inner value with `From` and `Into`, as both are implemented for each type. +/// #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct AccountAnyOf { +#[serde(untagged)] +pub enum OwnerOneOf { /** - * Simple User + * A GitHub user. */ - #[serde(flatten)] - pub simple_user: SimpleUser, + SimpleUser(SimpleUser), /** - * An enterprise account + * An enterprise on GitHub. */ - #[serde(flatten)] - pub enterprise: Enterprise, -} - -/** - * Describe whether all repositories have been selected or there's a selection involved - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum RepositorySelection { - #[serde(rename = "all")] - All, - #[serde(rename = "selected")] - Selected, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, + Enterprise(Enterprise), } -impl std::fmt::Display for RepositorySelection { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - RepositorySelection::All => "all", - RepositorySelection::Selected => "selected", - RepositorySelection::Noop => "", - RepositorySelection::FallthroughString => "*", +impl OwnerOneOf { + pub fn enterprise(&self) -> Option<&Enterprise> { + if let OwnerOneOf::Enterprise(ref_) = self { + return Some(ref_); } - .fmt(f) + None } -} -impl RepositorySelection { - pub fn is_noop(&self) -> bool { - matches!(self, RepositorySelection::Noop) + pub fn simple_user(&self) -> Option<&SimpleUser> { + if let OwnerOneOf::SimpleUser(ref_) = self { + return Some(ref_); + } + None } } -/// Installation +/// The set of permissions for the GitHub app #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Installation { +pub struct Permissions { + /** + * The set of permissions for the GitHub app + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub access_tokens_url: String, - pub account: AccountAnyOf, + pub checks: String, + /** + * The set of permissions for the GitHub app + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub app_id: i64, + pub contents: String, + /** + * The set of permissions for the GitHub app + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub app_slug: String, + pub deployments: String, + /** + * The set of permissions for the GitHub app + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub contact_email: String, + pub issues: String, + /** + * The set of permissions for the GitHub app + */ #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub created_at: Option>, + pub metadata: String, +} + +/// GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct GitHubApp { /** - * The list of events for the GitHub app + * GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. */ #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub events: Vec, + pub client_id: String, /** - * Installation + * The date and time of when the advisory was published, in ISO 8601 format. */ #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub has_multiple_single_files: bool, + pub created_at: Option>, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub html_url: String, - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub id: i64, + pub description: String, /** - * The permissions granted to the user-to-server access token. + * The functions in the package that are affected by the vulnerability. */ - pub permissions: AppPermissions, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" )] - pub repositories_url: String, - /** - * Describe whether all repositories have been selected or there's a selection involved - */ - #[serde(default, skip_serializing_if = "RepositorySelection::is_noop")] - pub repository_selection: RepositorySelection, + pub events: Vec, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub single_file_name: String, - /** - * Installation - */ + pub external_url: String, #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub single_file_paths: Vec, + pub html_url: String, #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub suspended_at: Option>, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub suspended_by: Option, + pub id: i64, + /** + * GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub target_id: i64, + pub installations_count: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub target_type: String, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub updated_at: Option>, -} - -/// License Simple -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct LicenseSimple { + pub name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub html_url: String, + pub node_id: String, + pub owner: OwnerOneOf, + /** + * The set of permissions for the GitHub app + */ + pub permissions: Permissions, + /** + * GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub key: String, + pub slug: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub name: String, + pub updated_at: Option>, +} + +/// All of the following types: +/// +/// - `String` +/// - `f64` +/// +/// You can easily convert this enum to the inner value with `From` and `Into`, as both are implemented for each type. +/// +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +#[serde(untagged)] +pub enum WebhookConfigInsecureSslOneOf { + String(String), + /** + * The CVSS 3 score. + */ + F64(f64), +} + +impl WebhookConfigInsecureSslOneOf { + pub fn f64(&self) -> Option<&f64> { + if let WebhookConfigInsecureSslOneOf::F64(ref_) = self { + return Some(ref_); + } + None + } + + pub fn string(&self) -> Option<&String> { + if let WebhookConfigInsecureSslOneOf::String(ref_) = self { + return Some(ref_); + } + None + } +} + +impl std::convert::From for WebhookConfigInsecureSslOneOf { + fn from(f: f64) -> Self { + WebhookConfigInsecureSslOneOf::F64(f) + } +} + +impl std::convert::From for WebhookConfigInsecureSslOneOf { + fn from(f: String) -> Self { + WebhookConfigInsecureSslOneOf::String(f) + } +} + +impl std::convert::From for f64 { + fn from(f: WebhookConfigInsecureSslOneOf) -> Self { + *f.f64().unwrap() + } +} + +impl std::convert::From for String { + fn from(f: WebhookConfigInsecureSslOneOf) -> Self { + f.string().unwrap().clone() + } +} + +/// Configuration object of the webhook +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct WebhookConfig { + /** + * Configuration object of the webhook + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub node_id: String, + pub content_type: String, + /** + * Configuration object of the webhook + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub insecure_ssl: Option, + /** + * Configuration object of the webhook + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub spdx_id: String, + pub secret: String, + /** + * Configuration object of the webhook + */ #[serde( default, skip_serializing_if = "String::is_empty", @@ -1347,389 +1336,939 @@ pub struct LicenseSimple { pub url: String, } +/// Delivery made by a webhook, without request and response information. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct RepositoryPermissions { - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub admin: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub maintain: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub pull: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub push: bool, +pub struct HookDeliveryItem { #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub triage: bool, -} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Users { + pub action: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub avatar_url: String, + pub delivered_at: Option>, + /** + * The CVSS 3 score. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_f64", + deserialize_with = "crate::utils::deserialize_null_f64::deserialize" )] - pub events_url: String, + pub duration: f64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub followers_url: String, + pub event: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub following_url: String, + pub guid: String, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub gists_url: String, + pub id: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub gravatar_id: String, + pub installation_id: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub html_url: String, + pub redelivery: bool, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub id: i64, + pub repository_id: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub login: String, + pub status: String, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub node_id: String, + pub status_code: i64, + /** + * Delivery made by a webhook, without request and response information. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub organizations_url: String, + pub throttled_at: Option>, +} + +/// Scim Error +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct ScimError { + /** + * Scim Error + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub received_events_url: String, + pub detail: String, + /** + * Scim Error + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub repos_url: String, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub site_admin: bool, + pub documentation_url: String, + /** + * Scim Error + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub starred_url: String, + pub message: String, + /** + * The functions in the package that are affected by the vulnerability. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" )] - pub subscriptions_url: String, + pub schemas: Vec, + /** + * Scim Error + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize", - rename = "type" + rename = "scimType" )] - pub type_: String, + pub scim_type: String, + /** + * Scim Error + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub url: String, + pub status: i64, } +/// All of the following types: +/// +/// - `String` +/// - `Vec` +/// - `i64` +/// +/// You can easily convert this enum to the inner value with `From` and `Into`, as both are implemented for each type. +/// #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct RepositoryTemplatePermissions { - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub admin: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub pull: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub push: bool, +#[serde(untagged)] +pub enum ValueOneOf { + String(String), + /** + * The functions in the package that are affected by the vulnerability. + */ + StringVector(Vec), + I64(i64), +} + +impl ValueOneOf { + pub fn i64(&self) -> Option<&i64> { + if let ValueOneOf::I64(ref_) = self { + return Some(ref_); + } + None + } + + pub fn string(&self) -> Option<&String> { + if let ValueOneOf::String(ref_) = self { + return Some(ref_); + } + None + } + + pub fn vec_string(&self) -> Option<&Vec> { + if let ValueOneOf::StringVector(ref_) = self { + return Some(ref_); + } + None + } +} + +impl std::convert::From for ValueOneOf { + fn from(f: i64) -> Self { + ValueOneOf::I64(f) + } +} + +impl std::convert::From for ValueOneOf { + fn from(f: String) -> Self { + ValueOneOf::String(f) + } +} + +impl std::convert::From> for ValueOneOf { + fn from(f: Vec) -> Self { + ValueOneOf::StringVector(f) + } +} + +impl std::convert::From for i64 { + fn from(f: ValueOneOf) -> Self { + *f.i64().unwrap() + } +} + +impl std::convert::From for String { + fn from(f: ValueOneOf) -> Self { + f.string().unwrap().clone() + } +} + +impl std::convert::From for Vec { + fn from(f: ValueOneOf) -> Self { + f.vec_string().unwrap().clone() + } } #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct TemplateRepository { - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub allow_auto_merge: bool, +pub struct Errors { #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub allow_merge_commit: bool, + pub code: String, #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub allow_rebase_merge: bool, + pub field: String, #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub allow_squash_merge: bool, + pub index: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub archive_url: String, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub archived: bool, + pub message: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub assignees_url: String, + pub resource: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +/// Validation Error +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct ValidationError { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub blobs_url: String, + pub documentation_url: String, + /** + * Validation Error + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" )] - pub branches_url: String, + pub errors: Vec, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub clone_url: String, + pub message: String, +} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Fields {} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Request { + /** + * The request headers sent with the webhook delivery. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub headers: Option, + /** + * The request headers sent with the webhook delivery. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub payload: Option, +} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Response { + /** + * The request headers sent with the webhook delivery. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub headers: Option, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub collaborators_url: String, + pub payload: String, +} + +/// Delivery made by a webhook. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct HookDelivery { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub comments_url: String, + pub action: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub commits_url: String, + pub delivered_at: Option>, + /** + * The CVSS 3 score. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_f64", + deserialize_with = "crate::utils::deserialize_null_f64::deserialize" )] - pub compare_url: String, + pub duration: f64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub contents_url: String, + pub event: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub contributors_url: String, + pub guid: String, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub created_at: String, + pub id: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub default_branch: String, + pub installation_id: i64, #[serde( default, deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub delete_branch_on_merge: bool, + pub redelivery: bool, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub deployments_url: String, + pub repository_id: i64, + pub request: Request, + pub response: Response, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub description: String, + pub status: String, #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub disabled: bool, + pub status_code: i64, + /** + * Delivery made by a webhook. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub downloads_url: String, + pub throttled_at: Option>, + /** + * Delivery made by a webhook. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub events_url: String, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub fork: bool, - #[serde( - default, + pub url: String, +} + +/// All of the following types are flattened into one object: +/// +/// - `SimpleUser` +/// - `Enterprise` +/// +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct AccountAnyOf { + /** + * A GitHub user. + */ + #[serde(flatten)] + pub simple_user: SimpleUser, + /** + * An enterprise on GitHub. + */ + #[serde(flatten)] + pub enterprise: Enterprise, +} + +/// Request to install an integration on a target +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct IntegrationInstallationRequest { + pub account: AccountAnyOf, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub created_at: Option>, + #[serde( + default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub forks_count: i64, + pub id: i64, + /** + * Request to install an integration on a target + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub forks_url: String, + pub node_id: String, + /** + * A GitHub user. + */ + pub requester: SimpleUser, +} + +/** + * The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum Pages { + #[serde(rename = "read")] + Read, + #[serde(rename = "write")] + Write, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for Pages { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Pages::Read => "read", + Pages::Write => "write", + Pages::Noop => "", + Pages::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for Pages { + fn default() -> Pages { + Pages::Noop + } +} +impl Pages { + pub fn is_noop(&self) -> bool { + matches!(self, Pages::Noop) + } +} + +/** + * The level of permission to grant the access token to manage repository projects, columns, and cards. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum RepositoryProjects { + #[serde(rename = "admin")] + Admin, + #[serde(rename = "read")] + Read, + #[serde(rename = "write")] + Write, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for RepositoryProjects { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + RepositoryProjects::Admin => "admin", + RepositoryProjects::Read => "read", + RepositoryProjects::Write => "write", + RepositoryProjects::Noop => "", + RepositoryProjects::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for RepositoryProjects { + fn default() -> RepositoryProjects { + RepositoryProjects::Noop + } +} +impl RepositoryProjects { + pub fn is_noop(&self) -> bool { + matches!(self, RepositoryProjects::Noop) + } +} + +/** + * The level of permission to grant the access token to manage the profile settings belonging to a user. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum Profile { + #[serde(rename = "write")] + Write, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for Profile { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Profile::Write => "write", + Profile::Noop => "", + Profile::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for Profile { + fn default() -> Profile { + Profile::Noop + } +} +impl Profile { + pub fn is_noop(&self) -> bool { + matches!(self, Profile::Noop) + } +} + +/** + * The level of permission to grant the access token for viewing an organization's plan. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum OrganizationPlan { + #[serde(rename = "read")] + Read, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for OrganizationPlan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + OrganizationPlan::Read => "read", + OrganizationPlan::Noop => "", + OrganizationPlan::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for OrganizationPlan { + fn default() -> OrganizationPlan { + OrganizationPlan::Noop + } +} +impl OrganizationPlan { + pub fn is_noop(&self) -> bool { + matches!(self, OrganizationPlan::Noop) + } +} + +/// The permissions granted to the user access token. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct AppPermissions { + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub actions: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub administration: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub artifact_metadata: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub attestations: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub checks: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub codespaces: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub contents: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub custom_properties_for_organizations: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dependabot_secrets: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub deployments: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub discussions: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub email_addresses: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enterprise_custom_properties_for_organizations: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub environments: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub followers: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub git_ssh_keys: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub gpg_keys: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub interaction_limits: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub issues: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub members: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub merge_queues: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub metadata: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_administration: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_announcement_banners: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_copilot_seat_management: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_custom_org_roles: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_custom_properties: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_custom_roles: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_events: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_hooks: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_packages: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_personal_access_token_requests: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_personal_access_tokens: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_plan: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_projects: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_secrets: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_self_hosted_runners: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub organization_user_blocking: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub packages: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub pages: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub profile: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub pull_requests: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub repository_custom_properties: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub repository_hooks: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub repository_projects: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_alerts: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secrets: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub security_events: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub single_file: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub starring: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub statuses: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub vulnerability_alerts: Option, + /** + * The permissions granted to the user access token. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub workflows: Option, +} + +/// A GitHub user. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct NullableSimpleUser { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub full_name: String, + pub avatar_url: String, + /** + * A GitHub user. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub git_commits_url: String, + pub email: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub git_refs_url: String, + pub events_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub git_tags_url: String, + pub followers_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub git_url: String, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub has_downloads: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub has_issues: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub has_pages: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub has_projects: bool, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub has_wiki: bool, + pub following_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub homepage: String, + pub gists_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub hooks_url: String, + pub gravatar_id: String, #[serde( default, skip_serializing_if = "String::is_empty", @@ -1742,243 +2281,550 @@ pub struct TemplateRepository { deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] pub id: i64, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub is_template: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub issue_comment_url: String, + pub login: String, + /** + * A GitHub user. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub issue_events_url: String, + pub name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub issues_url: String, + pub node_id: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub keys_url: String, + pub organizations_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub labels_url: String, + pub received_events_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub language: String, + pub repos_url: String, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub languages_url: String, + pub site_admin: bool, + /** + * A GitHub user. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub merges_url: String, + pub starred_at: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub milestones_url: String, + pub starred_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub mirror_url: String, + pub subscriptions_url: String, #[serde( default, skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_string::deserialize", + rename = "type" )] - pub name: String, + pub type_: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub network_count: i64, + pub url: String, + /** + * A GitHub user. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub node_id: String, + pub user_view_type: String, +} + +/** + * Describe whether all repositories have been selected or there's a selection involved + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum RepositorySelection { + #[serde(rename = "all")] + All, + #[serde(rename = "selected")] + Selected, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for RepositorySelection { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + RepositorySelection::All => "all", + RepositorySelection::Selected => "selected", + RepositorySelection::Noop => "", + RepositorySelection::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for RepositorySelection { + fn default() -> RepositorySelection { + RepositorySelection::Noop + } +} +impl RepositorySelection { + pub fn is_noop(&self) -> bool { + matches!(self, RepositorySelection::Noop) + } +} + +/// Installation +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Installation { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub notifications_url: String, + pub access_tokens_url: String, + pub account: AccountAnyOf, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub open_issues_count: i64, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub owner: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub permissions: Option, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub private: bool, + pub app_id: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub pulls_url: String, + pub app_slug: String, + /** + * Installation + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub pushed_at: String, + pub client_id: String, + /** + * Installation + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub releases_url: String, + pub contact_email: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub size: i64, + pub created_at: Option>, + /** + * The functions in the package that are affected by the vulnerability. + */ + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub events: Vec, + /** + * Installation + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub has_multiple_single_files: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub ssh_url: String, + pub html_url: String, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub stargazers_count: i64, + pub id: i64, + /** + * The permissions granted to the user access token. + */ + pub permissions: AppPermissions, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub stargazers_url: String, + pub repositories_url: String, + /** + * Describe whether all repositories have been selected or there's a selection involved + */ + #[serde(default, skip_serializing_if = "RepositorySelection::is_noop")] + pub repository_selection: RepositorySelection, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub statuses_url: String, + pub single_file_name: String, + /** + * The functions in the package that are affected by the vulnerability. + */ + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub single_file_paths: Vec, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub suspended_at: Option>, + /** + * A GitHub user. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub suspended_by: Option, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub subscribers_count: i64, + pub target_id: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub subscribers_url: String, + pub target_type: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub subscription_url: String, + pub updated_at: Option>, +} + +/// License Simple +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct LicenseSimple { + /** + * License Simple + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub svn_url: String, + pub html_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub tags_url: String, + pub key: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub teams_url: String, + pub name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub temp_clone_token: String, + pub node_id: String, #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub topics: Vec, + pub spdx_id: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub trees_url: String, + pub url: String, +} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct RepositoryPermissions { #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub updated_at: String, + pub admin: bool, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub url: String, + pub maintain: bool, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub pull: bool, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub push: bool, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub triage: bool, +} + +/** + * The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum SquashMergeCommitTitle { + #[serde(rename = "COMMIT_OR_PR_TITLE")] + CommitOrPrTitle, + #[serde(rename = "PR_TITLE")] + PrTitle, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for SquashMergeCommitTitle { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + SquashMergeCommitTitle::CommitOrPrTitle => "COMMIT_OR_PR_TITLE", + SquashMergeCommitTitle::PrTitle => "PR_TITLE", + SquashMergeCommitTitle::Noop => "", + SquashMergeCommitTitle::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for SquashMergeCommitTitle { + fn default() -> SquashMergeCommitTitle { + SquashMergeCommitTitle::Noop + } +} +impl SquashMergeCommitTitle { + pub fn is_noop(&self) -> bool { + matches!(self, SquashMergeCommitTitle::Noop) + } +} + +/** + * The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum SquashMergeCommitMessage { + #[serde(rename = "BLANK")] + Blank, + #[serde(rename = "COMMIT_MESSAGES")] + CommitMessages, + #[serde(rename = "PR_BODY")] + PrBody, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for SquashMergeCommitMessage { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + SquashMergeCommitMessage::Blank => "BLANK", + SquashMergeCommitMessage::CommitMessages => "COMMIT_MESSAGES", + SquashMergeCommitMessage::PrBody => "PR_BODY", + SquashMergeCommitMessage::Noop => "", + SquashMergeCommitMessage::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for SquashMergeCommitMessage { + fn default() -> SquashMergeCommitMessage { + SquashMergeCommitMessage::Noop + } +} +impl SquashMergeCommitMessage { + pub fn is_noop(&self) -> bool { + matches!(self, SquashMergeCommitMessage::Noop) + } +} + +/** + * The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum MergeCommitTitle { + #[serde(rename = "MERGE_MESSAGE")] + MergeMessage, + #[serde(rename = "PR_TITLE")] + PrTitle, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for MergeCommitTitle { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + MergeCommitTitle::MergeMessage => "MERGE_MESSAGE", + MergeCommitTitle::PrTitle => "PR_TITLE", + MergeCommitTitle::Noop => "", + MergeCommitTitle::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for MergeCommitTitle { + fn default() -> MergeCommitTitle { + MergeCommitTitle::Noop + } +} +impl MergeCommitTitle { + pub fn is_noop(&self) -> bool { + matches!(self, MergeCommitTitle::Noop) + } +} + +/** + * The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum MergeCommitMessage { + #[serde(rename = "BLANK")] + Blank, + #[serde(rename = "PR_BODY")] + PrBody, + #[serde(rename = "PR_TITLE")] + PrTitle, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for MergeCommitMessage { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + MergeCommitMessage::Blank => "BLANK", + MergeCommitMessage::PrBody => "PR_BODY", + MergeCommitMessage::PrTitle => "PR_TITLE", + MergeCommitMessage::Noop => "", + MergeCommitMessage::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for MergeCommitMessage { + fn default() -> MergeCommitMessage { + MergeCommitMessage::Noop + } +} +impl MergeCommitMessage { + pub fn is_noop(&self) -> bool { + matches!(self, MergeCommitMessage::Noop) + } +} + +/// The status of the code search index for this repository +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct CodeSearchIndexStatus { + /** + * The status of the code search index for this repository + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub visibility: String, + pub lexical_commit_sha: String, + /** + * The status of the code search index for this repository + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub watchers_count: i64, + pub lexical_search_ok: bool, } -/// A git repository +/// A repository on GitHub. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] pub struct Repository { /** - * A git repository + * A repository on GitHub. */ #[serde( default, @@ -1986,7 +2832,15 @@ pub struct Repository { )] pub allow_auto_merge: bool, /** - * A git repository + * A repository on GitHub. + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub allow_forking: bool, + /** + * A repository on GitHub. */ #[serde( default, @@ -1994,7 +2848,7 @@ pub struct Repository { )] pub allow_merge_commit: bool, /** - * A git repository + * A repository on GitHub. */ #[serde( default, @@ -2002,13 +2856,29 @@ pub struct Repository { )] pub allow_rebase_merge: bool, /** - * A git repository + * A repository on GitHub. */ #[serde( default, deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] pub allow_squash_merge: bool, + /** + * A repository on GitHub. + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub allow_update_branch: bool, + /** + * A repository on GitHub. + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub anonymous_access_enabled: bool, #[serde( default, skip_serializing_if = "String::is_empty", @@ -2044,6 +2914,11 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub clone_url: String, + /** + * A repository on GitHub. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub code_search_index_status: Option, #[serde( default, skip_serializing_if = "String::is_empty", @@ -2080,6 +2955,9 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub contributors_url: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", @@ -2093,7 +2971,7 @@ pub struct Repository { )] pub default_branch: String, /** - * A git repository + * A repository on GitHub. */ #[serde( default, @@ -2182,6 +3060,14 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub git_url: String, + /** + * A repository on GitHub. + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub has_discussions: bool, #[serde( default, deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" @@ -2202,6 +3088,14 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] pub has_projects: bool, + /** + * A repository on GitHub. + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub has_pull_requests: bool, #[serde( default, deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" @@ -2232,7 +3126,7 @@ pub struct Repository { )] pub id: i64, /** - * A git repository + * A repository on GitHub. */ #[serde( default, @@ -2281,14 +3175,30 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub languages_url: String, + /** + * License Simple + */ #[serde(default, skip_serializing_if = "Option::is_none")] pub license: Option, + /** + * A repository on GitHub. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub master_branch: String, + /** + * A repository on GitHub. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub merge_commit_message: Option, + /** + * A repository on GitHub. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub merge_commit_title: Option, #[serde( default, skip_serializing_if = "String::is_empty", @@ -2313,15 +3223,6 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub name: String, - /** - * A git repository - */ - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub network_count: i64, #[serde( default, skip_serializing_if = "String::is_empty", @@ -2346,15 +3247,12 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] pub open_issues_count: i64, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub organization: Option, /** - * Simple User + * A GitHub user. */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub owner: Option, + pub owner: SimpleUser, /** - * A git repository + * A repository on GitHub. */ #[serde(default, skip_serializing_if = "Option::is_none")] pub permissions: Option, @@ -2369,6 +3267,9 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub pulls_url: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", @@ -2387,6 +3288,16 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] pub size: i64, + /** + * A repository on GitHub. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub squash_merge_commit_message: Option, + /** + * A repository on GitHub. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub squash_merge_commit_title: Option, #[serde( default, skip_serializing_if = "String::is_empty", @@ -2405,6 +3316,9 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub stargazers_url: String, + /** + * A repository on GitHub. + */ #[serde( default, skip_serializing_if = "String::is_empty", @@ -2417,15 +3331,6 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub statuses_url: String, - /** - * A git repository - */ - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub subscribers_count: i64, #[serde( default, skip_serializing_if = "String::is_empty", @@ -2456,16 +3361,17 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub teams_url: String, + /** + * A repository on GitHub. + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub temp_clone_token: String, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub template_repository: Option, /** - * A git repository + * The functions in the package that are affected by the vulnerability. */ #[serde( default, @@ -2479,6 +3385,9 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub trees_url: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", @@ -2491,6 +3400,17 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub url: String, + /** + * A repository on GitHub. + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub use_squash_pr_title_as_default: bool, + /** + * A repository on GitHub. + */ #[serde( default, skip_serializing_if = "String::is_empty", @@ -2509,6 +3429,14 @@ pub struct Repository { deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] pub watchers_count: i64, + /** + * A repository on GitHub. + */ + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub web_commit_signoff_required: bool, } /// Authentication token for a GitHub App installed on a user or org. @@ -2521,7 +3449,7 @@ pub struct InstallationToken { )] pub expires_at: String, /** - * Authentication token for a GitHub App installed on a user or org. + * Authentication token for a GitHub App installed on a user or org. */ #[serde( default, @@ -2529,12 +3457,12 @@ pub struct InstallationToken { )] pub has_multiple_single_files: bool, /** - * Authentication token for a GitHub App installed on a user or org. + * Authentication token for a GitHub App installed on a user or org. */ #[serde(default, skip_serializing_if = "Option::is_none")] pub permissions: Option, /** - * Authentication token for a GitHub App installed on a user or org. + * Authentication token for a GitHub App installed on a user or org. */ #[serde( default, @@ -2543,10 +3471,13 @@ pub struct InstallationToken { )] pub repositories: Vec, /** - * Authentication token for a GitHub App installed on a user or org. + * Authentication token for a GitHub App installed on a user or org. */ #[serde(default, skip_serializing_if = "Option::is_none")] pub repository_selection: Option, + /** + * Authentication token for a GitHub App installed on a user or org. + */ #[serde( default, skip_serializing_if = "String::is_empty", @@ -2554,7 +3485,7 @@ pub struct InstallationToken { )] pub single_file: String, /** - * Authentication token for a GitHub App installed on a user or org. + * The functions in the package that are affected by the vulnerability. */ #[serde( default, @@ -2571,119 +3502,92 @@ pub struct InstallationToken { } #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct App { +pub struct ScopedInstallation { + /** + * A GitHub user. + */ + pub account: SimpleUser, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub client_id: String, + pub has_multiple_single_files: bool, + /** + * The permissions granted to the user access token. + */ + pub permissions: AppPermissions, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, + pub repositories_url: String, + /** + * Describe whether all repositories have been selected or there's a selection involved + */ + #[serde(default, skip_serializing_if = "RepositorySelection::is_noop")] + pub repository_selection: RepositorySelection, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, -} - -/// The authorization associated with an OAuth Access. -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ApplicationGrant { - pub app: App, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub created_at: Option>, - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub id: i64, + pub single_file_name: String, /** - * The list of events for the GitHub app + * The functions in the package that are affected by the vulnerability. */ #[serde( default, skip_serializing_if = "Vec::is_empty", deserialize_with = "crate::utils::deserialize_null_vector::deserialize" )] - pub scopes: Vec, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub updated_at: Option>, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub url: String, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub user: Option, + pub single_file_paths: Vec, } #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ScopedInstallation { - /** - * Simple User - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub account: Option, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub has_multiple_single_files: bool, - /** - * The permissions granted to the user-to-server access token. - */ - pub permissions: AppPermissions, +pub struct App { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub repositories_url: String, - /** - * Describe whether all repositories have been selected or there's a selection involved - */ - #[serde(default, skip_serializing_if = "RepositorySelection::is_noop")] - pub repository_selection: RepositorySelection, + pub client_id: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub single_file_name: String, + pub name: String, #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub single_file_paths: Vec, + pub url: String, } /// The authorization for an OAuth app, GitHub App, or a Personal Access Token. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] pub struct Authorization { pub app: App, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", deserialize_with = "crate::utils::date_time_format::deserialize" )] pub created_at: Option>, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub expires_at: Option>, #[serde( default, skip_serializing_if = "String::is_empty", @@ -2717,7 +3621,7 @@ pub struct Authorization { )] pub note_url: String, /** - * The list of events for the GitHub app + * The functions in the package that are affected by the vulnerability. */ #[serde( default, @@ -2737,6 +3641,9 @@ pub struct Authorization { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub token_last_eight: String, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, skip_serializing_if = "Option::is_none", @@ -2749,147 +3656,56 @@ pub struct Authorization { deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub url: String, + /** + * A GitHub user. + */ #[serde(default, skip_serializing_if = "Option::is_none")] - pub user: Option, + pub user: Option, } -/// Code Of Conduct +/// A GitHub repository view for Classroom #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct CodeOfConduct { +pub struct SimpleClassroomRepository { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub body: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub html_url: String, + pub default_branch: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub key: String, + pub full_name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, + pub html_url: String, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub url: String, -} - -/** - * The policy that controls the repositories in the organization that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum EnabledRepositories { - #[serde(rename = "all")] - All, - #[serde(rename = "none")] - None, - #[serde(rename = "selected")] - Selected, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for EnabledRepositories { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - EnabledRepositories::All => "all", - EnabledRepositories::None => "none", - EnabledRepositories::Selected => "selected", - EnabledRepositories::Noop => "", - EnabledRepositories::FallthroughString => "*", - } - .fmt(f) - } -} - -impl EnabledRepositories { - pub fn is_noop(&self) -> bool { - matches!(self, EnabledRepositories::Noop) - } -} - -/** - * The permissions policy that controls the actions that are allowed to run. Can be one of: `all`, `local_only`, or `selected`. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum AllowedActions { - #[serde(rename = "all")] - All, - #[serde(rename = "local_only")] - LocalOnly, - #[serde(rename = "selected")] - Selected, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for AllowedActions { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - AllowedActions::All => "all", - AllowedActions::LocalOnly => "local_only", - AllowedActions::Selected => "selected", - AllowedActions::Noop => "", - AllowedActions::FallthroughString => "*", - } - .fmt(f) - } -} - -impl AllowedActions { - pub fn is_noop(&self) -> bool { - matches!(self, AllowedActions::Noop) - } -} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ActionsEnterprisePermissions { - /** - * The permissions policy that controls the actions that are allowed to run. Can be one of: `all`, `local_only`, or `selected`. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub allowed_actions: Option, - /** - * The policy that controls the repositories in the organization that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`. - */ - pub enabled_organizations: EnabledRepositories, + pub id: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub selected_actions_url: String, + pub node_id: String, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub selected_organizations_url: String, + pub private: bool, } -/// Organization Simple +/// A GitHub organization. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct OrganizationSimple { +pub struct SimpleClassroomOrganization { #[serde( default, skip_serializing_if = "String::is_empty", @@ -2901,19 +3717,7 @@ pub struct OrganizationSimple { skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub description: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub events_url: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub hooks_url: String, + pub html_url: String, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", @@ -2925,175 +3729,124 @@ pub struct OrganizationSimple { skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub issues_url: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] pub login: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub members_url: String, + pub name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub node_id: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub public_members_url: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub repos_url: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub url: String, -} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct SelectedActions { - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub github_owned_allowed: bool, - /** - * The list of events for the GitHub app - */ - #[serde( - default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" - )] - pub patterns_allowed: Vec, - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub verified_allowed: bool, } +/// A GitHub Classroom classroom #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct RunnerGroupsEnterprise { - #[serde( - default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" - )] - pub allows_public_repositories: bool, +pub struct Classroom { #[serde( default, deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub default: bool, + pub archived: bool, #[serde( default, - skip_serializing_if = "crate::utils::zero_f64", - deserialize_with = "crate::utils::deserialize_null_f64::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub id: f64, + pub id: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] pub name: String, + /** + * A GitHub organization. + */ + pub organization: SimpleClassroomOrganization, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub runners_url: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub selected_organizations_url: String, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub visibility: String, + pub url: String, } /** - * The type of label. Read-only labels are applied automatically when the runner is configured. + * Whether it's a group assignment or individual assignment. */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum Type { - #[serde(rename = "custom")] - Custom, - #[serde(rename = "read-only")] - ReadOnly, +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum ClassroomAssignmentType { + #[serde(rename = "group")] + Group, + #[serde(rename = "individual")] + Individual, #[serde(rename = "")] - #[default] Noop, #[serde(other)] FallthroughString, } -impl std::fmt::Display for Type { +impl std::fmt::Display for ClassroomAssignmentType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - Type::Custom => "custom", - Type::ReadOnly => "read-only", - Type::Noop => "", - Type::FallthroughString => "*", + ClassroomAssignmentType::Group => "group", + ClassroomAssignmentType::Individual => "individual", + ClassroomAssignmentType::Noop => "", + ClassroomAssignmentType::FallthroughString => "*", } .fmt(f) } } -impl Type { +impl Default for ClassroomAssignmentType { + fn default() -> ClassroomAssignmentType { + ClassroomAssignmentType::Noop + } +} +impl ClassroomAssignmentType { pub fn is_noop(&self) -> bool { - matches!(self, Type::Noop) + matches!(self, ClassroomAssignmentType::Noop) } } +/// A GitHub Classroom assignment #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Labels { +pub struct ClassroomAssignment { #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub id: i64, + pub accepted: i64, + /** + * A GitHub Classroom classroom + */ + pub classroom: Classroom, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub deadline: Option>, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, - /** - * The type of label. Read-only labels are applied automatically when the runner is configured. - */ - #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] - pub type_: Option, -} - -/// A self hosted runner -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Runner { + pub editor: String, #[serde( default, deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub busy: bool, + pub feedback_pull_requests_enabled: bool, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", @@ -3102,608 +3855,1095 @@ pub struct Runner { pub id: i64, #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub labels: Vec, + pub invitations_enabled: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, + pub invite_link: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub os: String, + pub language: String, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub status: String, -} - -/// Runner Application -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct RunnerApplication { + pub max_members: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub architecture: String, + pub max_teams: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub download_url: String, + pub passing: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub filename: String, + pub public_repo: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub os: String, + pub slug: String, + /** + * A GitHub repository view for Classroom + */ + pub starter_code_repository: SimpleClassroomRepository, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize", - rename = "sha256_checksum" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub sha_256_checksum: String, + pub students_are_repo_admins: bool, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub temp_download_token: String, -} - -/// Authentication Token -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct AuthenticationToken { + pub submitted: i64, #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub expires_at: Option>, - /** - * The request headers sent with the webhook delivery. - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub permissions: Option, + pub title: String, /** - * Authentication Token + * Whether it's a group assignment or individual assignment. */ #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "ClassroomAssignmentType::is_noop", + rename = "type" )] - pub repositories: Vec, - /** - * Authentication Token - */ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub repository_selection: Option, + pub type_: ClassroomAssignmentType, +} + +/// A GitHub user simplified for Classroom. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct SimpleClassroomUser { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub single_file: String, + pub avatar_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub token: String, -} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ActorLocation { + pub html_url: String, + #[serde( + default, + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + )] + pub id: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub country_name: String, + pub login: String, } +/// A GitHub Classroom classroom #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct AuditLogEvent { +pub struct SimpleClassroom { + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub archived: bool, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize", - rename = "@timestamp" + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub timestamp: i64, + pub id: i64, #[serde( default, skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize", - rename = "_document_id" + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub document_id: String, + pub name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub action: String, + pub url: String, +} + +/// A GitHub Classroom assignment +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct SimpleClassroomAssignment { #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub active: bool, + pub accepted: i64, + /** + * A GitHub Classroom classroom + */ + pub classroom: SimpleClassroom, + /** + * The date and time of when the advisory was published, in ISO 8601 format. + */ #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" )] - pub active_was: bool, + pub deadline: Option>, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub actor: String, + pub editor: String, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub feedback_pull_requests_enabled: bool, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub actor_id: i64, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub actor_location: Option, + pub id: i64, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub invitations_enabled: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub blocked_user: String, + pub invite_link: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub business: String, + pub language: String, /** - * The list of events for the GitHub app + * A GitHub Classroom assignment */ #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub config: Vec, + pub max_members: i64, /** - * The list of events for the GitHub app + * A GitHub Classroom assignment */ #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub config_was: Vec, + pub max_teams: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub content_type: String, + pub passing: i64, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub created_at: i64, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub data: Option, + pub public_repo: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub deploy_key_fingerprint: String, + pub slug: String, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub students_are_repo_admins: bool, + #[serde( + default, + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + )] + pub submitted: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub emoji: String, + pub title: String, /** - * The list of events for the GitHub app + * Whether it's a group assignment or individual assignment. */ #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "ClassroomAssignmentType::is_noop", + rename = "type" )] - pub events: Vec, + pub type_: ClassroomAssignmentType, +} + +/// A GitHub Classroom accepted assignment +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct ClassroomAcceptedAssignment { /** - * The list of events for the GitHub app + * A GitHub Classroom assignment */ + pub assignment: SimpleClassroomAssignment, #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" - )] - pub events_were: Vec, - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub explanation: String, + pub commit_count: i64, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub fingerprint: String, + pub grade: String, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub hook_id: i64, + pub id: i64, #[serde( default, deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub limited_availability: bool, + pub passing: bool, + /** + * A GitHub repository view for Classroom + */ + pub repository: SimpleClassroomRepository, + #[serde( + default, + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + )] + pub students: Vec, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub message: String, + pub submitted: bool, +} + +/// Grade for a student or groups GitHub Classroom assignment +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct ClassroomAssignmentGrade { #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, + pub assignment_name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub old_user: String, + pub assignment_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub openssh_public_key: String, + pub github_username: String, + /** + * Grade for a student or groups GitHub Classroom assignment + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub org: String, + pub group_name: String, #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub org_id: i64, + pub points_available: i64, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + skip_serializing_if = "crate::utils::zero_i64", + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub previous_visibility: String, + pub points_awarded: i64, #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub read_only: bool, + pub roster_identifier: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub repo: String, + pub starter_code_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub repository: String, + pub student_repository_name: String, #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub repository_public: bool, + pub student_repository_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub target_login: String, + pub submission_timestamp: String, +} + +/// Code Of Conduct +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct CodeOfConduct { + /** + * Code Of Conduct + */ #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub team: String, + pub body: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub transport_protocol: i64, + pub html_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub transport_protocol_name: String, + pub key: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub user: String, + pub name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub visibility: String, + pub url: String, } +/// GitHub Actions cache retention policy for an enterprise. #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct MinutesUsedBreakdown { +pub struct ActionsCacheRetentionLimitEnterprise { + /** + * GitHub Actions cache retention policy for an enterprise. + */ #[serde( default, skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize", - rename = "MACOS" + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub macos: i64, + pub max_cache_retention_days: i64, +} + +/// GitHub Actions cache storage policy for an enterprise. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct ActionsCacheStorageLimitEnterprise { + /** + * GitHub Actions cache storage policy for an enterprise. + */ #[serde( default, skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize", - rename = "UBUNTU" + deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub ubuntu: i64, + pub max_cache_size_gb: i64, +} + +/** + * The type of the code security configuration. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum TargetType { + #[serde(rename = "enterprise")] + Enterprise, + #[serde(rename = "global")] + Global, + #[serde(rename = "organization")] + Organization, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for TargetType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + TargetType::Enterprise => "enterprise", + TargetType::Global => "global", + TargetType::Organization => "organization", + TargetType::Noop => "", + TargetType::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for TargetType { + fn default() -> TargetType { + TargetType::Noop + } +} +impl TargetType { + pub fn is_noop(&self) -> bool { + matches!(self, TargetType::Noop) + } +} + +/** + * The enablement status of GitHub Advanced Security + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum AdvancedSecurity { + #[serde(rename = "code_security")] + CodeSecurity, + #[serde(rename = "disabled")] + Disabled, + #[serde(rename = "enabled")] + Enabled, + #[serde(rename = "secret_protection")] + SecretProtection, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for AdvancedSecurity { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + AdvancedSecurity::CodeSecurity => "code_security", + AdvancedSecurity::Disabled => "disabled", + AdvancedSecurity::Enabled => "enabled", + AdvancedSecurity::SecretProtection => "secret_protection", + AdvancedSecurity::Noop => "", + AdvancedSecurity::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for AdvancedSecurity { + fn default() -> AdvancedSecurity { + AdvancedSecurity::Noop + } +} +impl AdvancedSecurity { + pub fn is_noop(&self) -> bool { + matches!(self, AdvancedSecurity::Noop) + } +} + +/** + * The enablement status of secret scanning + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum SecretScanning { + #[serde(rename = "disabled")] + Disabled, + #[serde(rename = "enabled")] + Enabled, + #[serde(rename = "not_set")] + NotSet, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for SecretScanning { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + SecretScanning::Disabled => "disabled", + SecretScanning::Enabled => "enabled", + SecretScanning::NotSet => "not_set", + SecretScanning::Noop => "", + SecretScanning::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for SecretScanning { + fn default() -> SecretScanning { + SecretScanning::Noop + } +} +impl SecretScanning { + pub fn is_noop(&self) -> bool { + matches!(self, SecretScanning::Noop) + } +} + +/// Feature options for Automatic dependency submission +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct DependencyGraphAutosubmitActionOptions { + /** + * Feature options for Automatic dependency submission + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize", - rename = "WINDOWS" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub windows: i64, + pub labeled_runners: bool, } +/// Feature options for code scanning #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct ActionsBillingUsage { +pub struct CodeScanningOptions { + /** + * Feature options for code scanning + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub included_minutes: i64, - pub minutes_used_breakdown: MinutesUsedBreakdown, + pub allow_advanced: bool, +} + +/** + * Whether to use labeled runners or standard GitHub runners. + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum RunnerType { + #[serde(rename = "labeled")] + Labeled, + #[serde(rename = "not_set")] + NotSet, + #[serde(rename = "standard")] + Standard, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for RunnerType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + RunnerType::Labeled => "labeled", + RunnerType::NotSet => "not_set", + RunnerType::Standard => "standard", + RunnerType::Noop => "", + RunnerType::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for RunnerType { + fn default() -> RunnerType { + RunnerType::Noop + } +} +impl RunnerType { + pub fn is_noop(&self) -> bool { + matches!(self, RunnerType::Noop) + } +} + +/// Feature options for code scanning default setup +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct CodeScanningDefaultSetupOptions { + /** + * Feature options for code scanning default setup + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub total_minutes_used: i64, + pub runner_label: String, + /** + * Whether to use labeled runners or standard GitHub runners. + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub runner_type: Option, +} + +/** + * The type of the bypass reviewer + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum ReviewerType { + #[serde(rename = "ROLE")] + Role, + #[serde(rename = "TEAM")] + Team, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for ReviewerType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ReviewerType::Role => "ROLE", + ReviewerType::Team => "TEAM", + ReviewerType::Noop => "", + ReviewerType::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for ReviewerType { + fn default() -> ReviewerType { + ReviewerType::Noop + } +} +impl ReviewerType { + pub fn is_noop(&self) -> bool { + matches!(self, ReviewerType::Noop) + } +} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct Reviewers { #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub total_paid_minutes_used: i64, + pub reviewer_id: i64, + /** + * The type of the bypass reviewer + */ + #[serde(default, skip_serializing_if = "ReviewerType::is_noop")] + pub reviewer_type: ReviewerType, } +/// Feature options for secret scanning delegated bypass #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct PackagesBillingUsage { +pub struct SecretScanningDelegatedBypassOptions { + /** + * Feature options for secret scanning delegated bypass + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "Vec::is_empty", + deserialize_with = "crate::utils::deserialize_null_vector::deserialize" )] - pub included_gigabytes_bandwidth: i64, + pub reviewers: Vec, +} + +/** + * The enforcement status for a security configuration + */ +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub enum Enforcement { + #[serde(rename = "enforced")] + Enforced, + #[serde(rename = "unenforced")] + Unenforced, + #[serde(rename = "")] + Noop, + #[serde(other)] + FallthroughString, +} + +impl std::fmt::Display for Enforcement { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Enforcement::Enforced => "enforced", + Enforcement::Unenforced => "unenforced", + Enforcement::Noop => "", + Enforcement::FallthroughString => "*", + } + .fmt(f) + } +} + +impl Default for Enforcement { + fn default() -> Enforcement { + Enforcement::Noop + } +} +impl Enforcement { + pub fn is_noop(&self) -> bool { + matches!(self, Enforcement::Noop) + } +} + +/// A code security configuration +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct CodeSecurityConfiguration { + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub advanced_security: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub code_scanning_default_setup: Option, + /** + * Feature options for code scanning default setup + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub code_scanning_default_setup_options: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub code_scanning_delegated_alert_dismissal: Option, + /** + * Feature options for code scanning + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub code_scanning_options: Option, + /** + * A code security configuration + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub created_at: Option>, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dependabot_alerts: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dependabot_delegated_alert_dismissal: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dependabot_security_updates: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dependency_graph: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dependency_graph_autosubmit_action: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dependency_graph_autosubmit_action_options: Option, + /** + * A code security configuration + */ + #[serde( + default, + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" + )] + pub description: String, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enforcement: Option, + /** + * A code security configuration + */ + #[serde( + default, + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub total_gigabytes_bandwidth_used: i64, + pub html_url: String, + /** + * A code security configuration + */ #[serde( default, skip_serializing_if = "crate::utils::zero_i64", deserialize_with = "crate::utils::deserialize_null_i64::deserialize" )] - pub total_paid_gigabytes_bandwidth_used: i64, + pub id: i64, + /** + * A code security configuration + */ + #[serde( + default, + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" + )] + pub name: String, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub private_vulnerability_reporting: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_delegated_alert_dismissal: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_delegated_bypass: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_delegated_bypass_options: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_generic_secrets: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_non_provider_patterns: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_push_protection: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret_scanning_validity_checks: Option, + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub target_type: Option, + /** + * A code security configuration + */ + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "crate::utils::date_time_format::deserialize" + )] + pub updated_at: Option>, + /** + * A code security configuration + */ + #[serde( + default, + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" + )] + pub url: String, } +/// Security Configuration feature options for code scanning #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct CombinedBillingUsage { +pub struct CodeScanningOptionsData { + /** + * Security Configuration feature options for code scanning + */ #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub days_left_in_billing_cycle: i64, + pub allow_advanced: bool, +} + +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct CodeSecurityDefaultConfigurations { + /** + * A code security configuration + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub configuration: Option, + /** + * The visibility of newly created repositories for which the code security configuration will be applied to by default + */ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub default_for_new_repos: Option, +} + +/// A GitHub repository. +#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] +pub struct SimpleRepository { #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub estimated_paid_storage_for_month: i64, + pub archive_url: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub estimated_storage_for_month: i64, -} - -/// Actor -#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Actor { + pub assignees_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub avatar_url: String, + pub blobs_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub display_login: String, + pub branches_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub gravatar_id: String, + pub collaborators_url: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub id: i64, + pub comments_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub login: String, + pub commits_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, -} - -/// Color-coded labels help you categorize and filter your issues (just like labels in Gmail). -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Label { + pub compare_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub color: String, + pub contents_url: String, #[serde( default, - deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub default: bool, + pub contributors_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub description: String, + pub deployments_url: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub id: i64, + pub description: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub name: String, + pub downloads_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub node_id: String, + pub events_url: String, + #[serde( + default, + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" + )] + pub fork: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, -} - -/** - * The state of the milestone. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum State { - #[serde(rename = "closed")] - Closed, - #[serde(rename = "open")] - #[default] - Open, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for State { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - State::Closed => "closed", - State::Open => "open", - State::FallthroughString => "*", - } - .fmt(f) - } -} - -/// A collection of related issues and pull requests. -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct Milestone { + pub forks_url: String, #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub closed_at: Option>, + pub full_name: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub closed_issues: i64, + pub git_commits_url: String, #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub created_at: Option>, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub creator: Option, + pub git_refs_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub description: String, + pub git_tags_url: String, #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub due_on: Option>, + pub hooks_url: String, #[serde( default, skip_serializing_if = "String::is_empty", @@ -3721,955 +4961,1180 @@ pub struct Milestone { skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub labels_url: String, + pub issue_comment_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub node_id: String, + pub issue_events_url: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub number: i64, + pub issues_url: String, #[serde( default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub open_issues: i64, - /** - * The state of the milestone. - */ - #[serde(default)] - pub state: State, + pub keys_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub title: String, + pub labels_url: String, #[serde( default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub updated_at: Option>, + pub languages_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, -} - -/** - * How the author is associated with the repository. - */ -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)] -pub enum AuthorAssociation { - #[serde(rename = "COLLABORATOR")] - Collaborator, - #[serde(rename = "CONTRIBUTOR")] - Contributor, - #[serde(rename = "FIRST_TIMER")] - FirstTimer, - #[serde(rename = "FIRST_TIME_CONTRIBUTOR")] - FirstTimeContributor, - #[serde(rename = "MANNEQUIN")] - Mannequin, - #[serde(rename = "MEMBER")] - Member, - #[serde(rename = "NONE")] - None, - #[serde(rename = "OWNER")] - Owner, - #[serde(rename = "")] - #[default] - Noop, - #[serde(other)] - FallthroughString, -} - -impl std::fmt::Display for AuthorAssociation { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - AuthorAssociation::Collaborator => "COLLABORATOR", - AuthorAssociation::Contributor => "CONTRIBUTOR", - AuthorAssociation::FirstTimer => "FIRST_TIMER", - AuthorAssociation::FirstTimeContributor => "FIRST_TIME_CONTRIBUTOR", - AuthorAssociation::Mannequin => "MANNEQUIN", - AuthorAssociation::Member => "MEMBER", - AuthorAssociation::None => "NONE", - AuthorAssociation::Owner => "OWNER", - AuthorAssociation::Noop => "", - AuthorAssociation::FallthroughString => "*", - } - .fmt(f) - } -} - -impl AuthorAssociation { - pub fn is_noop(&self) -> bool { - matches!(self, AuthorAssociation::Noop) - } -} - -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct PullRequest { - #[serde( - default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" - )] - pub diff_url: String, + pub merges_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub html_url: String, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub merged_at: Option>, + pub milestones_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub patch_url: String, + pub name: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub url: String, -} - -/// Issue Simple -#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)] -pub struct IssueSimple { + pub node_id: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub active_lock_reason: String, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub assignee: Option, - #[serde( - default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" - )] - pub assignees: Vec, + pub notifications_url: String, /** - * How the author is associated with the repository. + * A GitHub user. */ - pub author_association: AuthorAssociation, + pub owner: SimpleUser, #[serde( default, - skip_serializing_if = "String::is_empty", - deserialize_with = "crate::utils::deserialize_null_string::deserialize" + deserialize_with = "crate::utils::deserialize_null_boolean::deserialize" )] - pub body: String, + pub private: bool, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub body_html: String, + pub pulls_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub body_text: String, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub closed_at: Option>, - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub comments: i64, + pub releases_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub comments_url: String, - #[serde( - default, - skip_serializing_if = "Option::is_none", - deserialize_with = "crate::utils::date_time_format::deserialize" - )] - pub created_at: Option>, + pub stargazers_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub events_url: String, + pub statuses_url: String, #[serde( default, skip_serializing_if = "String::is_empty", deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub html_url: String, - #[serde( - default, - skip_serializing_if = "crate::utils::zero_i64", - deserialize_with = "crate::utils::deserialize_null_i64::deserialize" - )] - pub id: i64, + pub subscribers_url: String, #[serde( default, - skip_serializing_if = "Vec::is_empty", - deserialize_with = "crate::utils::deserialize_null_vector::deserialize" + skip_serializing_if = "String::is_empty", + deserialize_with = "crate::utils::deserialize_null_string::deserialize" )] - pub labels: Vec